Agile Development process
Agile methods are so fundamentally people-oriented with intense collaboration
Essential that you start with a team that wants to try and work in an agile way.
Imposing agile methods on reluctant people is fundamentally at odds with the whole notion of agile development
Parties must care about the outcome Whenever anyone does anything new they inevitably make mistakes Aware of where the boundary conditions until you cross over them and
fail Expect varying factors to easily pin down the source of problems
Crystal Process has three priorities safety in: Project outcome Efficiency Habitability (developers can live with crystal?)
They also share common properties, of which the most important three are: Frequent Delivery Reflective Improvement Close Communication
SCRUM is a "hyper-productivity tool", and has been documented to dramatically improve productivity in teams previously paralyzed by heavier methodologies.
3 Key Questions that are asked: What did I get done? What is thwarting progress (obstacles)? What am I going to do tomorrow?
Model of thinking should be: Adaptive / Tolerant / Patient
Agile is a self adaptive process. Core Questions: What did we do well? What have we learned? What can we do better? What puzzles us?
Characteristics of SCRUM:
Authentic sense of ownership Sociological Phenomenon (its all about community) Encourage and foster cross-pollination and cross stimulate ideas Small endeavors Systematic Way Smaller processes embedded in larger processes
Extreme Programming
Five values (Communication, Feedback, Simplicity, Courage, and Respect).
The idea is that practices are concrete things that a team can do day-to-day, while values are the fundamental knowledge and understanding that underpins the approach.
Values without practices are hard to apply and can by applied in so many ways that it's hard to know where to start.
Practices without values are rote activities without a purpose.
Rational Unified Process (RUP):
The key common aspects of RUP is that it is: Use Case Driven (development is driven through user-
visible features) Iterative Architecture centric
WORKFLOW VELOCITIES
Smaller waterfalls with significant events (milestones)
There are different workflow velocities. Require different strategies Seamless integrated with development
Full Integration Culture
Integrated Framework Continuous Integration Sometimes independent and isolation is required Thirty day iterations (called 'sprints') and applying closer
monitoring and control with daily meetings Concentrates on the management aspects of software
development
Resources and TasksFree circulating tasks and resources / Rotating resources
Approach Your Work: Acknowledge Change / Embrace Change / “I get it” Task Buffer – Queue, priorities queue is a holding a
mechanism. Tasks can be serialized or run in parallel Serialized – sequential tasks
Useful Work Tips:Capture the discussion via whiteboard snapshotsGet commentary on picturesElaborate just enough details
ProblemsProblems with resource allocation is resource theft.Contract can be broken, tasks terminated, rules to enforced.
The Timebox work conservation equation: the time remains constant so only the tasks and the resources can vary
Resource Theft Happens : If testing resource gets pulled, then tasks are pulled. If too much resource is pulled, then the sprint is
terminated and a new sprint is created that conforms to the new realities.
Hypothesis Testing
A tentative explanation for an observation, phenomenon, or scientific problem that can be tested by further.
Software testing is: Positing a hypothesis Testing the hypothesis Refactor and calibrate hypothesis (modulate direction of
testing efforts) Restating hypothesis
Undertaking, Endeavor,
Its no small feat, Tasks doesn't change, task resources change What is the center of gravity Run you tasks at a torrid pace
About Requirements (product conceptions) in SCRUM model Must abstract the essence of work Has to be an intellectual discipline
More About SCRUM
Embracing reality through authentic work and speech Good science - The art of evolving confidence building
mistakes Framing the real work in timeboxed intervals Maintaining the work conservation equation – the time
remains steady so the tasks and resources must vary This has the effect of maintaining a project heartbeat Timeboxed intervals are series of mini-waterfalls which
taken together are much more flexible and accurate than one larger waterfall.
Our agile development is embedded in a larger waterfall environment.
We use a layered strategy to account for different workflow velocities
Scrum is task agnostic - if any tasks can be owned and estimated accurately and then they can be ‘scrummed’.
Soft tasks such as bug fixing or customer service with no hard estimates can also be scrummed where is emphasis is the daily meeting and the velocity tracking.
The ‘Process’ is always a second-order effect. Agile is about people and their creative energy.
In the end, its about people believing in the product and then people creating the product as they work together in a very human community
Daily Sprint Meetings:
Daily sprint meetings occur with questions that facilitate work adjustments at the micro level.
[1] What I did do since the last daily meeting?[2] What are my obstacles?[3] What do I plan to do before the next sprint meeting?
Artifacts: Whiteboards snapshots with minimal commentary Wikis, BlogsThe Scrum Spreadsheet contains 4 worksheets Planning / Sprint Backlog / Team Burndown Chart / Individual
Burndown Chart
Scrum Planning Worksheet: Team Name Starting Date # of Calendar Days # of Work Days Ending Date Work hours per day (typically 8) Team member initials Full names Working Days this sprint Overall Drag Factor (as a %)Calculations:
Working calendar hours for this sprint % of calendar hours available for this sprint Working hours available for this sprint Total planned hours Unplanned hours
Team Sprint availability