65

From a business perspective, a bug fix is no different than a feature request. It has a certain cost in development time, and it has a certain value for customers. If a bug is non-critical, it can totally make good business sense to prioritize a valuable feature above the bugfix. But from a technical perspective, bugs may be more critical, because they ...


61

To be honest I use newsfeed reader. I subscribe to a number of blogs and technology related sites. I'll read my feed during lunch, before work and sometimes after work. However I use my tablet for that and will constantly review news sources for if they provide a good time to value ratio. I probably get 1-2 hours a day reading about new things. ...


48

If all you have is 2 days and no time to prototype or even read upon all the alternatives then there's really only 2 options: ask someone who knows and follow their advice. This may not necessarily mean asking an individual but spend the 2 days searching through blogs and articles to glean enough information to make a slightly-better-than-uninformed ...


31

Really? This isn't one of the answers yet? Suggest to the boss that you've heard about newThing and that it could help the company, especially with hideousProblemWeJustHad. That's how I made my foray into unit testing. That's not super-cutting edge, but my school did a horrible job of teaching what it was all about and it was new to me. Part of the time of ...


19

It may seem that I am going against the stream, but I have recently read the book Creativity, Inc. by Ed Catmull and there was a really nice paragraph tackling this situation: Andrew Stanton spoke next. Andrew is fond of saying that people need to be wrong as fast as they can. In a battle, if you're faced with two hills and you're unsure which one to ...


19

This is one of the reasons you're using open-source software, right? You could make the very same argument for "what happens if my very expensive, proprietary, closed-source library suddenly falls over? Will there be someone available at [large, monolithic software company] to fix it for me?" With open-source software, at least you have the chance to ...


15

I put the most useful information that I come across in an Anki deck. Every morning I spend 5-10 minutes going over the material. Just this week, for instance, Anki asked me this question which I had not dealt with for some time: PHP: What must be done after a foreach on a referenced array? I didn't remember if the answer was unset($value) or reset($...


14

Assimilating the job of a programmer to coding is reductive. Your goal is not to write code, but to solve a given problem—usually through code, but not only code. Once you have a set of requirements, you have to do a set of tasks in order to fulfill them. It can consist of writing code, but also doing architecture, writing deployment scripts, setting up and ...


12

When time is limited, you are better to focus on the highest quality material. Books (the good ones) are more likely to have higher quality material than blogs. Books with high average customer review scores on Amazon usually have the highest quality material. Get a Kindle and download a few highly rated books on the subject - keep it with you whereever you ...


11

All software design and coding concepts and patterns arise in response to some problem. The pattern or concept is a solution to that problem. Over time, some patterns become "well-known" as preferable solutions because they solve the problem in a way that fulfills certain requirements for consistency, familiarity, performance, maintainability, and so forth....


11

The solution to developing applications where bugs or lack of features have a high risk of causing your work to stop is to not use high risk libraries. Boring and lame, I know.. You said this is an alpha release. Don't use alpha releases for critical projects. It's not even a beta release, let alone 1.0 so this sort of thing is to be expected. The entire ...


11

Here is a good reference http://www.joelonsoftware.com/articles/fog0000000043.html Do you fix bugs before writing new code? The very first version of Microsoft Word for Windows was considered a “death march” project. [...] because the bug fixing phase was not a part of the formal schedule [...] Microsoft universally adopted something [...] the highest ...


10

gbjbaanb makes some very good points. I just thought I'd add a bit. It's obvious you don't have enough time to make a perfectly informed decision. Your only option is to try and make a decision that will minimize future pain. I'd suggest: Clearly document the nature of the situation: Send an email to your manager(s) and CC their managers and the ...


10

There is no single answer, as this depends entirely on the project. We need to think about two things here. What is your eventual target? How do you expect to get there? End Result Are you writing Mars Orbiter control software? Then you better make damn sure you are writing the most robust code possible, You better be check every exception is handled ...


