Software Cost Estimates - Top Tips for Software Engineers

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Run-through

The Gitential Guide on How to Reduce the Size of Your Git Repository

The Gitential Guide on How to Reduce the Size of Your Git Repository

Unfortunately, there are no easy ways on how to reduce the size of your git repositories. However, there are quite a few ways to keep your repositories down to an efficient and easily manageable size. Many of them are fairly simple and can be set up fairly quickly. But, they probably won’t help you if you are already exceeding your repository cap on Bitbucket, Github, Gitlab, or Azure DevOps. For this scenario, we can help you identify what to target when it becomes necessary to deal with a large repository.

Read More »

By GITENTIAL TEAM

What’s the price tag on software development these days?

In industries like consumer packaged goods or travel, it’s easy to differentiate on price. When offering a $99 package, a 2-for-1 special, or an “All You Can Eat” deal the picture is clear. For software engineers, pricing is a different kind of game. Without fixed prices, software cost estimates enter the picture. It forces you to deal with all the nuances of calculating costs and predicting difficulties. Businesses depend upon software engineers for precise software cost estimates. Its key for your client, your company, project success, and your credibility.

Per McKinsey and InfoWorld, “Two-thirds of enterprise IT projects run over budget by as much as 100 percent.” It begs a question. Do software development agencies have a process for delivering a cost estimate? These figures indicate many software engineers don’t. But, our tips will help you avoid mistakes and deliver cost estimates your customers can take to the bank.

Why do software cost estimates matter?

Companies depend on software cost estimates to check whether they can afford the investment. Some will use it to compare against other business options. Is their budget sufficient for a full-featured release? Or, will they need to start with a Minimum Viable Product (MVP)? Time is often a major consideration, too. Can the software be ready for their demo day, trade show, or seasonal marketing campaign?

The cost estimate you provide is a chance to beat your competition. You may not win on price, but quality and reliability are important, too. If you estimated the cost at $200k and it ends up costing $300k, you could end up putting your own startup client out of business. Missing a margin like that will force larger clients to think twice about hiring you again. Your credibility is at stake. So why not take steps to keep it intact and develop a solid reputation for your agency?

Is it evil to charge for software cost estimates?

Software cost estimates worth their salt can involve several thousand dollars worth of effort. Even the simplest of software projects these days can be pretty complex. As a software engineer, you know your stuff. You have the education, experience, and mental acuity to make more calculations before breakfast than most people do all day. Yet, the person asking you for a software cost estimate probably does not have the same expertise. They don’t know all of the technical requirements. Odds are pretty good someone will need to dig for that information. Without it, the likelihood of an accurate cost estimate is pretty low.

Software development agencies have a choice to provide free cost estimates, or charge for them. Many steps involved in producing a cost estimate are part of the development process. If you charge, the cost of the workshop can be rebated if the customer decides to contract with you. This brings up a separate point. Your sales team or account manager should vet customers before doing a cost estimate. You don’t want to waste your time with casual window shoppers.

What goes into proper software cost estimates?

The first mistake in giving cost estimates, is not having a cost estimate process. A lot of questions need to be answered before software engineers can put a dollar sign on anything. The following steps provide a pretty good cost estimate checklist. They’ll help to make sure you factor everything into your cost estimate. It will provide you far more accurate estimations than guesswork ever will.

  1. Understand customer needs – the software’s function, audience and objectives.
  2. Define the software’s modules, components, technologies, and other requirements.
  3. A roadmap that defines the sequence in which the components will be developed.
  4. Create a storyboard or wireframe to show how all the parts will fit together.
  5. Verify the customer understands and agrees to items 1-4 for their software project. Corrections may be needed.
  6. Effort estimation. Only with agreement to the details above can you begin to make any calculations.
  7. Scheduling, does the customer have a deadline? Will certifications, regulatory approval, or parallel development be a factor? Gantt Charts!
  8. The Money-Time-Scope Triangle – a cost estimate is not set in stone, changes can still be made.
  9. Only if the customer agrees and signs a contract with you can you proceed further.
Yes, that’s quite a bit of effort and it’s likely to involve three or more meetings, possibly over a couple of weeks. Whether you use this checklist or one of your own devising is up to you. The main issue is to have a process and apply it consistently. Each estimate you do will tend to get faster, more efficient and more accurate. It can also help you avoid technical debt, too.

Flying solo vs a team effort

Forming an accurate software cost estimate is one of the responsibilities of software engineers. But, most software projects require teamwork to complete. Teamwork between different positions as well, like designers, developers, testers, QA specialists, etc. Team members have their own variables. As one example, experienced developers tend to be faster or more efficient than newer developers. Their experience may vary across software modules, languages, libraries, platforms, devices, even regulatory standards.

