Tech Challenges – A 15min guide to managing them – By Iain Hunter (for hire)



Tech Challenges – A 15min guide to managing them – By Iain Hunter (for hire)

0 0


TechChallenge

A brief presentation on managing Tech Challenges.

On Github hunt3ri / TechChallenge

Tech Challenges

A 15min guide to managing them

By Iain Hunter (for hire)

iain.hunter@outlook.com

@hunt3ri   iainhunter.wordpress.com

Tech Challenge Brief

Significant Implications Technical in nature Various possible resolutions None being obvious

Sounds like a problem for...

Topics I Considered

That time when we...

  • Ported our app to Windows Azure
  • Chose Moq as our mocking library
  • Chose Zencoder to encode user uploaded video
  • Ported our email to SendGrid
  • Chose Castle Windsor as our DI Framework
  • Chose Unity as our Game Engine

Beyond scheduling/budgetary issues these decisions were mostly non-controversial

Legacy Code

Legacy Code - Defined

"Legacy Code is often used as a slang term for difficult-to-change code that we don't understand. To me Legacy Code is simply code without tests. Without tests we don't know if our changes are making things better or worse."

Michael Feathers, Working Effectively with Legacy Code, 2005

Case Study : Travel 2

The Problem

Enhance bespoke Legacy Airline & Hotel Reservation System

-v-

Purchase Off-The-Shelf Solution

Team comprised manager and 4 developers

Present to CEO and key business stakeholders

Rationale for change

Staff Training Costs Greenscreen Interface High Bus Factor Creaking Infrastructure - parts from Ebay!!! Difficult to change and react Vendor golddust

Existing

Architecture

My Recommendations

Port infrastructure to new servers Create XML-RPC interface into the Business Layer Create Modern Web Interface Slowly document, understand the BL layer Focus on Hotels first

Reasoning

It's a mistake to replace your business differentiator with an off-the-shelf solution Don't choose an off-the-shelf solution if >20% of the project is customization Cheaper and Safer No big bang, incremental roll out. Hotels first than tackle larger Flights problem.

Result

  • Successfully ported to new infrastructure
  • Hotels processing was hugely improved.
  • Company bought over prior to kick-off of flights
  • Team moved on to create www.travelbag.co.uk

Tech Challenge Toolbox

YAGNI - If in doubt choose the simplest solution MVP - Create the Minimum Viable Product as quickly as you can Play to your team strengths -1000 points rule - Anders Hejlsberg Be aware of the realpolitik Confirmation Bias - Impossible to eliminate

Tech Challenges Managed Right

  • WhatsApp - Erlang - 50+ billion messages per day
  • Circa 50 members of staff
  • Sell to Zuck for $19B

Conclusions

Evaluating options is very difficult No right answers, only trade-offs Hindsight is a wonderful thing Get on the plane - Seth Godin Doing nothing is not an option

Questions

https://github.com/hunt3ri/TechChallenge