Agile analysis and design

novembre 25, 2015

Agile analysis and design

Agile modeling is describe in the Crystal development process

The Crystal development process is cyclical/iterative, its primary components are chartering, delivery cycles, and project wrap-up.

 

Agile chartering

Chartering involves creating a project charter, which can last from a few days to a few weeks.

Chartering consists of four activities:

1) Building the core project team,

2) Pperforming an Exploratory 360° assessment,

3) Fine tuning the methodology,

4) Building the initial project plan.

[Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.]
In the XP framework, the best role for a customer in XP is to write well-defined user stories. [User Stories Applied: For Agile Software Development. Mike Cohn.]

1) Building the core project team
2) Performing an Exploratory 360° assessment

The executive sponsor conducts the Exploratory 360° assessment to assess the business case of the project. Several dimensions are explored: business value, requirements, domain area, and technology impacts. Based on the results the team adjusts the Crystal methodology to the need or, in some cases, the project may be cancelled if serious issues are discovered. [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.]

3) Fine tuning the methodology
4) Building the initial project plan

 

Examples of questions for the PMI-ACP exam :

– Question 1 :
In which agile project management methodology does chartering play a significant role?
A. TDD
B. Crystal
C. XP
D. FDD
– Answer 1 :

B – The Crystal development process is cyclical/iterative. Its primary components are chartering, delivery cycles, and project wrap-up. Chartering involves creating a project charter, which can last from a few days to a few weeks. Chartering consists of four activities: 1) Building the core project team, 2) performing an Exploratory 360° assessment, 3) fine tuning the methodology, and 4) building the initial project plan. [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.] [Agile analysis and design]
– Question 2 :
What is the purpose of the Exploratory 360 assessment?
A. To define the core project team
B. To assess project soundness in terms of business value and feasibility
C. To conduct an introspective reflection on the team makeup
D. To define a project mission and vision
– Answer 2 :

B – The executive sponsor conducts the Exploratory 360° assessment to assess the business case of the project. Several dimensions are explored: business value, requirements, domain area, and technology impacts. Based on the results the team adjusts the Crystal methodology to the need or, in some cases, the project may be cancelled if serious issues are discovered. [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.] [Agile analysis and design]

 

Personas

A persona is a notional user of the system under development. Being much more detailed than actors in use case modeling where generic user names are assigned (e.g., end user), personas try to elaborate on users with detailed descriptions to provide context to the developers. Some personas have such notional details as name, address, age, income, likes and dislikes, and other specific details. [User Stories Applied: For Agile Software Development. Mike Cohn.]

All details are important details

– Extrem character

They are some exceptional personas. We should identify them since it leads to identification of some of the important user stories which we may miss if we do not identify them.

 

Examples of questions for the PMI-ACP exam :

– Question 1 :

In agile modeling, what is a persona?

A. A made up personality used for facilitating the daily stand-up meeting

B. An assigned personality used in reflection workshops.

C. A notional user of the system under development.

D. A method to describe the customer’s personality for the day so the team may adapt to his or her feedback in the most effective way
– Answer 1 :

C – A persona is a notional user of the system under development. Being much more detailed than actors in use case modeling where generic user names are assigned (e.g., end user), personas try to elaborate on users with detailed descriptions to provide context to the developers. Some personas have such notional details as name, address, age, income, likes and dislikes, and other specific details. [User Stories Applied: For Agile Software Development. Mike Cohn.] [Agile analysis and design]

 

Product roadmap

A high level overview of the product requirements.

The product roadmap – owned by the product owner – serves as a high level overview of the product requirements. It is used as a tool for prioritizing features, organizing features into categories, and assigning rough time frames.

Creating a product roadmap has four basic steps :

1) Identify requirements (these will become part of the product backlog),

2) Organize requirements into categories or themes,

3) Estimate relative work effort (e.g., planning poker or affinity estimation) and prioritize (value), and

4) Estimate rough time frames (estimate velocity, sprint duration, and rough release dates).

[The Art of Agile Development. James Shore.]

 

– 4  basic steps

1) Identify requirements (these will become part of the product backlog)

2) Organize requirements into categories or themes

3) Estimate relative work effort (e.g., planning poker or affinity estimation) and prioritize (value)

4) Estimate rough time frames (estimate velocity, sprint duration, and rough release dates)

 

Continuous planning

