«    »

The Importance of Defining Success

Can you define what makes a successful software development project or product? Do you know the criteria by which your current assignment will be judged a success? Does everyone associated with the project or product share the same definition? Defining what it means to be successful may seem obvious or trivial, but I expect that many people will answer “No” to at least one of the above questions.

Defining what makes for a successful project / product is critically important at every level: the individual, the team, the organization, and even the entire I.T. industry. (In the remainder of this article I will refer solely to projects with the understanding that the material applies as well to ongoing work on software products.)

Individual

Individual performance is often evaluated at least in part by the success or failure of the projects you work on, more so if you are in a leadership or management role. This can impact your compensation (raises, bonuses), future assignments and promotions, and even your job (if the project is a bad failure).

Being clear about the project’s definition of success should help guide you in the day-to-day decisions you make and actions you take on the project. This provides two benefits: you are more likely to be personally judged a success (even if the project fails), and the project is more likely to be successful.

Team

The choices to make in assembling a team – how many people will be on it, and what skill levels & abilities will they have – are significantly influenced by the project’s definition of success. For example, if minimal budget expenditure is a critical success factor then a small team should be used.

Once the team is assembled having a clear definition of success shared by the team members helps provide coordination of activity rather than disjointed efforts.

The practices & methods used by the team should be selected and tailored to maximize the likelihood and magnitude of success.

Organization

Within an organization that produces software decisions must be made regarding what projects to proceed or continue with and what level of funding and people to allocate to these projects. In a rational organization these decisions should be based on a cost-benefit analysis which should, in turn, be linked to the project’s definition of success. For example, if a project is conceived of to produce software targeted to hit the market in time for the Christmas selling season then hitting the delivery date becomes a significant factor of project success.

I.T. Industry

Our favorite pastime within the I.T. industry may well be promoting or debating the merits of various programming languages, environments, tools, practices, and methods. But what is the basis for making these evaluations? Presumably this is based on the likelihood of the tool, practice, or method making the project more successful (or less likely to fail). This evaluation should depend, therefore, on the definition of success being used, but this is seldom defined explicitly as part of the promotion / evaluation being done. (I am as guilty of this as everyone else.)

One notable exception is the book Rapid Development by Steve McConnell. Part III of the book lists 27 ‘best’ practices. For each practice a section on efficacy is provided that evaluates the practice based on three separate factors: potential reduction from nominal schedule, improvement in progress visibility, and effect on schedule risk. (Other project success factors such as quality or cost were omitted because the book focuses on minimizing schedule – thus the name Rapid Development.) McConnell explicitly advocates “selecting rapid-development practices that meet the needs of your specific project” (page 396).

Some might argue that virtually all projects share the same definition of success (usually along the lines of delivering required functionality with sufficient quality on time and on budget), and this then allows for meaningful discussion of 'best' practices independent of the definition of project success. I disagree with this position, but will save further discussion for a subsequent article: Problems with Typical Definitions of Project Success

If you find this article helpful, please make a donation.

«    »