When starting a new project, there is an old saying that you must pick two of the three options: speed, quality, and price. But the paradigm shifts if you think outside the box. With the proper upfront work, where If you start by taking an honest inventory of your goal, project complexity, internal programmer capacity, and skills. This is followed by a realistic gap analysis between the current and desired state to meet your development goals.
In 2020 I decided to organize my basement storage area and ordered five five-shelf wire racking units from Costco. One Saturday morning I began assembling the shelving units. The first one took almost an hour to complete, and it was a real workout, but by the fifth one, I was finished in 10 minutes. Why the difference? Because I had experience with the required tasks and I had developed a system.
Lesson learned, similar to my assembly experience, when we bring a new application to market, experience matters. Experience is a driver to both speed and cost (longer is usually more expensive). Whether in the design, development, or deployment stage of a new application, some experience can make a dramatic difference. However, only some on the project have to be experienced veterans. On any project, there are usually four to five categories of participants.
- Business owner
- Project manager
- Core programmers
- Specialty services
1.) Creating the right balance of talent and experience can optimize the price, quality, and time equation.
Adding specialty skills can help all three. A specialty service team member is a person(s) with various skills not held by our core programmer group. These folks have usually developed applications similar to the proposed project. They bring expertise to the problematic element of your application, whether it’s encryption, interfaces, payment processing, or any other elements that make your project unique. Their participation in the design and deployment is directly related to your time element, and their overuse can contribute to budget overruns, so a planned balance is critical. These folks make the difference between the first shelf I assembled in an hour and the last one in ten minutes.
2.) You will also decide what part of the project you need specialty skills.
Some may be necessary for the design phase, others may be only for the build phase, and some skills may be required for both. Again, getting this proper analysis and plan upfront makes a huge difference in price, quality, and development time.
3.) A good project manager with the appropriate tools will have a meaningful impact.
A good project manager creates a transparent system that will anticipate problems while there is still time to correct them. Set up regular reviews with all team parties to ensure the design integrity is intact and well executed. Unplanned issues are resolved early.
Core programmers are often a team many organizations have in-house or from one specific development partner. This team may often have capacity constraints due to competing projects. The gap analysis you did at the beginning will assess any missing skills or capacity to most efficiently complete a task. A lack of capacity can string out a project, add more cost in the long run, and jeopardize quality when team members constantly rotate through either stopping, starting, or waiting. It is more efficient to power through from beginning to end.
Every team has gaps, and smart visionaries and program managers will partner with a full-service development partner who can offer full-service customized services from turnkey solutions, project management, and specialty skills and supplement core build capacity when needed. A good partner is usually the key to getting your project done fast, cheaper, and with high quality.