Here are two common factors to software development speed of delivery that many of us often forget to account:
- Programmer familiarity to current application business rules. Often it is more likely that projects will revolve around modifying existing systems to accommodate new requirements rather than creating another system altogether from scratch. Revising legacy code involves understanding deeply what the software is capable of solving, not just writing in a computer language. This naturally takes time because they need time to study what they have to do before they actually go around doing it.
- Programmer cohesiveness within the team. Assuming two teams of more or less matching skills, the team of software engineers who sincerely respect each other, communicating, and having fun working together is more likely to finish their projects faster, not to mention produce better working software, than a group of developers who don’t enjoy being in the same room and writing code with their colleagues.