How To Work With Software Developers
I recently wrote a post about how to select a development team for your startup. Once you’ve selected a developer or development team, you need to understand how to work with the developers to achieve the results you want without headaches or heartache.
Step #1: Understand How They Want to Work
Some prefer to be given a firm spec and work toward it until it is done. This puts a lot on you to understand, decide, and document what you want up front. This also means that the talent you hire can be cheap, but they will only do what you ask and nothing more – rarely do they get creative or offer ideas to improve your product. Keep this in mind, as spec work depends on abiding by the rule: you get what you give.
Others (like myself) know that startups change quickly. As you begin to talk to others about your idea, you’ll find that things previously prioritized high aren’t as important and you need to shift gears. Investors might want to see something different than what you planned to develop. This requires working with someone that can take a big picture with some details, work toward implementing them, and adjusting the development plan as you learn more about what your market needs. This provides more flexibility but also means you need to find someone that can spend more time communicating with you and working with you to find new opportunities.
Whatever you do, find a way that can match their way of working. Otherwise, you will greatly reduce their effectiveness and prevent them from being effective and efficient in their development.
Step #2: Build a Communication System
Most startup development teams get into trouble when their is a lack of a consistent communication system. Here are some tips I’ve found that help create a good communication system:
- Select a set day/time to meet over the phone or in person to discuss what was accomplished since the last meeting, what roadblocks exist, and the plans for the next meeting
- Select a collaboration system with tickets, milestones, file uploads/attachments, source code repository, and comment systems. I prefer Unfuddle and insist that anyone working with me utilize this system. Basecamp is average but lacks many of the features needed to coordinate multiple developers and keep everything in one place (including your code).
- Keep things out of email and in your collaboration system, otherwise you will create too many sources of information. If you and your developers will get out of sync, you’ll lose time and money. Utilize your collaboration system as a single source of information and stick to it. Leave email for private communications or housekeeping discussions, not for changes to requirements or bug fixes/enhancement requests.
Step #3: Given Them Time To Work
Just remember – software development is different than many other services you’ll need for your startup. Unlike accountants and attorneys, software development is creative and requires interaction between the founders and the developers constantly. Sending a spec over the wall is generally unproductive and leads to a fallout between the developers and founders.Give them room to work without interruption. Don’t constantly call them or interrupt them using your favorite instant messenger or Skype. Schedule communication times in advance and work with their preferred off-peak time, leaving their best time of the day for being productive.