Progressive elaboration is continuous planning with the expectation that project plans and details will change but become more refined as the project progresses. [Agile Estimating and Planning. Mike Cohn.]

 

Rolling wave planning

Waves or phases, only the next few iterations are planned in detail.

The iterations more distant are planned only at a high-level.

Rolling wave planning (or rolling look ahead planning) involves planning in waves or phases and is especially useful for large, complex projects. Only the next few iterations are planned in detail and iterations more distant are planned only at a high-level. [Agile Estimating and Planning. Mike Cohn.]

 

Prototypes

Prototypes are low cost, low risk methods to portray a design idea to a customer in order to obtain feedback before development. Although time consuming and having cost, prototypes can help save later costs that may occur if a design is not modeled beforehand to obtain feedback and fails to meet customer expectations. [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.]

In the agile design process, prototypes help the customer understand current design state. Three common types of prototypes are HTML, paper (i.e., sketches), and wireframes. A wireframe is a sketch of a user interface, identifying its content, layout, functionality, is usually black and white, and excludes detailed pictures or graphics. A wireframe can be created on paper, whiteboards, or using software. [Agile Estimating and Planning. Mike Cohn.]

– HTML

HTML and other software based solutions are ideal for presenting prototypes to customers, especially when off site. Software based prototypes are dynamic, graphic capable, and portable. [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.]
– Wireframes

A wireframe is a sketch of a user interface, identifying its content, layout, functionality, is usually black and white, and excludes detailed pictures or graphics. A wireframe can be created on paper, whiteboards, or using software.

– Maquette
– Story maps
– Story map

In agile, the story map is essentially the project plan. It orders the user stories/product features into logical themes to serve as a plan for development. [User Stories Applied: For Agile Software Development. Mike Cohn.]

 

Themes

A theme, in the context of agile development, is a set of related user stories. [User Stories Applied: For Agile Software Development. Mike Cohn.]

 

Product backlog

A list of the product features to be developed in a release.

The product backlog is a comprehensive list of all product features to be developed in an iteration. It is an evolving document and changes to adapt to customer requirements. As the project progresses, project features in the backlog become better defined as the customer understands product need more completely. [Lean-Agile Software Development: Achieving Enterprise Agility. Alan Shalloway, Guy Beaver, James R. Trott.]

 

Sprint backlog

A list of the product features to be developed in a sprint.

The sprint backlog is a list of product features or work items to be completed in a sprint. It is typically fixed for the sprint unless it is overcome by important customer requirements. [Lean-Agile Software Development: Achieving Enterprise Agility. Alan Shalloway, Guy Beaver, James R. Trott.]

 

User Stories

A user story is composed of the following three aspects :

1) A written description of the story;

2) Conversations about the story (think verbal, rather than written here); and,

3) Tests that convey when a story can be accepted or complete. [User Stories Applied: For Agile Software Development. Mike Cohn.]

– 3 aspects
1) A written description of the story
2) Conversations about the story (think verbal, rather than written here)
3) Tests that convey when a story can be accepted or complete

User stories include activities that have a  clear end point or exit criteria. [User Stories Applied: For Agile Software Development. Mike Cohn.]

The ideal development duration range for a user story is 2 to 5 days. [User Stories Applied: For Agile Software Development. Mike Cohn.]

 

Collaboration with customer

Because agile emphasizes customer collaboration, the team should simply collaborate with the customer to clarify the user story. [User Stories Applied: For Agile Software Development. Mike Cohn.]

 

Organization

Various grouping methods are used to organize user stories. Typical methods are: 1) Relation to a product feature (e.g., all user stories that interact with the database), 2) By logical sequence and dependency (e.g., Group 1 must be developed before Group 2 because of technological dependency), 3) By priority based on customer value. [User Stories Applied: For Agile Software Development. Mike Cohn.]

 

MoSCoW technique

The MoSCoW technique is commonly used in agile to prioritize user stories and create a story map.

The MoSCoW technique prioritizes user stories into the following groups in descending order of priority: M – Must have; S – Should have; C – Could have; W – Would have.

Must have items are those product features which are absolutely essential to develop.

Should have items are product features that are not essential but have significant business value.

Could have items are product features that would add some business value.

Would have items are product features that have marginal business value.

[User Stories Applied: For Agile Software Development. Mike Cohn.]

M – Must have

S – Should have

C – Could have

W – Would have

Leave a Reply

You must be logged in to post a comment.