1) Getting a Canary 2) Rejecting Scrum for Kanban 3) Planning Poker 4) Automating Deployments with ‘Munge’ 5) Sharing Ownership with Fez & Pirate Hats! Dealing with Collapse : A Success Story
Sites Design Email (Even built/hosted our own campaign system!?!) Banners Micro-Sites Brochure-ware Social Media Hosting Ad Campaigns 24/7/365 Support J2EE Web Apps Messaging Middleware Workflow Systems
Six fold growth - Wide range of big and small projects - Rounded skillset from architectural & development to system administration *The E-Myth 2001 After the initial exciting growth the company started to hit a celling - J2EE was loosing its perceived competitive advantage - Common in small business, 80% fail in their first 5 years*
SOAP API’s - But many XML(sometimes)/RPC Designed by Architects with Capital A... ...but built by developers (with a lowercase d) Supporting 40-50 live production web apps - 100+ Environments in total (UAT, Integration, etc) - Key required 24/7/365 SLA’s Pain stemmed from multiple points
galore with poor test coverage - Some code even needing decompiling from bytecode... - To modern lightweight clean GWT, Hibernate, Spring Hosting Mix - Mix of our own rack in Docklands to clients hardware and the cloud - Although our rack provided many benefits some hardware dated back 5-7 years Pain stemmed from multiple points
Ugly Suicide Team are sacrificial lambs at the slaughter for successful delivery Team dreams of fame, glory and riches ‘if’ they succeed Projects and Team are doomed. Only alternative is to be fired Projects are doomed, but everyone agrees it will be glorious failure! Death March - Edward Yourdon
place - but needed updating Were getting 4-5 alerts a day! - Regular Database/Hardware failures - Deployment, Code Quality problems - Subtle networking issues (ISP or self inflicted) You dreaded your phone Make things worse we needed more checks! - CI needed and much better test coverage
started feeling a little less ‘catastrophic’ Now was not the right time for ‘one more copy change...’ Over time major alerts dropped to 1 every few weeks Getting a Canary (or Nabaztag)
for work so new projects varied wildly in size and complexity - Some were multi year builds - Others ‘OMG we need it done by the weekend’ Mixing both functions can be efficient and satisfying Support’s unpredictability impacted new build work - More common in-practice with teams impacted by 2nd/3rd line support issues
- requirements flagged as ‘assumptions’ 'Unknown Knowns' - requirements the client had not yet told you about 'Unknowns Unknowns' - requirements neither you or client knew about Successful Delivery is about Accepting Uncertainty Flickr : ooocha
SCRUM We needed something less rigid How would unpredictable support be incorporated? - A ‘batman’ would have been wasteful or not enough resource Work/Budget would often not fit neatly into an iteration(s) Clients liked ability to embrace continuous change but still needed fixed delivery costs “Don’t you know the difference between the Chicken and Pig!” “I need to know what is being delivered before I signing off costs!”
Once happy, everyone estimates in private Reveal at same time Hi & Lo estimates discuss differences Repeat estimate again if no consensus Flickr: lejoe
at projects past progress Enabled plotting projects into future based on previous tasks/estimates As a PM you can often get team to develop simplest solution and feel good about it! Planning Poker
developers need to worry about - Needed to re-instil confidence back in the team Reducing time to deploy was key lowering costs - Worst cases deployments took 5 hours! Needed to adapt to different environments - Our Rack, Client’s hardware, The cloud Had to work well with Designers and Developers
conventions - Minor changes could be released in seconds - Major releases, tested and deployed in 5-20mins (depending on changes) Every step could be manually overridden Live environment metrics used to determine deployment hosts
only needed 1 person’s attention Whole team needed to share ownership of production issues Taking ownership should be visual minimising disruption to rest of team
key client dependant on their sports coverage - Unsure if someone would step in with finance - Or if someone else would buy the rights Finally a Success Story Sign off received 3 days before changes needed to be live Particularly complex CRM/Sales intergration - Estimated >5 weeks worth of effort - Deadline was immovable and very damaging for all parties involved if failed to deliver
hit the first key 3 day deadline - 4 major releases followed over next 7 days - More followed in the subsequent weeks/months Sales in the days that followed dwarfed anything before with 0 downtime One of the more satisfying projects have been lucky enough to be involved in All thanks to prior hard work put in by the team
- It just might need a creative solution - Taking educated technical risks are often needed An informative workspace is key - Although is largely about ‘Psychological Manipulation’ Embrace change and unpredictability - but always make sure the team has a clear guiding project vision Software delivery is an art-form - backed by scientific approaches