Skip to content

HowToRequirements

Mehmet Doğan edited this page Mar 12, 2016 · 2 revisions

What's Requirement ?

Agile requirements are a product owner's best friend. Product owners who don't use agile requirements get caught up with specifying out every detail to deliver the right software. Agile requirements, on the other hand, depend on a shared understanding of the customer that is shared between the product owner, designer, and the development team. That shared understanding and empathy for the target customer unlocks hidden bandwidth for product owners. They can focus on higher-level requirements and leave implementation details to the development team, who is fully equipped to do so – again, because of that shared understanding. [2] (https://www.atlassian.com/agile/requirements) Simply,

  • It is a singular documented physical and functional need
  • It is a statement that identifies a necessary attribute, capability, characteristic, or quality [3]

Kinds of Requirements [3]

  • Architectural requirements
  • Business requirements
  • User (stakeholder) requirements
  • Functional (solution) requirements
  • Informational requirements
  • Behavioural Requirements
  • Environmental Requirements
  • Quality-of-service (non-functional) requirements
  • Implementation (transition) requirements
  • Security Requirements
  • Regulatory Requirements
  • Operational Requirements

##How to write requirements ?4

Good requirements with 4 basic principle

  • Good requirements are clear and understandable.It expresses a single thought and does not imply anything or leave major room for assumptions.It is concise and simple. Use short, simple sentences with consistent terminology for requirements. State your requirements positively whenever possible.Make your requirements grammatically correct. Good grammar is essential for understanding.

  • Good requirements are verifiable. A requirement must state something that can be verified by inspection, analysis, test, or demonstration.As you review a requirement, think about how you will prove that the product meets it.

  • Good requirements meet specific needs. In simple terms, a requirement is a basically a statement of something someone needs.The something is a product or solution that performs a service or function. Even if it is verifiable, attainable and well stated, a requirement that is not necessary is not a good requirement.

  • Good requirements are attainable. Make sure that the requirement is something that can be achieved. It must be within the budget and schedule and be technically feasible.If there are questions on technical feasibility, be sure to reach out to the right technical resources to get those questions answered as you’re trying to nail down good requirements.

Bad Requirements Examples [3]

  • Software architecture should be flexible and modular
  • What being flexible means. It's not clear
  • User will login and search for products
  • How would it happen ? It's not
  • User will add a product to the basket
  • It's not a speicific need. How you perform it ?
  • GUI will respond under 10 milliseconds
  • Not feasible

Good Requirements Examples [3]

  • A username must be provided that is between 4 and 20 characters in length 1

  • The username must be unique

  • The username is case sensitive

  • The username can contain only numbers and letters

  • An email must be provided 1

  • The email must be entered in the valid format

  • The email must be confirmed via a double entry

  • The email must not already exist in the system

####The practice we have experienced in the Problem Session We can use this as a template

  1. Functional Requirements
    1.1. Sign In - Sign Up
    1.1.1. The system shall let guest user register
    1.1.2. The system shall let registered users sign in providing his\her correct username and password
    1.1.3. The system shall let user have an option to request a NEW password in case s\he forgets hıs her password
    1.2. User Requirements
    1.2.1. Admins
    1.2.2. Members
    1.2.3. Guests

All references used in this page

  1. http://www.pjsrivastava.com/articles/a-short-guide-to-writing-software-requirements
  2. https://www.atlassian.com/agile/requirements
  3. Lecture slides
  4. https://www.smartsheet.com/blog/gathering-requirements

Team Members

  • [Mehmet Doğan](Mehmet Doğan)
  • [Işıl Kurt](Işıl Kurt)
  • [Ömer Faruk Tayfur] (Ömer Faruk Tayfur)
  • [Abdulmenaf Kasap] (Abdulmenaf Kasap)
  • [Seha Yiğit Güryol] (Seha Yiğit)
  • [Haluk Aydın] (Haluk Aydın)
  • [Serpil Kuzu] (Serpil Kuzu)
  • [Uğur Taş] (Uğur Taş)
  • [Mert Even] (Mert Even)

##Milestone Reports

  • [First Presentation Milestone Report] (First-Presentation-Milestone-Report)
  • [Second Presentation Milestone Report] (Second-Presentation-Milestone-Report)
  • [Final Presentation Milestone Report] (Final-Presentation-Milestone-Report)

##Project

  • [Project Description] (Project Description)
  • [Domain Analysis] (Domain Analysis)
  • [Themes/Features] (Themes)
  • [Personas] (Personas)
  • [User Stories] (User Stories)
  • [Communication Plan] (Communication Plan)
  • [Requirements] (Requirements)
  • [Responsibility Assignment Matrix] (Responsibility Assignment Matrix)
  • [Use Cases and Use Case Diagram] (Use Cases)
  • [Class Diagram] (Class Diagram)
  • [Sequence Diagram] (Sequence Diagram)
  • [Activity Diagram] (Activity Diagram)
  • [Mockups] (Mockups)
  • [Test Plan] (TestPlan)

##Meetings (451)

  • [Week 1 Meeting - 09/26/16 Monday Ağaç Ev] (Meeting1 451)
  • [Customer Meeting 1 - 09/29/16 Thursday BM-A2] (Customer Meeting 1 451)
  • [Week 2 Meeting - 10/04/16 Tuesday BM-Lounge] (Meeting 2 451)
  • [Week 4 Meeting - 10/23/16 Sunday BM-Lounge] (Meeting 4 451)
  • [Week 5 Meeting - 11/9/16 Wednesday BM-Lounge] (Meeting 5 451)
  • [Customer Meeting with Suzan Uskudarli- 11/18/16 Friday BM-Lounge] (Customer-Meeting-with-Suzan-Uskudarli)

##Tutorials

  • [Git Versioning System] (Git Versioning System)
  • [Issue System] (https://guides.github.com/features/issues)
  • [How to Write User Stories] (UserStoryWriting)
  • [Requirements: What & How ?] (HowToRequirements)
  • [Tutorial for Programming Environment] (Setup Tutorial)
Clone this wiki locally