Talk we gave at JavaOne in San Francisco September 2013. An entertaining tale of the technical, financial and cultural journey that jClarity has taken to date as a new start-up in the Java/JVM performance analysis tools space.
3. Who are we?
• NINJAS (obviously)
– And mostly lean ;-)
• Martijn Verburg (@karianna)
– Founder & CTO at jClarity
– aka "The Diabolical Developer"
– Java Champion, J1 Rockstar, Author, Speaker etc <yawn>
• Ben Evans (@kittylyst)
– Founder & Chairman at jClarity
– Deep dive technologist
– Java Champion, J1 Rockstar, Author, Speaker etc <yawn>
• adoptopenjdk.java.net / adoptajsr.java.net
Sunday, 8 September 13
3
4. Context - What our start-up does
• See what we did here? ;-)
• Java/JVM Performance Analysis Tools
– For cloud and enterprise
• Lots of deep dive or bleeding edge tech
–
–
–
–
–
–
–
Sunday, 8 September 13
Hotspot (JVM) internals
Linux internals
Virtualisation technologies
vert.x
Angular.js & pals
MongoDB
etc...
4
5. What we're going to cover
• How to be Lean & Agile
– What does this really mean?
– How do you implement it?
• How to be a Ninja
– Ninjas were actually on the good team originally
– Do not read Hacker News - ever.
• Lessons from start-up life
– Technology
• MongoDB, Angular JS, vert.x and more!)
– Culture
• From office hours to bust ups and in between
– Angels / VCs / Lawyers
• aka Vampires and Sharks
Sunday, 8 September 13
5
7. Sunday, 8 September 13
Most startups fail in 12 months
We are not Instagram, Uber, Yelp etc - We're still alive and
kicking after 18 months which is awesome
7
8. Part I - Lean and Agile
• Why it's important
• Why the principles matter
• Implementation in your culture
• Cargo Cult is bad
Sunday, 8 September 13
8
9. So why "Lean" and "Agile"?
• People bang on about this....
• But why is it important in start-up life?
– Is it not important elsewhere?
Sunday, 8 September 13
9
10. Why "Lean" and "Agile"?
Sunday, 8 September 13
Your amazing idea......
10
12. Where you actually end up
• Start-ups transition...... a lot.
– Their entire product / idea / market
– More than twice in a single year
• We transitioned product twice
– GC Log Analyser to general purpose performance analyser
• We transitioned markets three times
– From cloud to enterprise and back to cloud again
• We laugh at our original business plan
Sunday, 8 September 13
Quote the business school quote
12
13. Don't make my eyes bleed
• Famous post by a VC/Investor
• WHO are your target market?
– Make them real people
• WHY will they use your product?
– This varies for different customers
• HOW will they give you money?
– Our FD says "Make money while you sleep"
Sunday, 8 September 13
13
14. Lean / Agile practices that helped
• Stand-ups
– 24 hour warning on anything that went right or wrong
– Great for team building (celebrate success / help on failure)
• Retrospectives
– Kept us honest with each other (most of the time)
• Small, 1-week long achievable sprints
– With a very real goal at the end
– Even planning 2 sprints in advance didn't work
Sunday, 8 September 13
14
15. What we failed to do
• Validate product against users, early.
– We waited too long to get our product out as a Beta
• Revenue stream from product, early.
– Nothing beats a self sustaining business
– Even if you think your product isn't up to scratch yet
• Sales and Marketing
– Need to get someone in at the start
– If you've solve Cold Fusion but can't sell it....
Sunday, 8 September 13
15
16. Cargo cults
• You are not your users
– Our peer group are Java/JVM performance specialists
– Our customers are (generally speaking) not specialists
• Not Invented Here (NIH)
– Very easy to fall into when you're a green field product
– We have a strict culture of "Avoid if at all possible"
Sunday, 8 September 13
16
17. Part II - Be a Ninja
• Automation
• Everything is a first class citizen
• Technical Debt
• Picking the right technology
• Usability
Sunday, 8 September 13
17
18. Automation
• It changes *everything*
• One-click release / deploy
– We took a long time to get there
– But we always worked on it each sprint
• Chef / Vagrant solves everything?
– No
– You need shell scripts, build tool skills, AWS skills,
networking skills, Linux skills, SSL skills...
Sunday, 8 September 13
18
19. Everything is a first class citizen
• Only as strong as your weakest link
• All tech should be treated 1st class
–
–
–
–
Sunday, 8 September 13
Your product code
Your website code
Your customer reporting code
Your accounting / E-Commerce code
19
20. Technical Debt
• Is a much bigger risk than people think
• It slows you down
• It makes you inflexible
• We focus a sprint ~1/month on this
Sunday, 8 September 13
20
21. Picking the right technology
• Follow the "Matt Raible" principle
– See his decision matrix on Java/JVM web frameworks
• Set out criteria
• Add weightings
• Run the numbers
• Prototype the top two
Sunday, 8 September 13
21
22. Usability
• Consumers are spoiled today
– Beautiful and useful UI/Ux, thanks Apple for the trend!
– They expect the same at work
• Poorly thought out Ux will kill your idea
– Your idea can get "lost" in the noise
• We hired an expert!
• But we failed on running studies / labs
Sunday, 8 September 13
22
23. Part III - Lessons from start-up life
• Minimum Viable Product (MVP)
• Being a business
• Culture
• Vultures, Vampires and Sharks
– And some good guys
• Technology
Sunday, 8 September 13
23
24. Minimum Viable Product
• Cold hearted capitalist
– "Whatever people will pay for"
• Hackernews Fanboy/girl
– "What I coded over the weekend"
• The perfectionist
– "When it's ready"
• The ideal scenario
– Gets you revenue and receives generally positive press
Sunday, 8 September 13
Sometimes a MVP is a Webpage that allows potential customers
to show intent
24
25. Being a business
• Identify if you need professional help
– Tech people aren't always good business people
• Get strong mentors
– Be prepared to spend equity on this
• Admin matters as much as product
– Invoicing, Accounting, Legal, Sales, Marketing etc
• Stick to your vision
Sunday, 8 September 13
25
26. Culture
• Culture varies massively
– Even in the so called meritocracy of the tech world
• Remote vs local teams
– Distributed teams are hard
– Technology can help
– Social infrastructure is far more important
• Hierarchies are minimal
– Act like "A Boss" and you'll quickly lose respect
• It's like a family
– Fight, forgive and move on
Sunday, 8 September 13
26
27. Vultures, Vampires and Sharks
• When things are looking tough
– You'll get 'rescue offers'
– It's just business, don't take it personally
– But don't take the 'offer'
• Angels are Devils in disguise
– Most VC's are just plain evil
– Do your research
• Lawyers are expensive
– They smile lots and have nice suits
– That suit is more than your monthly run rate
Sunday, 8 September 13
27
28. There are good guys
• Aimar Capital
– Moss Mosimann is an investor who gets it
– They actually mentor the start-up
• Crowell and Moring
– Lawyers who have a specialist arm for tech start-ups
– Guide you through Patents, Trademarks, Contracts etc
Sunday, 8 September 13
TODO More
28
29. Technology
• We had to chose a modern tech stack
– Asynchronous messaging
– Browser based UI that had great Ux
– Distributed
• Minimum reliability and scalability
– Could scale if need be
– Could failover if need be
• Security / Data protection
– SaaS service - don't divulge customer data
– Customer data needs to live georgraphically
Sunday, 8 September 13
29
31. Chef Report Card
• 7/10
• Positives
– Recipes galore!
• Java/JVM recipes
• PHP/Wordpress recipes
• MongoDB recipes...
• Negatives
– Inconsistent command line
– Fairly complex
– Doesn't do deletions
Sunday, 8 September 13
31
32. Sunday, 8 September 13
Think distributed node.js with a real VM and ployglot language
support
32
33. Vert.x 2.x
• 6/10
• Positives
– Websocket support
– Eventbus shared across
– Easy, no shared state
• CSP style concurrency
– Eventbus to the browser!
– Multiple JVM language support
• We used Groovy
Sunday, 8 September 13
TODO: Explain CSP
33
34. Vert.x 2.x
• Negatives
– NIH Logging
– Release a new version without supporting old version
– No security
• SSL support in hazelcast
• Not for eventbus traffic
• Architected for local data centres
– When we’re moving into the cloud
Sunday, 8 September 13
34
37. MongoDB Report Card
• 4/10
• Positives
– Document models
– Nice Java API
• Negatives
– No support for timezones other than UTC
– Security
• compiled own SSL-enabled daemon
– Difficult to sysadmin
– Election Algorithm broken
– constant reconnects
• Not an issue, but very confusing
Sunday, 8 September 13
37
38. Sunday, 8 September 13
We wanted functional programming and lambdas because we
were dealing with
asynchronous messaging (think handlers etc)
38
39. Groovy 2.x scorecard
• 5/10
• Positives
– Looks like Java
– Has fairly nice JSON and handler support
– Friendly devs, respond via twitter
• Negatives
– 2.0 was a joke (compiler broken etc)
– IDE fail
– Build system fail
Sunday, 8 September 13
We wanted
39
40. Sunday, 8 September 13
Directive based approach - true Javascript front end framework
40
41. Angular JS
• 8/10
• Positives
– Ability to implement early Html5 features
– Declarative
• Easy to understand and read
• Two-way data binding
– Structures your code into simple
– Client side templating
– Clean language separation vs templating
Sunday, 8 September 13
41
42. Angular JS
• Negatives
– Testing --> Testacular/Karma
• Requires node.js <blurgh>
– Google search gives you testicular cancer results
– Doesn’t fit the eventbus so well
• $scope.$apply
– Documentation/Stackoverflow presence
– People are familiar with jQuery, declarative is new to them.
– Javascript tooling sucks
• IDEs
• Libraries
• Maven integration
Sunday, 8 September 13
42
43. Summary
• Start-ups are very tough
– Beautiful and useful UI/Ux, thanks Apple for the trend!
– They expect the same at work
• Poorly thought out Ux will kill your idea
– Your idea can get "lost" in the noise
• We hired an expert!
• But we failed on running studies / labs
Sunday, 8 September 13
43