Ignite Columbus 2 - Brian Link

Add Comment

Comments have been closed.

Transcript

no image

Slide Text

Slide Notes


Agile Software Development

no text exists for this slide

no notes exist for this slide

What is Agile Not this

no text exists for this slide

Waterfall – long design and long development, handoffs, signoffs, hard to guarantee you’re building what business needs. Some ungodly percentage of big projects either never get used or use just a fraction of the features developed.

Waterfall Sucked


Million dollar design documents
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?)

no notes exist for this slide

Agiles more like this


Communication
Communication
Simplicity
Feedback
Courage
Respect

Iterative and adaptive models more appropriately reflect the agile method. Similar to DSDM

Agile Manifesto


Satisfy the customer. Build value quickly
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

no notes exist for this slide

And sort of like this

no text exists for this slide

Just get the driveway kinda clear. Just in time processes, not perfect, iterative.

Agile is not just one thing


It’s a collection of methodologies and strategies
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

no notes exist for this slide

Benefits of Using Agile


Focus on building business value
Focus on building business value
Micro management without micromanagement
Issues uncovered in real-time

no notes exist for this slide

Slide 9


Control deadlines by shifting features to later sprints
Control deadlines by shifting features to later sprints
Partnership between tech and business
Transparent status updates daily

no notes exist for this slide

Its not just winging it


Cowboy coding is entirely different
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

no notes exist for this slide

Scrum Process

no text exists for this slide

no notes exist for this slide

Daily Tracking amp Burndown


During Scrum, progress on tasks are tracked then reported publicly
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

no notes exist for this slide

Scrum Roles


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

no notes exist for this slide

Slide 14

no text exists for this slide

no notes exist for this slide

Test Driven Development


Write tests as early as possible
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”

no notes exist for this slide

Diggs Process Evolved


Started with 3 developers, chaos
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.

no notes exist for this slide

Digg Team Structure


Six functionally separated senior teams
Six functionally separated senior teams
Two App/Feature teams, Core/Infra, Maintenance, Admin/Security/Ads, Architecture/Mgt

no notes exist for this slide

Digg Product Management


MRD
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

no notes exist for this slide

Digg Sample Timeline


Four week cycle
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

no notes exist for this slide

Try it invent your own


Proceed with some forethought
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

no notes exist for this slide