Whether using the classical SDLC or an object-oriented approach, the analyst first defines the problems and objectives of the system. These form the foundation of determining what needs to be accomplished by the system. Methods like Six Sigma (refer to Chapter 16 for details) start with a problem definition.
A problem definition usually contains some sort of problem statement, summarized in a paragraph or two. This is followed by a series of issues, or major, independent pieces of the problem. The issues are followed by a series of objectives, or goals that match the issues point by point. Issues are the current situation; objectives are the desired situation. The objectives may be very specific or worded using a general statement.
Here are some examples of business questions relating to business objectives:
- What are the purposes of the business?
- Is the business profit or nonprofit?
- Does the company plan to grow or expand?
- What is the business’s attitude (culture) about technology?
- What is the business’s budget for IT?
- Does the business’s staff have the expertise?
Needless to say, the systems analyst needs to understand how a business works.
The last part of the problem definition contains requirements, the things that must be accomplished, along with the possible solutions and the constraints that limit the development of the system. The requirements section may include security, usability, government requirements, and so on. Constraints often include the word not, indicating a limitation, and may contain budget restrictions or time limitations.
The problem definition is produced after completing interviews, observations, and document analysis with the users. The result of gathering this information is a wealth of facts and important opinions in need of summary. The first step in producing the problem definition is to find a number of points that may be included in one issue. Major points can be identified in the interview in
a number of ways:
- Users may identify an issue, topic, or theme that is repeated several times, sometimes by different people in several interviews.
- Users may communicate the same metaphors, such as saying the business is a journey, war, game, organism, machine, and so on.
- Users may speak at length on a topic.
- Users may tell you outright that “This is a major problem.”
- Users may communicate importance by body language or may speak emphatically on an issue.
- The problem may be the first thing mentioned by the user.
Once the issues have been created, the objectives must be stated. At times the analyst may have to do a follow-up interview to obtain more precise information about the objectives. After the objectives are stated, the relative importance of the issues or objectives must be determined. If there are not enough funds to develop the complete system, the most critical objectives must be completed first. The identification of the most critical objectives is best done by users (with the support of analysts), because users are domain experts in their business area and in how they work best with technologies in the organization.
One technique is to ask the users to assign a weight for each issue or objective of the first draft of the problem definition. This is a subjective judgment by the user, but, if a number of users all assign weights and they are averaged together, the result might reflect the bigger picture. After the weights have been determined, the problem definition issues and objectives are resequenced in order of decreasing importance, the most important issues listed first. There is software such as Expert Choice (www.expertchoice.com) and other decision support software that can assist with the weighting and prioritizing of objectives.
Besides looking through data and interviewing people, try to witness the problem firsthand. When looking at the same situation, an employee may view a problem very differently than a systems analyst does. This also gives analysts the opportunity to confirm their findings. In this way they use multiple methods, thereby strengthening the case for taking appropriate action.
A PROBLEM DEFINITION EXAMPLE: CATHERINE’S CATERING.
Catherine’s Catering is a small business that caters meals, receptions, and banquets for business and social occasions such as luncheons and weddings. It was inspired by Catherine’s love of cooking and her talent for preparing fine meals. At first it was a small company with a handful of employees working on small projects. Catherine met with customers to determine the number of people, the type of meals, and other information necessary to cater an event. As their reputation for creating superb food and the quality of the service began to blossom, the number of events started to increase. The building of a new convention center, along with a prospering business community in the city, increased the number of catering events.
Catherine was able to manage the business using spreadsheets and word processing but found difficulty in keeping up with endless phone calls about what types of meals were available, changes to the number of guests attending the event, and the availability of specialty dietary items, such as vegan, vegetarian, low-fat, low-carbohydrate, and so on. Catherine’s decisions to hire a number of part-time employees to cook and cater the events meant that the complexity of scheduling personnel was becoming overwhelming to the new human resources manager. Catherine decided to hire an IT and business consulting company to help her address the problems her catering enterprise was facing.
After performing interviews and observing a number of key staff, the consultants found the following concerns:
- The master chef ordered supplies (produce, meat, and so on) from suppliers for each event. The suppliers would provide discounts if greater quantities were ordered at a single time for all events occurring in a given time frame.
- Customers often called to change the number of guests for an event, with some changes made only one or two days before the event was scheduled.
- It was too time-consuming for Catherine and her staff to handle each request for catering, with about 60 percent of the calls resulting in a contract.
- Conflicts in employee schedules were occurring and some events were understaffed. Complaints about the timeliness of service were becoming more frequent.
- Catherine does not have any summary information about the number of events and types of meals. It would be helpful to have trend information that would help guide her customers in their choice of meals.
- Events are often held at hotels or other meeting halls, which provide table settings for sit down meals. There are problems with having sufficient waitstaff and changes with the number of guests.
The problem definition is shown in the illustration below. Notice the weights on the right, representing an average of the weights assigned by each employee. Objectives match the issues. Each objective is used to create user requirements.
Catherine’s Catering is experiencing problems with handling the number of routine calls with customers, as well as coordinating with external partners such as suppliers and meeting facilities. The growth in the number of part-time staff is leading to scheduling conflicts and understaffed events.
User requirements are then used to create either use cases and a use case diagram or data flow diagram processes. Each objective may create one or more user requirements or several objectives may create one or perhaps no use cases (use cases are not often created for simple reports), or each requirement may create one data flow diagram process. The user requirements for Catherine’s Catering are to:
- Create a dynamic Web site to allow current and potential clients to view and obtain pricing information for a variety of different products.
- Allow current and potential clients to submit a request with their catering choices, with the request routed to an account manager.
- Add clients to the client database, assigning them a userID and a password for access to their projects.
- Create a Web site for clients to view and update the number of guests for an event and restrict changing the number of guests when the event day is less than five days in the future.
- Obtain or create software to communicate directly with event facility personnel.
- Create or purchase a human resources system for scheduling part-time employees, allowing management to add employees and schedule them using a number of constraints.
- Provide queries or reports with summary information.
Each requirement may be used to create a preliminary test plan. Since scant details are available at this time, the test plan will be revised as the project progresses.
A simple test plan for Catherine’s Catering is:
- Design test data that would allow clients to view each different type of product.
- Test to ensure that a catering request has been entered with valid data, as well as each possible condition of invalid data (data will be defined later). Ensure that the request is routed to the appropriate account manager.
- Test that all data fields pass all validation criteria for each field. Test good data to ensure that clients are added to the client database, and that a userID and a password are correctly assigned.
- Create a test plan that will test that clients are able to view event information. Test that updates may not be made within five days of the event. Design test data that will check to ensure correct updating of the number of guests for an event.
- Test that the software works correctly for communicating directly with event facility personnel.
- Test the human resources system for scheduling part-time employees, checking that employees have been correctly added and that all invalid values for each field are detected and reported. Check scheduling software for valid updates and each invalid entry.
- Check that all queries or reports work correctly and contain the correct summary information.
- Project Initiation
- Defining the Problem in Project Initiation
- Selection of Projects
- Feasibility Study – Determining Whether the Project is Feasible
- Technical Feasibility – Ascertaining Hardware and Software Needs
- Acquisition of Computer Equipment – Technical Feasibility
- Software Evaluation in Technical Feasibility
- Economic Feasibility – Identifying & Forecasting Costs & Benefits
- Comparing Costs and Benefits – Economic Feasibilty
- Activity Planning and Control – Project Management
- Using PERT Diagrams in Project Planning
- Managing the Project
- Managing Analysis and Design Activities
- Creating the Project Charter & Avoiding Project Failures
- Organizing the Systems Proposal
- Using Figures for Effective Communication in System Proposal