Custom software development includes a chain of activities. Besides design, coding, testing, and deployment, it also comprises the process of sales and continuous development of the product that’s already on the market. When it comes to effective approaches to software product development, we apply Dedicated Team and Fixed Price pricing models, which are both applicable to different spheres of business.
Let us omit revenue-related issues and the vendor’s point of view and proceed to high-level specifics and nuances, taking a broader look at corresponding processes.
But why do we consider only these two approaches? How should a product owner pick the right type of contract for their software project? We believe you should start with these 3 things:
- Define the main principles of collaboration
- Identify possible risks
- Share and document responsibilities
Basic approaches to software development can be expressed through documents that regulate relationships between the Client (the Product Owner) and the Vendor (the Software Development Company). These are contracts, project charters, specifications, and other custom documents (if any). The actual names of these documents and the allocation of responsibilities between them do not matter that much. Every software company forms its own set of documents where the main principles of collaboration are described in detail for each approach. It is done through basic specifics of an approach, which are customized for unique conditions, workflows, policies, and processes of a particular business.
Main contract types at MobiDev:
- Fixed Price
The product is the object of regulations in the software project. Scope, budget, and time constraints are fixed. Risks are handled by the Vendor.
Some of our clients had a rather small but well-defined scope of work. While searching for a suitable software outsourcing vendor, they were able to polish it. They had budget constraints and were in need of a fixed price contract and guaranteed delivery on time and budget. MobiDev responded to such calls and successfully delivered their products to the market. In almost every case we managed to bring ideas and suggestions that improved certain aspects of the product (most commonly, user experience). What’s more, our consultancy and hard work at the earliest stages allowed to distribute the available budget very wisely within this pricing model. We even managed to implement extra features, which proved rather tasty for users, and deliver a market-ready build weeks before the agreed date.
- Dedicated Team
Team/regular delivery is the object of relations in the software project. There is a fixed weekly or monthly budget. Risks are distributed between the Vendor and the Client.
Dedicated Team is favored by our corporate clients and experienced startup owners. Their goal is ongoing product delivery and gradual improvement of time to market. An agile dedicated team basically provides this, facilitating long-term collaborations between us. A common case involves a client with an existing website and an in-house team that handles it. Meanwhile, the client has the need to quickly build a custom mobile app and integrate it with the existing ecosystem seamlessly. And not without plans for the future – this new software product has to be developed and maintained further on. And in this case, allocating a dedicated team is natural. The same experts would work on the product; the absence of lineup changes means increased efficiency. For a more detailed example, check our case study of ERP system implementation.
When you consider these approaches, these types of relations, your final choice should depend on your own needs and on the values of your Vendor. Practically, the best way would be to discuss two drastically different approaches – Fixed Price and Dedicated Team. So how should you choose the right contract type in accordance with your needs?
Determining your main needs for the optimal choice
The task of any manager from the Vendor’s side is to present a service that would fully satisfy your needs. What’s more, your needs change and evolve over time. The Vendor regularly analyzes them over the entire course of your collaboration, quickly reacts and modifies the provided service accordingly. From the very beginning, there must be close communication and discussion that should leave no blanks and answer all questions. The right choice goes along with a mutual understanding of the main principles, valid expectations, quality of results, and eventual development of relationships between you and your Vendor.
There are 3 fundamental questions that you should answer and discuss with your Vendor to make a well-considered, optimal decision.
1. How well are your product requirements documented?
Fixed-price contracts presuppose a solid understanding of requirements, the case when the project scope is documented in a specification, UI/UX design estimation documents, and acceptance criteria.
However, if you are still working out your requirements, if you have no clear vision of the product yet, and if there is not enough information about the scope, it cannot be fixed. Therefore, it’s a good prerequisite for work with a Dedicated Team. In this case your requirements can evolve continuously, along with your business, and the development process is change-friendly and highly responsive. Your time-to-market is minimized.
2. How important is it for you to manage processes and risks?
The fixed-price contract puts all risks on the shoulders of your Vendor. You are guaranteed that the final software development cost will not exceed the amount indicated in the contract. Your involvement in the process is very deep before the start of development, at the stages of discussions and elaboration of requirements. After the start of development, your involvement is minimal until the product is delivered.
With a Dedicated Team, your involvement is deep over the entire project. You pay for spent hours with a minimal accepted workload, but you bear the risk that the final cost of software development might exceed your expectations. It happens mainly due to changes that you might introduce to product requirements over the course of development, with cost of change growing at each subsequent stage of development. On the other hand, it gives flexibility, which is vital for many businesses, especially mobile startups that start to build their products while still identifying the target audience and their needs. This leads us to the third question…
3. Is flexibility important for your project?
Our experience shows that changes in requirements are almost inevitable. A dedicated Team contract provides high flexibility for quick handling of these changes, and you can easily direct the efforts that you pay for. A fixed-price contract presupposes re-estimations of said fixed price in case of change requests, and it takes additional time.
Choose the contract type wisely, knowing how the advantages and disadvantages of each relate to your software project.
Dedicated Team vs. Fixed Price
After the manager receives your answers and comments on these questions regarding your software project, the Vendor as a company will be able to offer an approach to development that will meet your business needs and satisfy your expectations in terms of process and result. The main principles of collaboration are fixed in the following documents:
- Project vision
- Project goals, business goals
- Description of services
- Timeframe and milestones
- Team members and responsibilities
- Budget and payment conditions
- Work schedule, overtimes, vacations, and medical leaves
- Work processes, standards, and tools
- Delivery conditions, acceptance criteria
- Assumptions and constraints
- Risks and mitigation plan
- Description of services provided by the Vendor actually defines the object of the agreement, which in turn defines further relationships.
Let’s take a look at several key points, pros and cons of these approaches.
• The fixed-price approach focuses on delivery of a software product, which comprises a set of requirements that are worked out in detail and fixed after the final approval of the Client. This set includes technology stack, functional and non-functional requirements, and acceptance criteria.
• Team members with proper expertise and skills are selected by the Vendor.
• Planning of timeframes and budgets is conducted before development. The Vendor guarantees abidance.
• Vendor’s project management is responsible for the delivery of the product according to the approved documentation. The Client communicates directly with the project manager, but usually does not communicate with the team members, who are focused on development and delivery within the approved cost and timeframe. After the start of development, the main involvement of the Client concerns change request management (in case of need; it may affect the cost).
• This is the main pricing model used in agile software development. There is a dedicated team that delivers the product on a regular basis. It is formed according to the required technology expertise and skills, depth of experience, availability, proactivity, communication skills and readiness to communicate directly with the Client.
• If the Client represents an enterprise, it is crucial to quickly integrate with the existing company structure, release cycles, development processes and tools. In case the Client needs to extend their existing core team with new experts, it can be easily done.
• Only high-level requirements and main development directions are clarified.
• There is a weekly or monthly budget, which is formed according to the quantity and ranking of the team members.
• There are clear and documented responsibilities distributed within the team.
• All team members share the goal that corresponds with the Client’s needs: deliver the product regularly with certain defined frequency, capacity and velocity.
• The team is guided by the project manager. But, as opposed to the fixed-price approach, the Client can directly communicate with other team members and participate in the management of the main aspects:
– Scope (prioritization of features, sprint planning, sprint review)
– Timeframes and budget (sprint planning, launch planning, involvement of additional developers for parallel work, withdrawing team members)
Actually, the Client may manage any aspect of development, but the Vendor still focuses on development and expertise.
• The Vendor takes over any risks related to Human Resources: provision of substitution for team members in case of vacations, resignations, or sick leaves. Quite often the Vendor has to take care of extra services that can be requested by the Client at their additional cost in cases of emergency: overtimes, non-standard services (e.g. branded design of business cards) and business trips.
• The Client takes over the workload-related risks. The Vendor is interested in provision of effective workload for employees, so a minimal paid workload is set for each team member: full-time for developers, part-time for other roles.
The Client’s value focus always develops from the launch of an MVP to regular product delivery and satisfaction of market expectations. What’s more, large and mid-sized software development companies provide added value to the product, and that is how Vendors become Partners that continuously participate in the evolution of software products.
Any good Vendor should provide advanced technology expertise, effective communication, established processes, and flexibility, allowing you to concentrate on your business. Therefore, you should choose a Vendor that will identify your needs and offer an approach that will help you achieve your business goals.