Finding the right coders and how to manage the development process all while keeping in mind your timetable and budget constraints
When you first start to plan the development of your Minimum Viable Product, one of the main issues to deal with is finding the right people to do your product development. Product development is usually done by a team of which one of the major components besides UEX designers are software developers or programming coders.
This article will deal with the complex issue of finding the right coders and how to manage the development process all while keeping in mind your timetable and budget constraints.
During the initial stages of your venture, you might want to consider working with an external remote team. This is a good solution to cut expenses and ramp up quickly because there is usually no need for office space nor need to fill full time positions. In most cases, because you have no advance knowledge of the amount of work needed until major investment is available to you, you will want to work lean and remotely contracting your team can be a good solution to stay on your initial pre-seed budget.
How to recruit a remote team
The first question that comes to mind is how you are going to find these developers. There are many ways to do this and the best approach is to define your method so that the recruitment process has something to fall back on in case one way does not bring the desired solution. Local Google search and directory listings can usually provide information on many agencies that deal with software development. This is usually an expensive option but at least it ensures some safety in knowing that the project will get completed. Especially in cases where you the entrepreneur are unfamiliar with project management or development methods and are interested in meeting with team members face to face.
Another option is to look for overseas agencies. This is a more budgeted option in cases where you need to cut down on your development expenses. There are many available off shore companies and the best way to find them is to ask within your circle of contacts who can recommend a firm for you. If not, then search for overseas contractors after deciding on some of your preferred target geographies. The challenge here is to rely on your ability to trust others and remotely communicate with companies in the hopes of building a relationship with them that will support your efforts and allow you the flexibility and the amount of resources you need at each stage. Typically agencies can be flexible in adding more developers to your team when the workload increases
The last option is to work with individual developers and build your own team by gathering several such developers and coordinating the work among them. This is the most complicated of all models but it gives you the most flexibility with your budget. Finding developers is one of the easiest parts of the process. You can use sites like Odesk.com, guru.com. elance.com or more specific community forums that deal with specific technologies as a way to find developers. The hardest part of the process relies on your own ability to select the right developers and manage their workloads while coordinating and dividing up the efforts required between them. By working directly with a team will surely lower your initial cost but if you’re unfamiliar with the development process or with managing developers, this can turn out to be more costly in the long run.
Interviewing and testing a developer’s skills
No matter which of the above options you choose (whether you go with local agencies or with remote independant developers), you should always insist on personally interviewing your developers and approving them first before proceeding. Agencies usually prefer to appoint their own designated project manager whose role, among other things, is to be a single point of contact for all communications between the team and the customer. When developing your Minimum Viable Product, I believe that being able to communicate with your developers directly is an important aspect of being able to adjust your Minimum Viable Product when needed, and according to your needs.
Another aspect to consider is whether you want to test the skills of your developers by giving them a small task which they will need to fulfill. If you are unable to judge the quality of the output from this task then you can always use external services such as codility.com which will help you test the skills of your proposed developers. There are several other platforms such as Odesk.com that offers skills testing for registered developers, which can help you assess their ability to perform the tasks you are after.
Turn key v.s. by hour project
When it comes to budgeting the development process, getting a final quote ahead of time often drives some founders to ask for a turnkey proposal. A turnkey proposal has its limitations, as the ability to evaluate ahead of time the effort that your team needs to provide when developing your product is almost impossible. So developers and agencies tend to add in safety factors to the proposal which can sometimes be as much as 100% over the estimated effort to cover their risk. Also in most cases, because you will need to make adjustments to your Minimum Viable Product while the development is in process, you will need to allow for changes that may add up to extra costs to the initial quote, leaving your initial turnkey proposal running well over your intended budget.
I suggest that you get your developers to work according to their hourly rates, but at the beginning of each sprint/week ask developers to estimate how much time each task will take and then figure out what your costs per week are. By working with a weekly budget you can also keep your overall budget within limits. This is further explained below in ‘Working in sprints’.
Team size and the buildup process
Another issue that you may have to closely manage is your initial team size. In many cases, in order to develop your Minimum Viable Product according to a strict timetable, you may need to have several developers on board. As more developers are added to the team, efficiency usually decreases, since more time is wasted on internal communications between developers, even if the project manager is the best one you can find. I suggest that you start with the smallest team you can manage and grow it gradually. This will let you adjust the team size to the actual needs and speed of the project by not having more developers than you need ahead of time. This will also enable you to carefully examine each developer you add separately and make sure that his performance and skills are up to the levels that your team is expecting.
Having a project manager that works closely with your developers on site can be one of the better options to consider. Project managers can be from the agency side and site nearby the developers or from your side and manage the developers remotely
Working in sprints
There are several product development strategies to choose from. One of the more popular in current times is agile development. Simply put, the idea is to run the product development process in short sprints. Each sprint has its particular goals (tasks) and at the beginning of each sprint your team will evaluate the amount of time they need to fulfill each task. You need to check the overall amount of work to see if it falls within the time allocated for the sprint. At the end of each sprint, a new version of your Minimum
Viable Product should be released and ready to be tested.
Working in sprints ensures that the team stays within a timetable that is set ahead of time and controlled by the process constraints that exist from one sprint to the next. It is especially efficient to develop your Minimum Viable Product while simultaneously making changes to it according to what was achieved in the last sprint, and also based on feedback received from your initial users. In this way you are guaranteed to complete your main goal, that is of releasing your Minimum Viable Product within the shortest amount of time.
Managing tasks and planning your version releases
Communication with your developers is important. You should use online tools to help you track the tasks that are set for each sprint and also record the bugs you experience. There are several platforms available for such applications. Google Docs is a free option which can be used as a shared spreadsheet that allows all team members to contribute their findings and update the status of each of their tasks. VersionOne and Rally are Agile commercial SaaS solutions which have overview options and planning features. Basecamp is also a commercial but relatively inexpensive tool. Using these online communication tools are essential when dealing with the many tasks that need to be managed for several developers simultaneously, and it is also essential to update these tools on a daily basis.
Managing developers is a complex mission that needs knowledge and expertise to maneuver and make continuous changes to your product. Most of all it is recommended that you plan as much as you can ahead of time because the best strategy is the one that fits within your budget, your timetable and your ability to work directly with developers and supervise them during the development process.