The Lean Start-up Ninja

yrekazzyzxamuckInternet and Web Development

Dec 4, 2013 (3 years and 4 months ago)

109 views

The Lean Start
-
up Ninja

Martijn Verburg (@karianna)

Ben Evans (@kittylyst)

http://www.jclarity.com
-

@jclarity

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

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


Hotspot (JVM) internals


Linux internals


Virtualisation technologies


vert.x


Angular.js & pals


MongoDB


etc...

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

Part I
-

Lean and Agile


Why it's important


Why the principles matter


Implementation in your culture


Cargo Cult is bad

So why "Lean" and "Agile"?


People bang on about this....



But why is it important in start
-
up life?


Is it not important elsewhere?

Why "Lean" and "Agile"?

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

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"

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

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....

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"

Part II
-

Be a Ninja


Automation


Everything is a first class citizen


Technical Debt


Picking the right technology


Usability

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...

Everything is a first class citizen


Only as strong as your weakest link



All tech should be treated 1st class


Your product code


Your website code


Your customer reporting code


Your accounting / E
-
Commerce code

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

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

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

Part III
-

Lessons from start
-
up life


Minimum Viable Product (MVP)


Being a business


Culture


Vultures, Vampires and Sharks


And some good guys


Technology

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

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

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

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

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

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

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

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

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

MongoDB Report Card

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


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

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

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

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

Often you will feel like this



But at least you don't work for



Built for the Cloud. Works in the Enterprise.

http://
www.jclarity.com

Martijn Verburg (@karianna)

Ben Evans (@kittylyst)