1 / 20

Agile Software Development

Agile Software Development. Brian Link brian@brianlink.me. What is Agile? Not this:. http://www.flickr.com/photos/juniorvelo/. Waterfall Sucked. Million dollar design documents Irrelevant product when done after 12 mos Focus on deliverables and process – not people and customer

cburney
Download Presentation

Agile Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related