Example Requirements from Previous Semesters

Contents:

1 Example 1

The requirement as written:

  1. Ability to select number of courses they want to teach.

Is there a maximum number? Is there a minimum number? Should this be based upon the number taught in the last semester? If the author does not specify, the developer will make assumptions. I would just provide a text box, or a drop down list from 1 to 100.

  1. Do not use “they”. This is to be a stand-alone element – so who is they?
  2. “select” implies the implementation strategy to be used.

This would have made be happy:

  1. Provide the capability for the user to modify the number of courses taught in the same term of the previous year.

2 Example 2

The requirement as written:

Must be able to sort desired courses, in ascending or descending order, by modified faculty UIN.

  1. “desired” – huh?? This implies that some action has just occurred…such as form…or a process.
  2. COMMAs are the same as “ands”. They do not belong!
  3. Can one even modify a faculty UIN? I want mine to remain the same!

This would have made me happy:

Provide the capability to sort the display in the following manner:

  • By Course numbers in ascending order
  • By Course numbers in descending order
  • By Faculty UIN in ascending order

Here are my thoughts as a developer:

  1. Wouldn’t this be a filter versus a sort?
  2. Why faculty UIN?? I would have to memorize them or have a look-up table. Wouldn’t last name be more informative?
  3. BUT – I am provided the display – and I will allow the user to request the listed sorts.

3 Example 3

The requirement as written:

Ability to activate this population.

Seriously?! Do not use “this”. Concisely identify the population.

  1. “activate” – Do I ask the room full of people to jump up and down? Do I make the fire alarm go off?
  2. I do not know enough to even begin to make this better.

4 Example 4 (An Epic Requirement)

The requirement as written (note: This one is horrible. I was really unhappy!):

3.1.2.1.6 Predicted Interest View This process will produce a report of predicted interest in course for the semester

  1. Shall base its report off data collected from the master student wish-list as well as data from the roll-forward. (Requirement 3.1.2.1).
  2. Shall examine each course being offered and record the number of students who wish to take that particular course.
  3. Shall display this information on screen for the scheduler to view.
  4. Uses requirement 3.1.3.1.2 to display the report on screen.

The requirement taken apart:

3.1.2.1.6 Predicted Interest View

This process will produce a report of predicted interest in course for the semester.

  1. Not a sentence
  2. Grammatically incorrect
  3. If a prediction is being made – what is the formula??
  4. No introductory clause – e.g. the following functional requirements must be met:

Shall base its report off data collected from the master student wish-list as well as data from the roll-forward. (Requirement 3.1.2.1).

  1. “base its report” – what does that mean?!
  2. What does it do with the data? What is to be extracted?
  3. Where is the data? In a database table somewhere?
  4. “as well as” – IMHO that is an “and”.
  5. Which exact data is to be in the report?

Shall examine each course being offered and record the number of students who wish to take that particular course.

  1. “examine” – is not a CS related term. How do I know what courses are being offered?
  2. “record” – does that mean save, or print?
  1. Shall display this information on screen for the scheduler to view.

How? “Screen”–huh? I do not care who is going to see it!! I just need to know what I am supposed to code!!

Uses requirement 3.1.3.1.2 to display the report on screen.

I cannot use text to display something!!

No paragraph describing the purpose of this web-page has been provided. The first sentence – “This process” means nothing. If it is a “view”, is it a process? If it is a process – is it an algorithm? And, should there be a logic flow? Anytime the word “this” is used – the subject must have been previous defined.

3.1.2.1.6 should be able to stand alone as it does here –with no related documentation. The reader has no point of reference. How is this “process” triggered?

This would have made me happy:

3.1.2.1.6 Predicted Interest View

This is a webpage form that produces a result. The enrollment data from previous semesters is utilized to predict the number of students that will register for a particular course in the next semester. A scheduler will utilize the function to assist in setting the capacity for courses. The user may indicate how many past semesters to use in the prediction. The results will be returned to the same webpage. The following functional requirements must be met:

  1. Provide the capability to allow the user to select a course from the set of active courses.
  2. Provide the capability to allow the user to select how many past semesters will be used in the computation.
  3. Provide the capability to request result generation.
  4. Query the database to retrieve the indicated enrollment data (field final_enroll)
  5. Average the data.
  6. Display the average on the webpage.

4.1 Notes Regarding the Corrected Requirements

  1. It is okay to assume that the developer understands what an active course refers to, and that the choices to display come from the database. It is likely the developer will use either radio buttons or a drop down option. But, we do not need to tell them.
  2. It is okay to assume that the developer will use the database to determine the previous semesters in which the course was offered.
  3. This is likely to be a submit button.
  4. Basic math formula