38
What every developer can learn from startups

What every developer can learn from startups

Embed Size (px)

DESCRIPTION

My talk on which aspects of agile work in startups and which don't, as well as some general rules of thumb for launching software projects

Citation preview

Page 1: What every developer can learn from startups

What every developer can learn from startups

Page 2: What every developer can learn from startups

/me #1

Got hooked on startups at Riot-ESearch for “riot on” on YouTube

Startup cult member since 30+ companies totalexpert on failure

Page 3: What every developer can learn from startups

/me #2

Do technical due diligence for investors get paid to criticize other's work

Keen on JavaScript the older I get, the more lazy I get

Page 4: What every developer can learn from startups

Why write code?

Page 5: What every developer can learn from startups

What drives developers?

Self actualizationRespect of others

Page 6: What every developer can learn from startups

What drives managers?

???Profit

Page 7: What every developer can learn from startups

What drives customers?

Value (for money)

Page 8: What every developer can learn from startups

Software development is like ...

Page 9: What every developer can learn from startups
Page 10: What every developer can learn from startups
Page 11: What every developer can learn from startups
Page 12: What every developer can learn from startups
Page 13: What every developer can learn from startups
Page 14: What every developer can learn from startups

… Biological Systems

Evolving, interacting systems

… that nobody quite understands

Everything somehow still works

… but may end up being a monster

Page 15: What every developer can learn from startups

How do projects get started?

Somebody thinks they know what others want

raise → build → sell

Should validate their assumption first

sell → build → raise?

Page 16: What every developer can learn from startups

Be Lazy

The only projects that get delivered on time and according to spec are the ones that never

get started at all

Page 17: What every developer can learn from startups

Customers #1

You're not in the service industry

The customer is not always right!Learn how to say NO, excessive customer collaboration results in bloat

37signals vs. Salesforce

Page 18: What every developer can learn from startups

Customers #2

Don't build just for one customer

Discover product market fitYou're building a long term relationship

Page 19: What every developer can learn from startups

The Team

Communication overhead to be avoided at all costs, this increases exponentially with team size

Cross functional teams are great, but smaller teams of specialized generalists are better

Page 20: What every developer can learn from startups

Rockstars and Ninjas

Developer output varies by an order of magnitude, so finding the best developers (who are nice people) is key

Page 21: What every developer can learn from startups

Expectations

It's all about managing themVery hard to do when requirements changeAlmost always means more work

Burn-down & burn-up charts

Page 22: What every developer can learn from startups
Page 23: What every developer can learn from startups
Page 24: What every developer can learn from startups

Milestones

Needed to achieve sense of accomplishment and self worth

Needed for invoicingHaving something working badly is better than having nothing that works well

Page 25: What every developer can learn from startups

Embarrassment

“If you are not embarrassed by the first version of your product, you’ve launched too late”

Reid Hoffmann, LinkedIn

Page 26: What every developer can learn from startups

Prototypes #1

Changes are easier to make early in the development cycle, but this gets progressively more difficult

Functional prototypes are great for conveying the big picture and user journey

Page 27: What every developer can learn from startups

Prototypes #2

Basis for a contractYou do need those sometimesWorks even when you are your own customer

Great for validating the customer

Page 28: What every developer can learn from startups

Features #1

Features are like sexLess is moreNot every piece of work can be described as a story or a feature

Page 29: What every developer can learn from startups

Features #2

You can think through a feature without implementing it

You can build a feature without rolling it out

Page 30: What every developer can learn from startups

Modularity #1

Monolithic systems are hard to reason about

The Unix philosophy is the way forwardWrite programs that do one thing and do it well. Write programs to work together.

Page 31: What every developer can learn from startups

Modularity #2

Creating reusable modules is the right thing to doDespite having no visible benefit to end users

Because you don't always want to scrap everything

Page 32: What every developer can learn from startups

Open Source

Give away everything you canPromotes your businessRecruiting toolMotivational aid

Page 33: What every developer can learn from startups

Technical Debt

“Eventual consequences of slapdash software architecture and hasty software development”

Do take on, as long as you know you're doing it

Page 34: What every developer can learn from startups

Failure

Failure is changeEmbrace itLearn from itKnow when to quit

Don't throw good money after bad

Page 35: What every developer can learn from startups

Distributed Teams

Increasing trendRockstars and Ninjas are on the road a lot

Meetings are evilTools can help

Page 36: What every developer can learn from startups

Operations & Metrics

Roll out updates quickly and often

Trust your developers

It's a numbers gameTrack everything you can

Page 37: What every developer can learn from startups

Summary

This is not an exact scienceUse whatever works for youThink about the bigger pictureEnjoy the process, not the end goal

Page 38: What every developer can learn from startups

Thank you!

@olegpodsechin

github.com/olegp