Over the past few years I have spoken to multiple people who have a good idea, an itch to build it, and the chops to pull it off – but who have never done product development or built a company from the ground up. Usually the person wants to start by outsourcing the product as this tends to be cheaper and easier to do while holding down a full-time jo
b. In those conversations I find myself discussing many of the mistakes I have made and the lessons I learned while outsourcing product development. Most of it is intuitive if you have done it before, but for many it is a necessary stumbling block on the entrepreneurial journey. In the hopes of helping readers avoid some of these mistakes, these are some of the lessons I learned.
1 – Never hand off design and development to the same person or shop: With incredibly rare exceptions, the skills that make a good software engineers are VERY different from those that make for a good designer. You want to find people who have specialized and become very good at engineering to develop software and those that have honed competencies in UX/CX/design to work on the information architecture and design. You will have a much better product if you find the best help at each of these functions than if you just go with one person or firm who claims they can do both.
2 – Design first then code. Most people instinctually think that they should begin the software development efforts and then or in parallel figure out the design to slap on top of it. The problem is that with design you often need to see what something looks and then request changes because nothing ever feels right after one pass. Nailing down the look, feel, and functionality ahead of time is critical because developing software for a moving target will result in very unhappy engineers, a lot of wasted time, and spaghetti code. Additionally, it is much easier to get software that does exactly what you want if you hand off fully developed designs than if you just give an engineer a word doc. Find a designer you like and create the designs for the entire websites.
3 – Write incredibly detailed specs. When you do give a designer and an engineer a write-up of what you want, try to be as detailed as possible. Find all of the potential issues that might arise from people doing crazy things with your software. Ask yourselves questions like “what happens if the user clicks the button twice and then hits the back button on the browser.” Providing clear indication of what you expect to happen with every click and keystroke will make it much more likely that you will get back what you want.
4 – Always cut the project into parts. There is such a huge discrepancy between the good and the bad development partners out there and it is often impossible to know the difference ahead of time. Being able to cut the project into parts and testing the relationship and the quality before going all-in is absolutely critical. If you make a mistake you can quickly course-correct with minimal wasted investment. Most firms will really fight this, but no matter how many references you have or how good you think they are, make sure the first project is just a few hours so that you can get a sense of how much you like their work and their ability to translate what you want into software. This is true of designers too, ask them to design one page first before you give them the whole project.
Those are the major pitfalls I stumbled on with my first outsourced project and the lessons I learned from them. Hopefully you’ll fare much better.
Source: Forbes Business