8 Ways to Determine Software Development Costs

Lessons in Software Estimation

No matter what software development methodology you use — waterfall, Agile or some blend of the two — providing a project forecast challenges technology teams. An inaccurate forecast creates problems for business leaders as well. They want certainty in when “done” will happen, in spite of their own shifting definition of done.

Why Teams Must Evolve Alongside a Project

The constantly shifting variables that shape software estimation during the course of a project bring up another set of challenges:

How should the initial result of software estimation be connected to new needs as the project progresses? Once development starts, how quickly can the team assess actual progress vs. the initial estimate? When should updates be shared?

To maintain credibility, the technology team must have the ability to explain to business leaders any changes made to the estimate early and often.

8 Steps to Better Software Estimation

I have used this approach on dozens of projects directly and perhaps hundreds tangentially, and I would like to share some insights on how to apply it to software estimation.

1. Involve Business Stakeholders in the Software Estimation Process

Years ago I worked with a client who demanded a certain system functionality. Several people told the client that an alternative approach was better. The client refused to listen. What was missing was that no one explained the costs to the client. But once the costs for the function were understood, the client’s demands changed and the team could arrive at a reasonable solution. The give and take of estimating will help to drive more realistic expectations from the beginning.

2. Ask, “Why Do Most Software Estimation Projects Fail?”

3. Break the Requirements Down to Increase Transparency in Software Estimation

This process will help the stakeholders understand what it will take to develop the software. Demanding more details upfront may seem to add time to project estimation, but the transparency it creates usually shortens the software estimation, improves quality and shortens the approval time through better understanding amongst stakeholders. Breaking the project down will also allow for the team to set milestones and measure against them during the project, contributing to project success.

4. Tie the Estimate to Reality

5. Build the Right Team

An area too often overlooked or skimped on when building a team is the resources necessary to build an effective QA testing plan. The team should be prepared to test early and often with a thorough and repeatable process to identify problems with the application while the code is fresh in the developer’s mind. The plan needs to ensure that the delivered code fulfills the requirements.

An approach that I have found to work in building the team is to use ratios of these roles to developers. A single BA can support only so many developers before the developers are coding faster than the BA can write requirements (an all-too-common problem that wastes developer dollars). A lack of good requirements wastes developers’ resources. This is also true of user experience and quality assurance. Developers who have a good supporting cast are better equipped to create good code that meets requirements, budget and scheduling needs.

6. Remember Why the Product Owner Matters

An overwhelmed product owner who splits time between too many duties imperils the project. This is another area where, if the product owner does not have clear authority and time to dedicate to the project, red flags should wave as expensive contingency plans add to estimated costs.

7. Good Software Estimation Metrics Should Reveal Problems Sooner

8. Small Things Matter

When will the first release be ready?
How long after a developer joins a project will it take for them to be 100% productive?
How much development can a lead developer do when they are leading a team of two developers vs. a team of seven?
How will holidays and vacations affect the project?
If the project must be completed by a certain date, how many developers will it take?
What will it cost to develop a feature?

I have heard these and dozens of other questions during software estimation projects. Factoring in as many of these questions into the estimate helps to tell a better story to the executives who hold the purse strings and will ultimately approve the project. The better you understand the answers, the more likely you are to get the funding you need to succeed.

Why You Need to Rethink Your Software Estimation Tactics

Rethinking software estimation will also provide a beacon of reason for business leaders even when pivots are necessary or new challenges arise. Teams that remain agile and collaborate closely with empowered product owners take crucial steps towards building and releasing quality software that delivers value.

Original post can be found here.

Innovate with us. Click here to access all of our free resources.
Authored by
Stanislas Walden.

Stan loves to make the obscure more apparent, the complicated more human and approachable. He strives to communicate the complex themes inherent in software development trends in a way that sparks curiosity and invites exploration.

As the Content Associate, Stan helps to develop content and coordinate communications that elevate MentorMate’s voice and connect people with vital information that helps them create tools that help other people.

When he’s not researching or publishing a new article, Stan enjoys running around a few of Minnesota’s many lakes and looking for new recipes.

Digital Ideas Accelerated // Global software development team, 500 strong // Learn more: http://bit.ly/2jjoQsp

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store