Académique Documents
Professionnel Documents
Culture Documents
Susan: We have had a few requests from customers who want to be able to import their contact information from Outlook or Outlook Express into our site. Jack: So you want to integrate an import utility for contact information from external apps into our web site? Susan: Exactly, and I want your team on it.
Susan: Jack, what is going on with that import application I asked you for two weeks ago? Jack: Weve examined the data formats, and have designed all of the user interfaces. We are about to start coding later today. Susan: You havent started coding yet!? Jack: We needed to plan for this application. If it is to import all sorts of contact information formats, and all of our 1.5 million users are going to see it, it has to be just right. Susan: I only asked for Outlook and Outlook Express. Just one of our partner companies has asked for it, with 40 users. Im pulling your team from the project and giving it to Rita. She said she could whip this up by Wednesday.
The team made some significant assumptions, which lead to greatly increased schedules
There were only 2 specific applications they needed to import from A fully customized import process is not justified
The problem is, those improvements may not be worth the extra time to the customer
Worse, the customer may no longer be interested
You only need to document enough so that the team can understand what is required
Gold-plated requirements use up valuable project time Long requirements documents take longer for people to read Customers may not appreciate the extra time they have to spend helping you create the document
Requirements
Requirements are what the customer wants
What functionality should the software provide? How should it work? What are the constraints? What are the details?
Requirements
Requirements Goals
The overall criteria that the customer wants to meet This normally comes from some business need
Objectives
A sub-goal
Deliverables
A real product to be developed by the team These should implement the goals and objectives
Success criteria
Descriptions of what the deliverables must be true for the project to be considered a success
Scope
General statements about the projects boundaries What should be part of the project? What should not be part of the project?
Requirements Documents
Historically, a requirements document was a separate entity Modern requirements are put into a document which includes other relevant information
Our textbook describes a document called a project overview statement
This is a basic requirements document, used for obtaining approval for a project This document also includes risks and some other information
Project Goals
Goals describe what your project is going to accomplish or produce
This will come directly from the customer Someone within the organization may need to clarify or disambiguate these goals
This is normally the analyst
e.g. The website will provide facilities to customers to buy and sell items at auction
Some user studies and surveys indicate that customers are not satisfied with the pathfinding in our game engine. The board has agreed to consider a new project to create an improved pathfinder. I want you managing this project. The overview is below: PathFinder 2.0 will be an improved, human-like, pathfinding module for our game engine. Keep me posted, Sherry
Objectives
Objectives are statements which describe individual conditions to be met
e.g. The website will accept multiple forms of payment, including credit card and cheque
e.g. The website will provide a feedback system where sellers and buyers can make comments and rank each other after a transaction
Realistic: Obviously impossible achievements are not appropriate goals or objectives Time Bound: You should specify a timeframe, as a duration or established end date for goals & objectives
Deliverables
Deliverables are the products of the project
This is not limited to software packages e.g. The deliverables for the Bug Tracker website will be:
Binary packages (.war) Source packages (.zip, .tar.gz) CD media & packaging Documentation (HTML) Demo video (Flash) Training videos (Flash) Administration panel plug-in Database adapters for Oracle, PostgreSQL, MySQL, DB2
This document prevents you from having to justify rejecting change requests made later
Stakeholders
Here are the typical people involved with a project Project manager: Plans and oversees the project Program manager: Oversees many or all projects within the organization Customer: Provides initial requirements, periodic feedback, and approval of project upon completion Architect: Creates overall software structure, plans for implementing non-functional requirements (e.g. security), oversees development Analyst: Primary requirements gatherer Senior programmer: Participates in low-level design, uses design patterns and best practices, implements classes, unit tests Junior programmer: Implements methods and classes, maintains existing code, follows coding standards, unit tests Quality assurance team: Plans for acceptance and regression testing of all deliverables, performs testing, submits bug reports
Responsible for approving all abovementioned documents Responsible for approving all abovementioned documents Responsible for defining requirements, which are input to scope document, and approving all abovementioned documents
Success Criteria
Success criteria are conditions which must be met in order for the project to be successful
Not all projects explicitly mention success criteria
e.g. The page load time must be less than 2 seconds for all of the websites pages e.g. Bug report files must be compatible with ABC Bug Traks BRF format. Report files can be exported to, and imported from, BRF files.
Assumptions
Every project involves a number of assumptions e.g. There will be an architect available by the start date e.g. The team will have adequate and functional computers during development These assumptions are generally safe to assume, provided you have done some preliminary investigation e.g. The architect is finishing up a project now, but she will be available next Tuesday e.g. All of the teams computers are less than 6 months old, according to the IT department Assumptions are often closely related to risks, which will be discussed later i.e. What happens if an assumption proves false?
Assumptions
You must document these assumptions Typical assumptions include: Key project members availability, skills, performance Vendor/contractor delivery times, performance Customer involvement and approvals If you document that a customer must be available for weekly meetings, and the customer signs off on it, then: The customer will have made a commitment If the customer claims to be unavailable, you can remind him/her that he/she signed off on that commitment If the customer does not make herself/himself available, you are not (fully) responsible for missing deadlines related to customer involvement
Constraints
Constraints describe limitations of the project The most common three constraints are:
Time: Duration or closing dates Resources: Personnel and money Quality: Reliability, usability, etc.
e.g. A pharmaceutical project would put quality first, since insufficient quality can hurt or even kill people e.g. A competitive software project would typically put time first, since beating competitors to market is such an advantage
In contrast, open source projects typically put quality first
Constraints
Here are some other common constraints:
Executive and project team must be committed to the projects goals The project must be free from interruptions, company reorganizations, and financial setbacks Expectations must be realistic for the timeframe Expectations must be realistic for the skills required Skilled participants must be available for the project
This includes familiarity with new technologies
Scope
The scope of a project defines its boundaries This is important to define which changes are reasonable, and which changes are not When a change request comes in that is within project scope, the project manager can decide whether or not it should be implemented When a change request comes in that is not within project scope, the project manager will normally reject the request e.g. This version of our investment tracking website is limited to mutual fund investments
A request for incorporating pension tracking would normally be rejected, with the scope document providing justification A request for incorporating a monthly earnings report for mutual funds could be accepted, if the schedule permits
Listening skills
Listening skills are critical for those gathering requirements Passive listening
Let the customer tell you what they want You are not really listening effectively when you: Have a tough time understanding what people are trying to say Start thinking about how you are going to respond, before the customer has finished talking Have a tough time not hijacking the conversation yourself
Active listening
Active listening involves following up on what you hear Some people repeat (in their own words) what they believe the customer has said A requirements gatherer may follow up a comment with a question for more detail This may involve a specific suggestion
Requirements Gathering
Typically, customers will start with high-level requirements
It is often necessary to:
Ask the customer for more detail Come up with specific ideas, and ask the customer for feedback
Requirements Gathering
Customers will often ask for too many features
These features might not be possible within the desired schedule A good project manager will first separate wants from needs Ask customers what the minimal conditions are for success Ask customers why a feature is a need, not a want Some of the wants might have to be delayed until a later version to meet the schedule Remember, you can say no if you explain that including a feature will result in later schedules
It is necessary to get as much detail as possible, so that an accurate estimate of work required is possible
If you dont ask for the detail, you will have to get it somehow If you wait until later, your estimates may have been inaccurate