worthwhile technology foundations
TRANSCRIPT
Towards a WorthwhileTechnology Foundatation
Smartly prioritizing early-stage technology efforts in the service of a long-
term platform for your business.
CIC Critical Mass • July 12, 2011Will Koffel • http://will.koffel.org/
1
GoalWhen you identify an opportunity for your
business to truly crush it...
Your technology team should reply “yeah, we can get there from here!”
(This is the business of tech)
2
Lessons
• Adopt Development Best-Practices
• Manage Your Technical Dependencies
• Eschew Legacy Support
• Pick Your Battles
3
Your Foundation• extremely fragile,
susceptible to lots of external forces
• complicated and expensive to access and maintain
• really hard to extend
• can’t build a proper foundation now even if you wanted to
15
Your Foundation• doesn’t adopt “best-
practices” for architectural design.
• has “dependencies” on environment and design decisions
• unreasonably values “legacy” lakefront luxury
• fought the wrong “battles” causing undo long-term hassles
16
Leech & LearnAlmost all your problems have been solved before.
(yes, including that one you are thinking now, and the one you’re going to hit next)
Best-practices save time, and work better!(Inventing a car with geared wheels
isn’t better unless the roads have teeth)
Don’t be so clever, great artists steal.(And steal from the best, big or little,
known or admired)
18
Some Must-Haves• Source Control
• Data Control
• Testing Infrastructure
• Reliable Deployments
• Monitoring
• Project Management Tools
• Customer Feedback
• Reporting, and Analytics
• Development Methodology
Good news: we live today, so do great solutions!These have to be...but they don’t have to be hard.
19
Recommendation
Take a week of time to adopt the tools and techniques of the best comparable
startups around.
It will be time well spent.
20
[manage dependencies]
“A ship is safe in harbor, but that is not what a ship was built for.” – William H Shedd
21
No Crystal BallModular systems are flexible and reliable.
(If you can’t describe the pieces of your technology foundation, then it’s too complicated)
Evaluate Vendors Defensively(They will sell you on the features. Grill
them on the gaps, avoid early lock-in)
Define Your Interfaces(If changing system A affects system B, you want
to know about it in advance)
22
Brace for Change• databases
• hosting providers
• language/frameworks
• swap off-the-shelf components with home-grown
• grow a mobile presence
• add an API
• expand to social networks
• experimental features
Memo: you will fail to predict the path for your business. Don’t code yourself into a corner.
23
RecommendationTake a day of time to create a great
diagram of your technology platform, including all the data and
communications between modules.
It will be time well spent.
24
[eschew legacy]
"One must always maintain one’s connection to the past and yet ceaselessly pull away from it." – Gaston Bachelard
25
Look ForwardThe past is getting older every day
(By the time your business is big enough to support legacy systems properly, they’ll be gone)
Dropping features makes you free(Don’t make your team rummage around
in a cluttered attic, they’ll trip an get hurt)
Your team can’t accurately predict the cost(And don’t forget to clean up all your code, tests, user messaging
and documentation when you do eventually drop support)
26
Stay Current but Safe• browser support, be aggressive
• mobile device OS versions
• plugin / API catalog, keep informed
• framework versions, latest stable
• social graph integration and auth (e.g. oauth)
• new tools and services, pay attention
Bonus: not only will this grease the technical wheels, but you’ll also hire better developers
who respect and embrace your approach27
RecommendationBe a bold futurist. Imagine how prescient
you’ll look in two years when your company is as technically relevant as the
next generation of startups.
It will be time well saved.
28
[pick your battles]
"To achieve great things, two things are needed: a plan, and not quite enough time." – Leonard Bernstein
29
Core CompetenciesDon’t invent anything you aren’t innovating
(The things you are innovating will need all the attention you can give them)
Build tech in the service of your business(Leave tech for the sake of it to the academics and open source crews)
Be ruthless when evaluating what really matters(Will it kill the patient?)
30
Ask the big questions• Are you built on scale, or built on UI?
• Is your technology evolutionary or disruptive?
• Are you reinventing payments, or collecting cash?
• Which of those best-practices should you better?
• You want it good, fast, or cheap? (choose one)
Tip: If you keep your tech team focused on what matters to your business, they will still find an acceptable path for all the other stuff.
31
RecommendationMake a list of what your technology needs
to do better than anyone’s if your business is to be successful. Put 100% of
your fungible efforts towards that list.
It will be time well saved.
32
[talk about it]
“The single biggest problem with communication is the illusion that it has taken place.” – George Bernard Shaw
33
• Educate each other
• Focus on the business strategy
• Agree on the platform strategy
• Make the hard decisions together
34