When embarking on custom software development, total cost of ownership (TCO) is a critical factor that requires meticulous planning. TCO encompasses not only direct costs but also indirect expenses over the software's lifespan. A clear understanding of TCO allows for better financial preparation and paves the way for project success.
At a first glance, the total cost of ownership includes some major activities below:
TCO = Development cost + Maintenance cost + IT Infrastructure and Services |
In this article’s scope, we will go deeper into the estimation of development and maintenance costs. We also explore the best way to collaborate with the software vendor to have the most reasonable cost estimation, which ensures several following objectives:
- Deliver the software project on time and within budget.
- Adapt the software to evolving requirements during its lifecycle.
A perspective about software cost estimation
Scope, Time, and Cost are the three main constraints of a software project. We all tend to fix all these three components from the early phase of the project to boost our confidence in project management. But somehow, it is impossible in reality.
The software system is complex and the software functionalities are challenging to fix at the outset of the project. As some clients do not know what they want until the middle of the project, changes, adaptations, and additions are more the rule than the exception.
When the cost and time are strictly fixed from the beginning and changes happen in the middle of the development life cycle; the quality of the software will probably be negatively affected. It promotes cheating from software contractors, which might cause several adverse effects.
- In order to meet the deadline at all costs, bad codes are implemented without carefully considering the whole application's context. Technical debts might be accumulated enough that refactoring sometimes is time-consuming and can not resolve all major problems.
- Testing phases are not conducted properly or even being moved out to keep the overspend at a minimum. Eventually, the application may contain a lot of hidden bugs.
- Security modules are very likely to be ignored. Its negative impacts could be disastrous which related to severe data breach litigation and fines. According to a 2020 IBM report, the average total cost of a data breach for the businesses participating in the study is $3.86 million.
Read also: How to avoid the top pitfalls in offshore software development. |
In a nutshell, there are many other outcomes that make the early accurate cost estimation quite impossible. On the other hand, as a buyer, you often have limited resources, specifically, limit time-to-market and a predefined budget. Understanding those circumstances, at Enlab, we try to define a proper approach toward cost estimation to ensure the project delivers the most viable product within your desired timeframe and budget.
What are the main points of our software cost estimation approach?
- Fixed-price for the work packages
We use Work Breakdown Structure (WBS) for breaking down the whole project into major features, which serve as the backbone of the product. Features are interpreted with sub-features and tasks. A fixed-price quotation is set based on this initial high-level WBS and the respective number of hours required for completion. This approach enables you to cover the whole project scope detail by detail, step by step, without missing any things. - Flexible changes
We highly recommend regular communication between the client and the development team, either to understand the team's velocity and quality or embrace any necessary changes that adapt to the changing business landscape. We don't require the client to know precisely everything from the outset of the project, but we promote relevant feedback based on each iteration delivery. In case changes happen that are out of scope, we then reprioritize the new backlog with straightforward discussions with the client. Additional work packages are added to the contract. In the end, we believe the project's success should be evaluated based on the product that meets the client’s exact needs at that time, not just on meeting what is predefined in advance.
- Maintenance and enhancements
After the products go live, it’s when the maintenance and enhancements phases come to play. At this stage, when both sides know each other very well, trust is established and proven, the price often goes with the time and material model. In case, the client has very specific requirements for an enhancement plan, they could continue to go with a fixed-price model.
Who benefits from this software cost estimation approach?
This approach is highly appropriate to several circumstances:
Startups need to navigate the software product development journey while trying to understand the market demand. Flexible changes allow them to build the Minimal Viable Product (MVP), test the market, receive user feedback, and improve their development plan. It boosts their confidence and raises the relationship between client and vendor to the next level of trusted partners, who go side by side to support them build their product and let them focus on their core business activities.
Plus, when they have initial revenues from their MVP, they will happily invest in more advanced features with the current development team. The team velocity is apparent, the communication and collaboration are solid. It is the perfect time for a very accurate cost estimation as well as speeding up the development time.
At Enlab Software, we have different startup partners that go along with us in this way. You could refer to the case study of the marketing automation project and hear what our client said about us.
Next, SMBs come with vague ideas and do not know what they need until the middle of the project. Fixed price based on work packages combining with delivery on small iterations allows them to understand what they are building deeply. The working software is the perfect tool for them to get feedback from relevant stakeholders. At the same time, they are allowed to redirect their development plan, which is discussed transparently based on their budget, timeframe, and real-world progress.
Read also: How to write a practical "Agile" software product specification for startups. |
How we come up with the cost estimation and our WBS sample
- After receiving the first requirements from clients, an upfront analysis is conducted via emails, calls to understand what needs to be built, how and when, business objectives, technical requirements, client’s budget, and any other project constraints.
- Based on collective project requirements, we define a Work Breakdown Structure, which is decomposed into deliverables, sub-deliverables, and work packages. The work package represents the list of tasks that will be assigned to engineers to produce a specific unit of work in 2-3 hours. The entire WBS covers all necessary phases of the software lifecycle from analysis, design, development, testing, and deployment. From that, we come to the cost estimation. The final cost estimation is based on the WBS as well as our offshore software development rate.
The cost = Development cost + QA & bug fixing + Project management |
Download our WBS and cost estimation template
- The cost estimation is often a part of our initial proposal to our client. We include it with other project information like technical solutions, delivery approaches, project milestones, communication methods, warranties, enhancements, and maintenance. This proposal provides the whole context for elaborating the proposed fixed-price quotation, timeline, and resources. When the proposal is accepted, we can move forward to draft the contracts.
Read also:
How to build an efficient Minimal Viable Product (MVP) for startups
How to validate your Minimal Viable Product (MVP) for startups
Final thoughts
Cost estimation in custom software development is a sensitive topic as we have different approaches depending on the projects' complexity and constraints. While the clients look for the highest ROI from building a high-quality software system fitting with real-world demands, the development team like us looks for building a trusted, balanced, and long-lasting relationship with our clients. That is the main reason why we try to put ourselves in the client's shoes and find the most appropriate approach that fits both desires.
The central values we pursue in the relationship with our clients/partners are integrity and transparency. We hope through this article, we could show you the transparency in our working style. Also, it might either guide you through the uncertainty of choosing a trustworthy software vendor or judging which is the most reasonable price for your custom software development.
References
- AiDA - MITRE Corporation, Agile Cost Estimation, aida.mitre.org.
- Paul Barnes, Software Costs Estimation In Agile Project Management, www.toptal.com
- Software Cost Estimate – How to Estimate a Software Project Easily?, diceus.com, 2020.
- MoSCoW Prioritization, www.productplan.com.