2011 04-20 0-60 in startup technology

27
0-60 IN STARTUP TECH Monday June 6 th Daniel Doubrovkine @ dblockdotorg http://code.dblock.org [email protected]

Upload: daniel-doubrovkine

Post on 17-Nov-2014

718 views

Category:

Technology


3 download

DESCRIPTION

Slides from 0-60 in startup technology fro

TRANSCRIPT

Page 1: 2011 04-20 0-60 in startup technology

0-60 IN STARTUP TECH

Monday June 6th

Daniel Doubrovkine

@dblockdotorghttp://code.dblock.org

[email protected]

Page 2: 2011 04-20 0-60 in startup technology

STARTUP FOUNDERS

Job: Dream It

Carter

Page 3: 2011 04-20 0-60 in startup technology

YOU (ME)

• Technical Co-Founder• Head / VP of Engineering• Lead Developer

Job: Build This

Page 4: 2011 04-20 0-60 in startup technology

WEEK ZERO: DAY ONE

What will you do?

“Dear ___,

Saw your excellent presentation at ___. I liked the Q&A and learned a bunch of new things.

I have a favor to ask. I’ve joined a NY startup, ___. We’re just starting, and I am hoping to do things ‘right’ from the start. I was wondering whether I could borrow someone’s time at ___ next week (yours or someone who works for you) and maybe bring 1-2 people with me to see how your code and tooling is organized.

-Me”

Page 5: 2011 04-20 0-60 in startup technology

DAY ONE: CODE NAME

• Create an Identity• Version 0.1

Job: Build This“Gravity”

Page 6: 2011 04-20 0-60 in startup technology

DAY TWO: A PLACE TO DOCUMENT

• Hosted by a 3rd Party• Free or Cheap• Private• Share• Backup Data

http://stackoverflow.com/questions/143321/best-hosted-wiki-solution-for-private-wikis

Team 1 Team 2 Team 3

Trac

Page 7: 2011 04-20 0-60 in startup technology

DAY THREE: A PLACE FOR PROCESS

• Create Tasks• Assign Tasks• Start Tasks• Complete Tasks

Team 1 Team 2 Team 3

PivotalTracker Trac

+ Basecamp+ Redmine

Page 8: 2011 04-20 0-60 in startup technology

PROCESS

Extreme Programming

(XP)Scrum Waterfall

Agile Not Agile

What do we do next?

What do we do during the next

month?

What are all the things we need to

do this year?

#FAILGrow this way >>>>>>>>>

Page 9: 2011 04-20 0-60 in startup technology

DAY 4 AND 5: ACQUIRE KNOWLEDGE

• Domain Driven Design• Taxonomy• Specs• People

Team 1 Team 2 Team 3

People

Page 10: 2011 04-20 0-60 in startup technology

DAY 5: DDD/SME/KB

Page 11: 2011 04-20 0-60 in startup technology

CONCLUDING WEEK ZERO

• Scheduled exciting meetings with other startups

• Created a place to write information, a team wiki

• Created a KB and a way to create new knowledge

• Created a place to manage and track work.

… I feel like we forgot something important …

Page 12: 2011 04-20 0-60 in startup technology

CONCLUDING WEEK ZERO

Page 13: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 1: A PLAN

• Story: “Users can sign-up for beta”• ETA: EOW• Breakdown: ?

Page 14: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 1: A PLACE TO PUT CODE

Subversion Git• Checkout• Commit• Branch• Trunk

• Fork• Pull• Push• Merge• Master

Team 1 Team 2 Team 3

+ TFS+ Mercurial (HG)

Page 15: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 1: PEER CODE REVIEWS

• Peer review of every check-in• Shared knowledge• Shared responsibility• It’s common to push back

Team 1 Team 2 Team 3

ReviewBoard Crucible

Page 16: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 1: YOUR FIRST COMMIT

• Getting Started

Page 17: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 2: A FRIENDLY VISIT

• Bring Pastries• Tell Your Story• Be Impressed• Ask “Why?” at Least 3 Times• Owe One

4sq 10gen

Page 18: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 3: PICK A TECHNOLOGY

• Your and Your Team’s Experience• Other People’s Experience• The Cutting Edge• Learn Something New

Team 1 Team 2 Team 3

It Failed Before It Worked Before It Looks Cool

Page 19: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 3: CHOOSE A STACK

Team 1 Team 2 Team 3

Page 20: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 4: IMPLEMENT “USERS CAN SIGN-UP”

• Test-Driven Development– Unit Tests– Integration Tests– System Tests– Regression Tests– Acceptance Tests

Team 1 Team 2 Team 3

Full CoverageRSPec, Jasmine, Selenium No Tests, Ever Unit and System

Tests

Page 21: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 4: CONTINUOUS INTEGRATION

• Build and run tests with every check-in

• E-mail the team.

Team 1 Team 2 Team 3

CIJoe Live Edit the Site CruiseControl

• Hudson / Jenkins• TeamCity

Page 22: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 4: CONTINUOUS DEPLOYMENT

• Dev• Staging• Production• Demo

Team 1 Team 2 Team 3

Page 23: 2011 04-20 0-60 in startup technology

WEEK 1, DAY 5: DEMO DAY

• Team Wiki, KB, PM• Demo! Demo! Demo!• Story: “Users can sign-up for beta”

– Developers know how to get started.– Developers can commit code with a peer code

review.– Every time a developer checks in code, continuous

integration runs tests and e-mails results to the team.

– Every time continuous integration executed tests successfully, a developer can push the code to a staging environment.

Page 24: 2011 04-20 0-60 in startup technology

HOW FAST ARE WE GOING?

• TGV

Page 25: 2011 04-20 0-60 in startup technology

A 2 AND A 3 WEEK SPRINT

• Stories are user-facing, always• Under-promise, over-deliver• Focus on making developers happy• Don’t build technical debt• Best management is one that nobody

notices

Page 26: 2011 04-20 0-60 in startup technology

HIRING

• People make all the difference.• There’re excellent developers who are a bad

cultural fit.• There’re bad developers who are an excellent

cultural fit.• Hiring via open-source.

Team 1 Team 2 Team 3

2x Very Visual Front-EndPhD in Algorithms

2x Ruby/Rails Developers1x Database Guy

2x PHP Developers4x Developer

1x Developer in Ops

Page 27: 2011 04-20 0-60 in startup technology

HOW FAST IS 60 DAYS?

http://www.youtube.com/watch?v=kDd9vlnqRuo&feature=related

E-Mail: [email protected] Blog: http://code.dblock.org < Slides Here

http://iwny.co < Recorded SessionsTwitter: @dblockdotorg