Piece of the Puzzle

9 downloads 1283 Views 2MB Size Report
PROS. • Great for managers to keep in touch with daily work of team, blocking points. ... programmers or single- programmer projects. • If you have made bad ...
Great code is not an accident. Real world software development – MVC, Azure, and Agile Columbia Sportswear

The Harry Potter Hat of Excellence

A story.

Can you refactor your code without fear? • Class Design / UML Layers • Naming Conventions • TDD • Class Design / UML Layers Are bugs VERIFIABLY fixable? • Automated Unit Tests • Static Analysis (VS2010) • Dynamic Analysis (ReSharper) • Design Review • Peer Review Can you deploy as easily as you can build? • Continuous Integration • Continuous Deployment w/rollbacks

Can you revise your code? • Source Control • Reversion/Branching (TFS) • Documentation (inline, blog/wiki, SharePoint)

DEMO - our team’s implementation of Agile Demo of TFS 2012

One panel to rule them all

Planning

PDM

Logility

Integration

ETL

EDM

Columbia

Java MAD Logility ABAP

A tale of three projects. •

What made the difference?

The funnel of death. Why do our estimates become fixed? McConnell (1996), Deutsch (2003)

Why did the Spanish Armada fail?



Management isolated from daily realities Fixed, inflexible deliverables Initiative was not rewarded but punished Top down management style, no delegation Excessively long meetings and reams of paper and meaningless documentation No incremental learning Lack of buy-in from the project team.



Complete lack of confidence = failure.

• • • • • •

Other things we learned. • • •

Demos aren’t optional. Team Maturity Level: Preassigned tasks create siloes Don’t fuss over estimating stories. •

• • •

Save the cards for Vegas.

Midsprint “definition of done” = peer review Don’t lock out BA’s, testers and PM’s. Documentation = “good enough”. •

SP Doc Libraries > Stories > Tasks/Bugs

Why Apollo 13 Worked All successful projects have similar characteristics… •









The needs of the customers drive the project. The team creates a high-level plan for delivering the project. The team develops the product over several iterations and refines the high-level plan over time. The team has effective tools for adapting to changes that occur. Effective teams are transparent about their work.

Agile Pros and Cons PROS •







Great for managers to keep in touch with daily work of team, blocking points. Great for building up street cred w/business. Laser focus on specific tasks – prevents scope creep battles and developer-induced wanderings (the hell of premature optimization) Room to make it your own – impose order on chaos.

CONS •





• •

Agile doesn’t help ace programmers or singleprogrammer projects. If you have made bad architecture decisions, they get “baked in” with no time to refactor. NOT a substitute for a good ALM/SDLC! Not a good fit for maintenance/support teams. Terrible for long term forecasting. Breaks down with teams >10 people or