Include your team members in the process. The goal of a software cost estimate is to reduce guesswork. It shouldn’t take more than a few minutes to ask team members about their part in the project. It’s simple, “Joe and Anna, how long do you think it will take you to do A-B-C considering X-Y-Z?” If it sounds too low or high, follow-up with additional questions to identify why. You’ll make your life a lot easier and learn more about your team. You’ll make the software cost estimate more precise. Parts of the next section tie into the team effort, too.

Scheduling, capacity, and deadlines

Scheduling is another area where engineers sometimes make mistakes with their cost estimates. Schedule overruns impact roughly 33% of IT projects. Your customer will want to know how long it will take you to develop their software. They may have a deadline that will dictate to you when it must be finished. They may or may not appreciate that the project has dependencies – that some parts of the effort can only begin after others are finished and approved by them. This requires customer engagement. They’ll need to meet, review, make decisions and provide approval in a timely manner. Inform your customer of this in advance so they can plan accordingly.

You may not be their manager, do your best to verify the availability of your team members. The smaller your team, the more important this is. Any schedule you make can go right out the window if a key member or two of your team won’t be available. They may have other assignments and tasks, scheduled vacations, military reserve service, or maternity leave planned. Large projects may require hiring more team members, freelancers, or schedule overtime. These things take time, too.

Other options might need to be considered, depending upon the project. Companion software for IoT devices is often developed in parallel. You may need to factor in time for certifications or regulatory approval. Consider and factor in items that are outside your control as best as you can. If something like this is new to you, talk with someone who has been through the process. For software with regulatory requirements, you might need to hire a consultant.

Fixed estimate vs. the money-time-scope triangle

Customers often change their minds about what they want. This is where your hard work itemizing their project’s details comes into play. Educate customers in advance that changes to their project requirements will involve extra work and cost more. The later those changes come in the project’s development, the greater the impact.

Upon receiving your cost estimation your customer may say, “That’s beyond my budget!” They could also say, “Wow, there’s room for another feature or two!” The same may apply to time constraints. You don’t need to throw out the baby with the bath water. You can keep all the work you’ve done and refactor the additional work or reduced features, and what they impact.

Keep copies and track your estimates

 We’ve found that many software engineers find it very helpful to track their software cost estimates. It is extra work, but think of it as an investment. The more estimates you do, the more efficient you will become. You’ll likely be able to reuse some of your work with future software cost estimates. You’ll also be able to compare your estimates against the time spent on each software component. This also provides you the ability to evaluate factors contributing to overruns.

Software cost estimates as a loss leader

In our experience with a fair number of development agency owners, managers, and software engineers. Most agree proper software cost estimates are instrumental in winning contracts. We’ve talked with a lot of customers about their experiences, too. Many perform a due diligence analysis on each developer that makes their shortlist. Software cost is only part of their equation. Quality, responsiveness, rapport, reliability, and transparency counts more than you’d expect.

A cost estimation defining project requirements, software components, the roadmap, timelines and software development cost breakdown is an impressive document. A customer can take it to any developer and reasonably expect them to produce their software. That’s not very likely, unless you are really priced out of their market. You’re showing them that you take their project seriously. Detailed time and cost requirements show transparency. It provides a basis for an honest comparison with other developers. That builds trust.. You may not win that contract, but the customer is likely to return to you for other projects. They’ll also be inclined to refer friends and colleagues to you.

There’s no rule that says you need to provide software cost estimates for free. But, when high quality software runs 6-7 digits you can consider it a wise investment. Nevertheless, proper software cost estimates do require your time and effort. Time is money, so it is a cost for you. If you plan to charge your customers, Gitential can be extremely helpful for software engineers.

Providing analytics on your coding builds up consumers’ trust making it more likely they’ll pay for your software cost estimate.  Please take a moment to check out our free demo – or sign up for a free trial, no credit card is needed.

The Gitential Guide on How to Reduce the Size of Your Git Repository

The Gitential Guide on How to Reduce the Size of Your Git Repository

Unfortunately, there are no easy ways on how to reduce the size of your git repositories. However, there are quite a few ways to keep your repositories down to an efficient and easily manageable size. Many of them are fairly simple and can be set up fairly quickly. But, they probably won’t help you if you are already exceeding your repository cap on Bitbucket, Github, Gitlab, or Azure DevOps. For this scenario, we can help you identify what to target when it becomes necessary to deal with a large repository.

Read More »

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Subscribe to Our Newsletter

Don't miss our latest updates. All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Subscribe to Our Newsletter

Don't miss our latest updates. All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.