5 Tips for contracting developers (from a Developer)
A decade ago, I was surprised by the horror stories from companies that hired bad software development firms. I remember helping one company recover from spending hundreds of thousands on a development project that had left them with nothing usable at the end of the project. Unfortunately, failed software projects are still weekly headlines today—even worse, failures today are much more expensive.
The Department of Veterans Affairs and the Department of Defense, according to NBC News, spent at least $1.3 billion over the last four years "trying unsuccessfully to develop a single electronic health-records system."
The State of Oregon is currently suing Oracle over a failed project. Evidently, the state's insurance exchange (which Oracle was hired to build) never went live. But the development was fully paid for nevertheless and Oracle—according to The Motley Fool—"doesn't appear to have any intention of handing the state back any of the $240 million it paid for the failed exchange, fixes, and workarounds.”
And of course there is the infamous Heathcare.gov rollout, which according to Wikipedia was contracted for $250 million and wound up costing $500 million.
In fairness, these examples are government projects that have to go through RFP processes that can lead to some unintentionally bad decisions. For example, some government contracts have to be awarded to the lowest bidder, regardless of their ability to actually perform the work.
But for those who do have the ability to set their criteria and search for a talented development services partner, here are the best tips I can provide:
Not all developers are created equal.
Software development is part hard science, part puzzle solving, and part style. Developers vary widely in their quality of code and speed of their work. A task that takes a talented developer two hours may take another developer eight. If you’re paying hourly, that talented developer can cost twice as much and still be a deal! As well as speed, you have to take code quality into account. Quality code is more difficult and time consuming to write.
Look for computer science degrees as a prerequisite. Then look for incredibly bright, well-spoken people you trust to solve problems the way you would.
Planning is everything.
Anyone that gives you an estimate of effort without a detailed plan that can be translated to work-hours is being disingenuous. There are so many variables that go into planning and estimating software project, it’s nearly impossible to be accurate without proper due diligence.
If you don’t have the experience building software requirements and design documents, hire experts to do it. This up-front work will save you in the long run.
Building software is not like building skyscrapers. In software, we can swap out the 11th floor, or the electrical system, or plumbing even after the building is done. You want to take advantage of this ability during your project without either going over budget or too far off course.
Embrace change. Look at your requirements and design work as a living document and implement an Agile or Scrum project management plan to help keep the project moving towards the right goals.
Offshoring is like an expensive game of telephone.
Send a box of Legos, along with their official instructions to build a car, to 50 engineers around the world—you will likely get 50 identical cars. Now send the same Legos to the same people with no instructions other than “build a car”—your results will vary widely. This is why offshoring developers often goes so badly. Development isn’t like following Lego instructions; there are always decisions to make within every detailed requirement.
Managing time zones and language barriers is just as unpredictable. Differences in styles, meaning and culture are so diverse. On the other hand, if you can sit next to someone & describe the car, draw it on a whiteboard, and check-in often, you’re much more likely to get what you expect.
Developers don’t make apps look good. Designers do.
Developers are puzzle solvers; they think in terms of patterns and algorithms. Most of them are not artists. Designers make applications look good. They know certain fonts make a financial app look credible, while others make a consumer app feel fun. They understand user experience design and the importance of storyboarding.
Separate these skills sets. Find killer artists that know User Experience, & let expert developers look good through them.
It's a jungle out there.
Above everything else, you need to make sure whoever you partner with fits the project. Unless you have had a lot of experience with the market, it can be hard to track down the right fit. And if you need help, we're here and happy to answer any project or development questions you have.