Often you can improve the future by learning from the past. Given that we always want to be able to develop faster (given the same level of quality, energy, etc...), it merits reflecting on the question: What would it take to be twice as productive?
Here are some general ideas I was thinking about:
- Better tools (like a CodeGenerator or Resharper)
- Better hardware - a fast machine, dual monitors, perhaps even a spare virtual machine that you could upload code to to run long-duration tests without blocking your main dev machine.
- Reusable components - business logic, validation, UI components. No need to waste time re-inventing the wheel.
- Knowledge transfer - like having a good, quick wiki, or technical/domain experts to trouble bottlenecks
- Prevent and handle regression testing - such as code reviews to ensure higher quality code, as well as comprehensive suite of automated unit tests
- Better automation - ideally you can automate anything tedious that steals your time, like checkouts, tests, code generation, continuous integration
- Taking time to think first before coding - i.e. "code now, fix later" is more than just a moral killer, it also kills the schedule
There's a lot of things that are more standard, that I'd hope any developer would have:
- Good source control system - no one wants to waste time because they lost their code, or had a merge error, or can't track something down
- Issue manager system -
- Good project management to coordinate the team and give everyone clearly defined goals.
There's obviously a lot more. What would make you a faster developer?