530 likes | 733 Views
<Agile In the Enterprise>. “can’t we all just get along?” Presented by: joe.ocampo 05/17/2008. What we will cover. Approaches to instituting Agile in the Enterprise. Maybe, Scaling models for Agile Format Me talking a lot Q/A with the “A” consisting of mostly “It depends…”.
E N D
<Agile In the Enterprise> “can’t we all just get along?” Presented by: joe.ocampo 05/17/2008
What we will cover • Approaches to instituting Agile in the Enterprise. • Maybe, Scaling models for Agile • Format • Me talking a lot • Q/A with the “A” consisting of mostly “It depends…”
What we will _not_ cover If you don’t know who this character is go ask your parents. If they don’t know I am officially old!
What makes project successful? • People communicating successfully to accomplish accomplish a common goal • Without communication and people projects will always fail • Simple in concept but often over looked or neglected
You need to understand the big picture but not the brush strokes • Traditional process is prescriptive • Emphasis on getting all the requirements right and written early in the project. “get it right the first time” • Agile process accepts change • Requirements gathering as ongoing, iterative, discovery process • Acknowledge that it’s impossible to get all of the requirements up front • Acknowledge that there is a time value dimension to requirements Start now- evolve to “right”
Shifting Agile Pardiggums (paradigm) Waterfall Agile Fixed Requirements Resources Time Value Driven Plan Driven Estimated Features Resources Time The Plan creates cost/schedule estimates Release themes & feature intent drive estimates
Anyone heard of these??? • Dynamic System Development Method (Dane Faulkner) • Adaptive Software Development (Jim Highsmith) • Crystal (Alistair Cockburn) • SCRUM (Ken Schwaber) • XP (Kent Beck) • Lean Software Development (Mary Poppendieck) • Feature Driven Development (Jeff DeLuca) • Iterative/Agile – Open UP • What do all these methodologies have in common?
So what Agile methodology works? • It depends… • They all have a context on which they are applicable but culture and organizational maturity impact their acceptance
Standard Team Structure • Optimized for vertical communication • Causes friction across silos • Location via function • Political boundaries between functions Product Mgt Architecture Test and QA Development Management Challenge: Connect the Silos
Composite Team Char. • Communication is optimized across disciplines in co-located team • Teams have all disciplines necessary • Self-organize and self-manage • Bid, elaborate, execute • Adjust scope and reprioritize • Integrate, test, accept • The functional and social network are optimized to Elucidate/Generate/Validate a potentially shippable increment of software
Line of sight planning? • Release Plan at the System Level • Release theme and prioritized feature sets for each release • High visibility and confidence near term (Release “next” and “next+1”). Lower visibility longer term • Three to six to nine months planning horizon • Iteration Plan at the Component Level • Define story cards and tasks for next 1-3 iterations • Adapt and adjust at each iteration • 3-4 weeks planning horizon
Line of Site Planning system Release Planning System imposed FEATURES features dependant Iteration Planning requirements Components stories I1 I2 I3 I4 I5 I6 Defects, test cases I1 I2 I3 I4 I5 I6 results components
Iteration Length • Literature recommends 1 week (XP), 30 days (Scrum Sprint), to 2-6 wks (Agile RUP) • Experience has shown that optimum iteration length is one-two weeks • Short enough to limit procrastination • More times to fail soft per release • Natural weekly calendar cadence
Smaller Frequent Releases • Fix release dates • 60-120 days • Releases defined by date, theme, planned feature set, quality • Scope is the variable • Release date and quality are fixed
Benefits of Smaller Releases • Rapid customer feedback reduces waste • Earlier value delivery against customer’s highest needs (no fluffy features) • Frequent, forced system integration improves quality and lowers risk • Low cost to change • Accepts new, important customer features • Reprioritize backlog at every iteration & release • Reduced patching headaches • “It’s only X days the next release, that feature can wait” • Smaller increments for higher productivity • Leaner flow through the entire organization to customer
Mandatory Continuous Testing • Early and continuous testing is mandatory • Because the system is developed in short, workable increments of functionality: • various kinds of testing that used to be deferred until “delivery” must now be immediate. • Forces a “test early and often” cycle which becomes integral to the iteration process • The programmers and testers write and execute tests as they write the code. • Learn valuable lessons sooner • Peer review of program logic • Risks are discovered and addressed earlier • Quality is improved
Concurrent Testing • Unit Testing • Developer written • Functional Testing • Development team/tester/test automation • Acceptance Test • Demo to, and acceptance by, product owner every iteration • System, Performance and Reliability Testing • QA/Test Automation/Developer Written
Practical Issues • The iteration goal is to have tested and accepted software at the end of every iteration • But automation of testing may lag by one or more iterations • Over time: • the set of accumulated functional test cases • + system level and performance test cases serve as full regression tests for iteration and release • The release goal is to execute a full suite of release level acceptance testing, full regression and system and performance testing in less than one iteration • Often, a typical release pattern develops • Initially you must plan for a stabilization iteration
Practical Issues cont. Week 1 Week 2 Week 3 Week 4 Modeling/Planning Iteration A Acceptance Test 1 Release Iteration B Acceptance Test Close/Stabilize
In case you haven’t been listening… Automate Now! • You have no choice: • Manual tests bottleneck velocity • You can’t ship what you can’t test • Higher development productivity drives more tests
Continuous Integration • Continuous integration is neither new nor invented by agile • It has been applied as a best practice in many methods for at least a decade • However, continuous integration is mandatory with agile the teams ability to build continuously is a critical bottleneck to delivered velocity
Adapt, Overcome, Improvise • Iterative development processes are organized so that the entire team, including end users • reflects on the results of the process • learn from that examination • adapt the process - and organization - to produce better results • At the end of each cycle, the team decides what to keep doing, what to stop doing, and what to do differently next time
You can’t do it alone • Involvement of the Product owner is paramount • Don’t attempt to think you know what the business wants!
You need to plan, that’s right plan! • I didn’t say architect the space shuttle! • Feature Breakdown/Future Storm • Product Tree/Prune the tree • Sail Boating
Planning Games “innovation games”
Development Estimation Game • Great Dane (high) (30+ points) • Golden Retriever (medium) (20 points) • Chihuahua (low)(<10 Points)
The Secret Sauce • Confidence Level Project Factor • Team Maturity Factor • Your gut and experience as an APM
Projects have end dates software doesn’t • Remember to always factor in the cost of maintenance • Tie this back to quality up front • Addressing technical debt early minimizes rework and maximizes value • Your maintenance cost will kill your software but not your project • Understand that maintainable software not completed projects make companies great!
Modeling the Domain • All pigs must be present • Start with the domain model • Validate with the UI Sketches • Assure with the acceptance test
Get finer grained estimates from the models • Use the domain model along with the screen sketches to drive stories • Stories must have business value! • should be ATOMIC • should be small but valuable • should relate to a compliment or relate to a feature • should be estimatable
Task are related to Stories • Avoid Stories that define task • “create Item table” • “create Controller” • A Task is part of a story • A Task means nothing to the business • Try to order your task to maximize collaboration and output • Identify dependencies and atomicity
Establish Guiding Principles • Subjective in nature • The “Road Turtles” of agile • Validated by Team when story is delivered • “Screens should allow for entry level personnel to execute with minimal training” • Avoid, “System must use Oracle” • Try “Should allow for high record transactions and high availability”
Start at the foundation Building the foundation
Stabilize and the end of every release • Now is the time to include the rest of the Chickens • Get infrastructure involved • Talk to compliance • Comply with barely sufficient documentation
Your Checksum “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • Individualsandinteractionsover processes and tools • Working softwareover comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.”
What about compliance and regulatory • Establish the bare minimum to be compliance • Don’t go above and beyond: avoid waste • Think of ways to abstract away from the development stream • Try to achieve automation • Be as transparent as possible
What about testing • Automation must be achieved as early in the process as possible • QA is a first class citizen treat them a such • Expect resistance at first “We need requirements in order to test”
Watch out for Matrix environments • Matrix styles can impede progress of Agile project • Remember the Iron Triangle • Fixed Resources • Fixed Time • Very challenging for new organizations and often the result of a failed adoption
Do you need a PMO • The short answer, “Yes” • The real question is, “Do I need a traditional PMO?” • Since Agile does not promote matrix management PMO must adopt a new strategy to manage resource, value and time lines. • Be creative, but not careless
People have to be team players • If you have big Ego’s or Hero personalities expect challenges in adoption • Agile is about the Team not the individuals • You succeed from the effort of the whole and not the one • Koby Bryant : not agile