This document provides guidance on establishing a worthwhile technology foundation for a business. It recommends prioritizing early-stage technology efforts to support the long-term platform strategy. It emphasizes adopting development best practices, managing technical dependencies, avoiding supporting legacy systems, and focusing efforts on the core competencies that are most important to the business. The document recommends taking time to improve planning, documentation, and communication between business and technology teams.
1. Towards a Worthwhile
Technology Foundatation
Smartly prioritizing early-stage
technology efforts in the service of a long-
term platform for your business.
CIC Critical Mass • July 12, 2011
Will Koffel • http://will.koffel.org/
1
2. Goal
When 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
3. Lessons
• Adopt Development Best-Practices
• Manage Your Technical Dependencies
• Eschew Legacy Support
• Pick Your Battles
3
7. 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
8. 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
9. [adopt best-practices]
“Discipline is the bridge between goals
and accomplishments.” - Jim Rohn
17
10. Leech & Learn
Almost 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
11. Some Must-Haves
• Source Control • Project Management
Tools
• Data Control
• Customer Feedback
• Testing
Infrastructure • Reporting, and
Analytics
• Reliable Deployments
• Development
• Monitoring Methodology
Good news: we live today, so do great solutions!
These have to be...but they don’t have to be hard.
19
12. 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
13. [manage dependencies]
“A ship is safe in harbor, but that is not
what a ship was built for.” – William H Shedd
21
14. No Crystal Ball
Modular systems are flexible and reliable.
(If you can’t describe the pieces of your
technology foundation, then it’s too complicated)
Define Your Interfaces
(If changing system A affects system B, you want
to know about it in advance)
Evaluate Vendors Defensively
(They will sell you on the features. Grill
them on the gaps, avoid early lock-in)
22
15. Brace for Change
• databases • grow a mobile
presence
• hosting providers
• add an API
• language/frameworks
• expand to social
• swap off-the-shelf networks
components with
home-grown • experimental
features
Memo: you will fail to predict the path for your
business. Don’t code yourself into a corner.
23
16. Recommendation
Take 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
17. [eschew legacy]
"One must always maintain one’s connection to the past and
yet ceaselessly pull away from it." – Gaston Bachelard
25
18. Look Forward
The past is getting older every day
(By the time your business is big enough to
support legacy systems properly, they’ll be gone)
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)
Dropping features makes you free
(Don’t make your team rummage around
in a cluttered attic, they’ll trip an get hurt)
26
19. 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 approach
27
20. Recommendation
Be 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
21. [pick your battles]
"To achieve great things, two things are needed: a
plan, and not quite enough time." – Leonard Bernstein
29
22. Core Competencies
Don’t invent anything you aren’t innovating
(The things you are innovating will need all the
attention you can give them)
Be ruthless when evaluating what really matters
(Will it kill the patient?)
Build tech in the service of your business
(Leave tech for the sake of it to the
academics and open source crews)
30
23. 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
24. Recommendation
Make 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
25. [talk about it]
“The single biggest problem with communication is the
illusion that it has taken place.” – George Bernard Shaw
33
26. • Educate each other
• Focus on the business strategy
• Agree on the platform strategy
• Make the hard decisions together
34
27. [q & a]
“To avoid criticism, do nothing, say
nothing, be nothing” – Elbert Hubbard
35