Sydney based custom software and Microsoft experts

Custom Software Development



Contents

Infosphere is a software consultant based in Sydney, NSW Australia.

Our main service is custom-made computer software programming.

We specialise in the Microsoft software tools and we apply our expertise to all sorts of organisations.

 

Infosphere has been a Microsoft Certified Partner since 1998
Infosphere offers a complete money-back guarantee for a trial project


Build Date 14/09/2009

Avoiding Software Disasters – Remedy

Pinpointing the Problem to be Solved

So far we have shown the consequences of not defining requirements properly and explained why requirements are difficult to define. Now it's time to look for some answers. Incidentally, the word 'problem' is used synonymously with 'opportunity' in this section.

Typically, the drivers for projects stem from some general malaise or prospect. Often this is quite vague. Symptoms of problems can be experienced in the following ways:

  • Falling sales
  • Escalating costs
  • Low productivity
  • Low profitability
  • Low customer/staff/board satisfaction
  • Falling share price
Pinpointing problems and opportunities

Similarly, opportunities are things like:

  • Increase market share
  • Increase profit
  • Maintain competitiveness
  • Improve morale

The first task in relation to a symptom is to measure its severity. This is a matter of assessing various costs; financial costs, opportunity costs, hidden costs (after they have been found) and human costs. If it's significant, proceed.

The second task is to root out the underlying problem. Falling sales isn't the problem, it's the symptom. The 'real' problem might be product defect, market decline, inadequate marketing, or a mish-mash of all these.

Once you've got to the heart of the problem, the next step is to decide whether it's worth fixing. At this stage all that is required is a general agreement that the matter is worth following up. What will happen if you don't do anything? What is the likely impact if you do?

Armed with a correctly identified problem that is worthwhile, you can move to preparing a business case.

The Business Case

Identifying and Assessing the Alternatives

The challenge now is to weigh up the alternative solutions and get business buy-in. You need to identify the constraints and objectives of all serious alternatives. Constraints are the things that stand between you and implementation of that particular solution, including budget, technology, environment, people and skills.

Objectives are the things that you expect the solution to give you. What are the basic criteria for considering a project? Can we measure our success? Are we trying to improve gain or reduce pain?

Eliminate projects with too many constraints or too little impact.

Prepare a broad outline of the obvious risks and scope of the remaining alternatives, including preliminary costings and timeframes. The projects that survive this step are the ones that you want to get up.

Recommending a Solution

Recommending a SolutionIn terms of getting business buy-in this is the most important step. It is your chance to present your vision of what the world will be like after successfully implementing the selected project(s).

Your recommendation should be in the form of a Vision and Scope document, and include:

  • Concise statement of business requirements
  • Project description and goal
  • High level scope (major features)
  • High level cost/benefit analysis
  • High level risks
  • High level assumptions
  • Exclusions

When you get business buy-in, then the real fun starts…

Defining and Communicating the System Requirement

So you've selected a juicy project and you've got management support; now it's time to do the most important part of the entire software life cycle – define and communicate the system requirement.

This is a big task and it's not something you can do by yourself. In most projects, several people are involved in gathering requirements. A matrix of different approaches to Requirements Gathering is presented on the third page in this menu. We remind you that our focus is on fixed price jobs of up to around 3 years of effort.

The analyst's responsibility is to:

  • Speak the customer's language
  • Learn about the customer's business and objectives
  • Prepare a Software Requirement Specification which accurately maps the customer's requirements
  • Accept feedback from customers on the Software Requirement Specification

The customer's responsibility is to:

  • Educate analysts about the business
  • Allocate resources to provide and review requirements
  • Set priorities
  • Make business decisions

Specifying the Requirement

Your requirements gathering will yield unwieldy amounts of data. Without structure and context, this data may seem overwhelming, and have little chance of becoming knowledge.

A Software Requirement Specification will allow you to structure the information you've gathered. It's a practical document which should be designed as a blue-print for the project. We present a template for this on the fourth page in this menu.

Verifying the Requirement

The last step is to verify your findings. It's important to submit your documentation to all your stakeholders in order to get their feedback. The requirement definition process isn't finished until your customer says it is.

Now you're in a commanding position to re-assess the business case and then call for proposals or issue a tender if proceeding.

Conclusion

Remember, the consequences of not defining requirements properly can be crippling. Follow the principles we have laid out and avoid becoming a statistic.



Top of PageTop of Page