We just need a skilled code-slinger to wrestle this ornery application into shape. Enough talent and this will be easy, right?
(This is the second installment of a three post series on the Three Myths of Software Projects. If you haven’t already, check out Myth #1: The Features are Everything).
Hollywood often projects the stereotype of a genius programmer working alone to create a highly-sophisticated and successful application. That’s a myth, but it's still attractive: you have a great idea, and you know how it needs to work or work better. All you really need now is a skilled geek who knows all the technical stuff. Maybe.
Here are four questions to consider:
- Who's going to manage the project? Programming and project management are completely different skills. The ability to assess priorities and unexpected developments while ensuring accountability is critical to moving a project forward. A project manager also provides a direct line of communication that won't interrupt the development work.
- But can't I manage the project myself? Unless you or someone in your group is a project manager with technology experience, there is a chance that the most important technical decisions will be made unilaterally by the developer without any input from you. Even the most transparent developer will naturally lean towards familiar technologies and won’t consider the impact to the overall project.
- How broad is the technical scope? There are an increasingly diverse number of options and methodologies available nowadays, each with distinct advantages and disadvantages. A lone developer isn't as likely to have the breadth of perspective necessary to weigh all of the options. Similarly, a lone developer will have a limited area of specialization. Work made outside his specialty may be of lower quality or more costly due to his learning curve. The larger the project, the more dramatically these issues will impact the project’s success.
This applies similarly to architecting the project. It's very difficult to maintain focus on the architecture while building features. (See Myth #1: The Features are Everything).
- How will you find the right developer? Finding a developer is difficult. It's even more difficult to find a lone developer who can be trusted with the success of your project. The larger your budget, the more experienced (and independent) your candidates are likely to be. The opposite is also true: small budgets rarely engage top talent. Even if you've answered the previous three questions, striking the right balance of budget, skill and independence is key to ensuring the right developer on the right project.
Sharing and challenging each other with multiple perspectives, backgrounds, and skills is invaluable to ensuring a strong outcome.
An interesting resource that documents how this is the case is Walter Isaacson’s The Innovators.
Next up is Myth #3: The Software Buyer Myth.