9

This is called coupling. You can reduce coupling by breaking everything into smaller pieces, which should increase the cohesion of each piece. It will make it easier and faster to develop and test each piece. If you are developing something with dependencies on other pieces, try designing with Dependency Injection in mind. This should let you develop each ...


9

For passwords, sending a hash copy of the password would seem to be your best alternative. Notice that this avoids two of the problems you are considering: the hash of the password disguises the "secret" that you are transmitting, and the result of the hash can be expressed in a reasonable character set so that you don't have to worry about encode/decode. (...


9

GET http://api.example.com/users?usr=username The returned JSON object would contain all the fields for the user (id, password, etc), so I could check the password in the client. Congratulations, you broke the 3 fundamental rules of basic security at once! never store clear passwords never send them over http, but only https never trust clients ...


8

Sharpen the saw is a must for all involved in any knowledge based work. How to do that is left to individual. Here are some thing I do Listen to podcasts, pick up links are learn about the technology and its relevance is specific areas (http://www.javaposse.com/, http://www.se-radio.net/ and many more) I read quite heavily (management and technology) Do ...


8

While I agree with Thomas Owens answer, I think this needs a more strongly worded answer. The process you describe is completely missing some of the most important parts of agile management and these are the parts that managers should care the most about. (full disclosure: I'm a manager.) In order to improve predictions about when work will be done, ...


7

Your company isn't following standard agile practices. Ideally, you shouldn't be estimating in hours. You should consider estimating in Story Points, which is a measure of how complex the work is. You can then plan your Sprints based on these Story Points and the Velocity (number of completed Story Points) from a few of your most recent previous Sprints. If ...


6

To be blunt, yes. Good developers do spend some amount of non-work time programming. Often times that is some pet project, where they can play around with new and interesting things. Oftentimes things that are not applicable for work use to broaden the mind and keep up with the (relatively) cutting edge.


6

As AC/DC would say: "It's a long way to the Top if you wanna Rock and Roll". It's not going to be easy if you're aiming to the top. The main problem of trying to get back on the horse is to feel outdated - not to mention stupid. You try to understand TDD, then you stumble on Dependency Injection and then on Inversion of Control containers. The latest ...


6

Typically your REST API should not support login functionality at all. Just require the caller to provide a bearer token from a trusted issuer in the Authorization header and be done with it. Use a well-known authorization provider like Google, Facebook or Microsoft Azure AD as your authorization server. People don't use OAuth because it's mainstream. It's ...


5

I always end up giving estimates that I later realize I cannot fulfill. It has happened countless of times, and I always promise it won't happen again. It sounds like you're being asked for a commitment, not an estimate. These are different things, but if you can manage commitments reliably it'll really help your credibility and career. Some advice based ...


5

Since they've effectively given you little time to do more than pick candidates out of a hat, I'd adopt the following approach. Select technologies that: Have a large user base Have active support (via whatever channels) Are being actively developed By definition, this would rule out any bleeding edge technology, however good it may be. Also, resist the ...


5

You must distinguish two different questions here. How much time is necessary to understand and deal with the old code base? That is hard to predict and largely out of your control. You can only make estimates based on your own and others' previous experience. People get somewhat better at this the more experience they have with legacy code, but the ...


4

"Grinding out code" IS the best learning tool. When given something that can use a new method, I pound away at it till it works. If a customer requested something that required the new tech, I'll bill them for it, but if it's something I just hadn't gotten around to learning, I don't bill them. The web stuff is moving at a good pace. In my little company I ...


4

I will try answering using a verbatim copy of an article from Jack Ganssle's embedded muse. While this says firmware everywhere, just mentally replace it by software. Compared to What? Firmware is the most expensive thing in the universe. In his wonderful book "Augustine's Laws," Norman Augustine, former Lockheed Martin CEO, tells a revealing ...


Only top voted, non community-wiki answers of a minimum length are eligible