ignite columbus 2 – agile software development
TRANSCRIPT
![Page 2: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/2.jpg)
What is Agile? Not this:
http://www.flickr.com/photos/juniorvelo/
![Page 3: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/3.jpg)
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?)
![Page 4: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/4.jpg)
Agile’s more like this:
๏ Communication
๏ Simplicity
๏ Feedback
๏ Courage
๏ Respect
![Page 5: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/5.jpg)
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
![Page 6: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/6.jpg)
And sort of like this:
![Page 7: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/7.jpg)
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
![Page 8: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/8.jpg)
Benefits of Using Agile๏ Focus on building business value
๏ Micro management without micromanagement
๏ Issues uncovered in real-time
![Page 9: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/9.jpg)
Benefits of Using Agile๏ Control deadlines by shifting features to
later sprints
๏ Partnership between tech and business
๏ Transparent status updates daily
![Page 10: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/10.jpg)
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
![Page 11: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/11.jpg)
Scrum Process
Prioritized Estimated, Assigned
![Page 12: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/12.jpg)
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
![Page 13: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/13.jpg)
Scrum - Roles๏ Pigs - Product Owner- Scrum Master- Dev Team
๏ Chickens- Users- Stakeholders/Sponsors- Managers
๏ Scrum / Daily Standup- What did you do yesterday, today, issues?
![Page 14: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/14.jpg)
![Page 15: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/15.jpg)
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”
![Page 16: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/16.jpg)
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.
![Page 17: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/17.jpg)
Digg Team Structure๏ Six functionally separated senior teams
๏ Two App/Feature teams, Core/Infra, Maintenance, Admin/Security/Ads, Architecture/Mgt
![Page 18: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/18.jpg)
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
![Page 19: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/19.jpg)
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
![Page 20: Ignite Columbus 2 – Agile Software Development](https://reader033.vdocuments.mx/reader033/viewer/2022060122/55958fc31a28ab9e318b460c/html5/thumbnails/20.jpg)
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