Download
agile software development n.
Skip this Video
Loading SlideShow in 5 Seconds..
Agile Software Development PowerPoint Presentation
Download Presentation
Agile Software Development

Agile Software Development

1 Vues Download Presentation
Télécharger la présentation

Agile Software Development

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Agile Software Development Brian Link brian@brianlink.me

  2. What is Agile? Not this: http://www.flickr.com/photos/juniorvelo/

  3. Waterfall Sucked • Million dollar design documents • Irrelevant product when done after 12 mos • Focus on deliverables and process – not people and customer • Big design up front (BDUF) is good and the whole fix bugs upstream thing… • But without iterative and adaptive processes to incorporate change, you must have a well defined project up front (impossible?)

  4. Agile’s more like this: • Communication • Simplicity • Feedback • Courage • Respect

  5. Agile Manifesto • Satisfy the customer. Build value quickly • Be adept at accepting, adopting change • Crank out code releases frequently • Focus on relevant business goals • Embrace interactions, not deliverables • Focus on quality, working code • http://agilemanifesto.org

  6. And sort of like this:

  7. Agile is not just one thing • It’s a collection of methodologies and strategies • People often pull from various things to varying degrees and make their own • Scrum • Extreme Programming (XP) • Pair Programming • Test Driven Development • Lean Software Development

  8. Benefits of Using Agile • Focus on building business value • Micro management without micromanagement • Issues uncovered in real-time

  9. Benefits of Using Agile • Control deadlines by shifting features to later sprints • Partnership between tech and business • Transparent status updates daily

  10. It’s not just winging it • Cowboy coding is entirely different • This is just-in-time design and delivery • It’s efficient, not stupid • Principles of Lean Software • Honda production line: nothing wasted

  11. Scrum Process Prioritized Estimated, Assigned

  12. Daily Tracking & Burndown • During Scrum, progress on tasks are tracked then reported publicly • Bite-sized features easier to estimate • Sprint deadlines enforced by controlling backlog list (add or remove) • Trac + plugin can manage tasks, estimates and burndown charts

  13. Scrum - Roles • Pigs • Product Owner • Scrum Master • Dev Team • Chickens • Users • Stakeholders/Sponsors • Managers • Scrum / Daily Standup • What did you do yesterday, today, issues?

  14. Test Driven Development • Write tests as early as possible • QA helps define/ensure functionality features • Use a tool to track the tests • PHPUnit, Selenium • Continuous Integration Environment • Automate integration testing • Cruise Control • Testing done all the time • No big “OMG, we have to test this thing now”

  15. Digg’s Process Evolved • Started with 3 developers, chaos • Gradually added more to team, added some process (source control!, design specs, estimated task list) • Doubled to 8-10, formed three virtual teams • Big projects, small projects, infrastructure • After 12-14, embraced Agile much more consistently – multiple daily scrums, etc.

  16. Digg Team Structure • Six functionally separated senior teams • Two App/Feature teams, Core/Infra, Maintenance, Admin/Security/Ads, Architecture/Mgt

  17. Digg Product Management • MRD • Marketing Req’ts doc • Measurable goals, intentions, reasons • PRD • Product Req’ts doc • Screens + features • Portfolio prioritization • Every other week cross functional meeting • Feature and scope management

  18. Digg Sample Timeline • Four week cycle • Lots of discussion before project is “approved” and started by dev team • Week one is overlap with previous cycle • Working out estimates, assignments, design • Week two-three heavy dev work • Week four – dry runs to launch, testing

  19. Try it, invent your own • Proceed with some forethought • Have someone who knows what they’re doing guide the process • Take one project in your portfolio with a small team and experiment • Feedback loop is critical at the end • Analyze what worked and what didn’t and adjust