Visioning: The First Step in Software Development

From IHRIS Wiki
Revision as of 13:28, 15 April 2009 by Sturlington (talk | contribs)

No project should be undertaken without a good vision. Without a vision, how do you know what you’re trying to achieve or when you arrive at your goal? How do you know whether it’s even worthwhile to take on the project in the first place? It’s important before you start a project to gather as many stakeholders in the room as possible and collaborate on a vision. Even if the outcome is a decision not to go forward, this essential first step is never a waste of time.

The following is a list of goals to accomplish during the visioning meeting(s). While these goals were developed for visioning software and system development projects, they probably can apply to many other types of projects as well.

  • Identify a purpose, a shared understanding of the problem that the system should solve; ask why are we creating this system?
  • Identify givens: constraints, boundaries and standards within which we have to work.
  • Identify high-level goals; ask what will this system be like when it successfully appears in the world?
  • Identify stakeholders; ask who is affected by this system and what are their specific goals?
  • Create a vision statement that captures the purpose, givens, goals and stakeholders.
  • Create supporting documents as warranted (cost-benefit analysis, risk assessment, success criteria, business model, etc.). This may be done outside of the visioning meeting.


Once the vision has been defined, it is time to ask and answer some key questions (perhaps in a follow-up meeting):

  • Based on time constraints and high-level goals, should we develop in-house or investigate another solution (such as off-the-shelf software)?
  • Do we have the resources to support and maintain this system (IT, data operations, other)? Will we need to hire or provide training?
  • Do we have the infrastructure to support this system? If not, what will need to be purchased?
  • Who is the development team? What resources are missing?
  • Most importantly of all, based on the costs and resource needs identified, do we want to undertake this project? Does the vision we have defined justify the investment we will need to make to achieve it?


The final steps are:

  • Gain stakeholder concurrence and approval or discontinuation of project.
  • Explain the development methodology that will be used to complete the project (such as an iterative development process) and agree on next steps.