Week 10
Agile, JRP, Discovery Prototyping, Feasibility
AGILE From: C/P
An iterative and incremental (evolutionary) approach to software development which is performed:
in a highly collaborative manner
by self-organizing teams within an effective governance framework with “just enough” ceremony
that produces high quality solutions in a cost effective and timely manner
which meets the changing needs of its stakeholders
Agile Systems Development Lifecycle (SDLC)
Project initiation
• Feasibility study
• Product roadmap/vision
• Solution Scope
• Business case
• Support and funding
• Build the team
• Create initial models
• Setup environments
Development iterations
• Planning meeting
• Product backlog
• Iterations/release planning
• Analysis
• Development
• Testing
• Iteration tracking
Releases
• Final testing
• Finalize documentation
• Training • Users
• Support
• Release are deployed into production
Production
• Implementation
• Operation and support
• Defects and improvements management
Change Management Risk Management
4
Advantages of Agile analysis
• Beneficial in situations where the end-goals of projects are not clearly defined
• Allows for changes to be made after the initial planning (adaptive planning and evolutionary development)
• Sense of ownership from the customer by working extensively and directly with the project team throughout the project
• Customer feedback occurs simultaneously with development in order to respond to changes in requirements rapidly and effectively
• Continuous testing in increments reduces risks related to bugs 5
Disadvantages of Agile development
• May be inefficient in large organizations and certain types of projects
• Tend to be hard to estimate time and budget requirements
• Can be quite time consuming
• Possible increase in costs if there is a need for additional iterations
• Team members must be located in the same physical space which may be challenging
• Losing a dedicated resource may be catastrophic
6
Traditional and Agile SDLC
Perspective
Traditional
Agile
Collaboratio n
Stakeholders with ad-hoc collaboration
Partners with continuous collaboration
Project management
Focus is on the Process
Focus is on People
PM may influence decisions
Team decisions – empowerment
Favors specialized resources
Self organizing teams
Minimize changes
Embrace change/dialog
Requiremen ts gathering
Complete scope determined upfront
Lightweight, incomplete: just good enough
Testing is done late in the project
Continuous testing
Big bang – Waterfall
Short iterations – progressive elaboration – refining the product
Documentation very detailed
Lighter – based on value
Test plans and code reviews
Validate product at each iteration
Approvals per milestones
Continuous pre-approvals
Criteria for selecting a system development method (Traditional versus Agile)
• Maturity of the organization?
• Project size and complexity?
• Have similar previous projects been completed successfully? • Can tested deliverables be completed in short cycles?
• Are requirements for the finished project complete, clear and stable? • Can the effort required to complete the project be easily predicted?
• What is the level of integration with other systems?
• Time to market deadlines?
8
AMDD
Instead of creating extensive models before writing source code you instead create agile models which are just barely good enough.
AMDD is a critical strategy for scaling agile software development beyond the small, co-located team approach
You do a little bit of modeling and then a lot of coding, iterating back when needed.
Design efforts are now spread out between modeling and coding activities, with the majority of design being done as part of implementation efforts. In many ways this was also true for many traditional projects; the developers would often do significantly different things than what was in the design models, but the designers would often blame the developers instead of question their overly serial processes.
AMDD is different from techniques such as Feature Driven Development (FDD) or the use case driven development (UCDD) styles of EUP and Agile Unified Process (AUP) in that it doesn’t specify the type of model(s) to create. All AMDD suggests is that you apply the right artifact but it doesn’t insist on what that artifact is.
Agile mindset and 4 values Agile Mindset
• informed by the values contained in the Agile Manifesto and the 12 Principles behind the Agile Manifesto.
• values and principles provide guidance on how to create and respond to change and how to deal with uncertainty.
Agile values
1. Individuals and interactions over processes and tools.
2. Working software over comprehensive documentation.
3. Customer collaboration over contract negotiation.
4. Responding to change over following a plan.
Agile mindset and 12 principles
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes The sponsors, developers, and users should be able to maintain a constant pace indefinitely. promote sustainable development.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Read Agile article and prepare questions to ask during class
JRP
From: Whitten & Bentley & C/P
Discovery Prototyping
C/P Pages
Feasibility Analysis C/P & Whitten & Bentley
Creeping Commitment Approach to Feasibility
Categories of Feasibility Tests
Feasibility Matrix
Candidate Systems Matrix
Next Week…
• Project Support Session
• Q&A on your projects
• Breakout rooms for team help
• Quiz 2
• Multiple choice questions
• 30-60 minutes
• Topics: Week 10 (all topics), DFD Hierarchies, PIECES Tables (1 & 2)