Agile Systems Engineering Planning Using Six Thinking Hats
Presenters
Phyllis R. Marbach
Laurie Buss
Systems Engineering for Software Intensive Projects Using Agile Methods presented at INCOSE International 2014
Introduction
Scrum is an iterative, incremental methodology for project management often seen in agile software developement, a type of software engineering
Agile Includes:
Scrum: Iterative, incremental methodoogy for project management
Lean: reduce waste, reduce work in process; have what you need to start, once an item is started, finish it before starting the next item
eXtreme Programming: pair programming, continuous integration, automated testing, test first development
Crystal Methods: frequient delivery, reflective improvement
"Ceremonies" of Agile
Vision of the system must be well-defined
Create a product backlog: list of stuff to accomplish
Prioritize the list of stuff by the highest priority at the top
list of stuff usually comes from a group of stakeholders
Commit to a small set of goals - the Iteration Backlog
Identify the smallest capability that canb e created; some call this a Minimum Viable Product (MVP)
Iteration Planning
Product owner identifies the highest priority items and the environmental constraints
Architect or SE defines architectural requirements
Team looks at the highest priority items on the product backlog and plans what they can do in the 2 to 4 week iteration
Team defines which of the high priority items they can do in the iteration being planned
Team identifies any dependencies between the backlog items
Agreement is that no stakeholders can add to or change the planned work during the iteration
Job of the scrum master to protect the team from the stakeholders adding or changing the planned work during the iteration
Daily stand-up where team reports to each other
This is what I just finished
This is what I plan to do next
Also report any impediments that might be slowing you down or in the way of finish something
Iteration Demonstration
Team presents what has been finished during the iteration in a "Show and Tell"
Stakeholders and Product Owner provide feedback on what is demonstrated
This inspects and improves the product
Retrospective
Faciliated by the scrum master
Usually soon after the demonstration, attended by team members only (not customers)
Each team member identifies:
What worked well
What did ot work well
What could/should be improved
Agreements on what will be changed to improve how everyone is working together
Pick the highest value prospect to address
This inspects and improves the process
Team Roles
Product Owner
Responsible for the product backlog
Removes impediments
Represents the customer and works closely with the customer
Scrum Master
Facilitates the team meetings
Removes impediments
Team Members
Plan the iterations
Estimate the amount of backlog that canb e completed each teration
Demonstrate the capabilties at the end of each iteration
Teams ideally are 5 to 9 members of developers, testers, and other members
Agile Summary
Roles
Team Member
Scrum Master
Product Owner
Artifacts
Product backlog
Iteration backlog
Working demonstrate-able increment of capability
Communication and Planning
Pre-product backlop
Vision/Roadmap
Pre-iteration backlog
Iteration planning
During iteration
Daily stand-up
Pre-working increment of a capability
Iteration demonstration
Post-demonstration
Retrospection
Systems Engineering
Stakeholder requiements defintion
Requirements analaysis
Architectural design
Implementation
Integration
Verification
Impact of Agile on Systems Engineering
SE Architect Role
SE identify and analyze architecture dependencies
Create and continuously update an architecture description
Participate with the SE Team
Partication on one or more implementation teams
Work one iteration ahead of the developers
SE Process
SE and software development work together to
Define capabilities
Implement capabilities
Test capabilities
Inspect the results
Adapt capabitlies as needed
Maintian system integrity
Larger programs with several teams working in parallel need SE engaged
Each aspect of development (requirements, design, implementaiton, test, verifcation) is continually revisited through the devleopment lifecycle
Agile SE Framework Conclusion
SE and software development work toegether to develop and evolve the work products iteratively
Define "just enough" architecture and requirements prior to the beginning of implementation
Release planning and iteration planning are essential to detail the work and coordinate the teams
Release products frequently
Absorb changes to mission requirements
Include requirements, architecture, system design and validation by SE on large scale agile projects
Will iterative and incremental development work for you?
Is the system complex?
Do you epect to have discoveries during the development that will cause changes?
Is there an involved and commiteed customer or product owner that can help prioritize the prodcut backlog and define the requirements
Last updated