Quantcast
Channel: Mapleton Hill Media » Software Development
Viewing all articles
Browse latest Browse all 8

The Art of Accurate Software Estimation

$
0
0

In this fast paced, information saturated age of technological advancements, it is impossible to deny the impacts that software has had on the way we do business, the structure of our economics, and the way we interact on a personal and social level. One of the primary challenges that arises from this undeniable and profitable industry is the endless quest of an accurate estimation of what software projects will cost and how quickly they can be delivered. There is a battle field of development paradigms, frameworks and perceptions. There is a competition between cost, time to market, quality, maintainability, complexity, and a long list of other nouns and adjectives that is frankly too much to list.

This blog series is intended to be a starting point for understanding and minimizing these challenges, and in turn minimizing the risks that every successful software project hopes to survive. To that end, I want to make it clear that I believe while there is no definitive answer, I do believe that there is a very respectable art form that can be developed and perhaps even mastered in regards to accurate software estimation. And thus, I present to you The Art of Accurate Software Estimation.

Understand the Business Environment

First and foremost in this journey is to understand the business environment in which an estimate is being presented. What are the perceptions that an organization has towards software and software development? How well do the business interests understanding how software is built? What level of active involvement will they accept as necessary for a project to be successful (the more the better)? How do they factor in maintenance costs, quality assurance and bug fixing? These are all questions that impact the overall estimate as well as how that estimate is presented to the business interests.

The consulting industry provides the opportunity to work with a wide variety of industries, value propositions and clients. This variety offers a unique opportunity which quickly demonstrates the variety of criteria by which businesses measure their own success. Delivering reasonably close to the original schedule, the original budget, and the initial specification are some of the more obvious success criteria that arise, but there are other considerations which can often be overlooked. Let’s run through a few business perceptions that impact a successful estimate.

Prioritize the Feature Set

For some businesses, delivering on time isn’t as important as delivering something of value. In the digital world the definition of valuable changes rapidly, so having delivered something of value in a short amount of time, where a project achieves a certain market share, a fast client conversion rate, or a new market opportunity is often more important than all the bells and whistles that were initially imagined. Waiting for a complete feature set to release could mean that this complete list is longer relevant or more likely, that it could have been delivered at a later date, without hurting the success of a project. This means that prioritizing a project’s deliverables is necessary even if there is a sense that every feature that has been imagined is necessary for success. If everything you’ve ever wanted costs more than you are willing to pay, then this prioritization might be the difference between success and failure.

Keep Dialog Open

Identifying a budget is often viewed as synonymous with identifying the estimate, but viewing things in this way often presents a chicken and egg proposition. To be clear, where a project’s release date is the sole factor in determining its estimate, both the technical and business sides of this arrangement should run for cover in the other direction. However, caution should also be taken where development efforts drive the entire budget. This is particularly difficult when a business is insistent upon having everything before understanding the benefits of iterative development. As technical implications become clear, keeping dialog open regarding what aspects present the most complexity will always contribute to the success of a project. There are often many ways to reduce the technical complexity and thereby the overall budget with minor changes in approach or clarifications with the intention of a requirement.

Budget aside, an open dialog between technical and business operations provides an unmistakable benefit of up front architectural considerations that lay a groundwork for future extension.

Understanding the Risks of Shortcuts

If estimates seem too good to be true, they probably are. It is important for business managers to understand that while there are many shortcuts in software that can lead to the appearance of functional software in the short term, there are always long term implications to these shortcuts. Some shortcuts are worth the risk, others need to be avoided at all cost, and knowing the difference is a challenge that only the right mix of technical and domain understanding can approach. Making the wrong choice can lead to a constant stream of quality or scalability issues that plague a project for the rest of its lifespan.

Software projects pay for quality and scalability considerations by including them in the initial estimation, or over the longer term with unexpected investments and frustration. When built in from the beginning there is a significant long term payoff that can extend the life of a software product, all the while improving reliability and extensibility for future features. Alternatively and most often unexpectedly, the costs of quality software are paid for over the long term with many bug fix investments, large blocks of time set aside for nothing but refactoring. Making these trade-offs clear, and understanding how business managers feel about these trade-offs can be very helpful in the prioritization effort as well as defining the expectations of successful delivery.

As mentioned at the outset, accurate estimation is an art, not a science. These topics surrounding the business environment are all things that help provide context for an estimate. In the next installment, Clarify the Scope of Estimation, we’ll continue this theme of providing context for estimation. This context becomes the basis on which an estimate can be formed, will reduce uncertainty, and improve the ability to anticipate the level of effort in any project.


Viewing all articles
Browse latest Browse all 8

Latest Images

Trending Articles





Latest Images