Download - 2011 04-20 0-60 in startup technology
0-60 IN STARTUP TECH
Monday June 6th
Daniel Doubrovkine
@dblockdotorghttp://code.dblock.org
STARTUP FOUNDERS
Job: Dream It
Carter
YOU (ME)
• Technical Co-Founder• Head / VP of Engineering• Lead Developer
Job: Build This
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”
DAY ONE: CODE NAME
• Create an Identity• Version 0.1
Job: Build This“Gravity”
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
DAY THREE: A PLACE FOR PROCESS
• Create Tasks• Assign Tasks• Start Tasks• Complete Tasks
Team 1 Team 2 Team 3
PivotalTracker Trac
+ Basecamp+ Redmine
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 >>>>>>>>>
DAY 4 AND 5: ACQUIRE KNOWLEDGE
• Domain Driven Design• Taxonomy• Specs• People
Team 1 Team 2 Team 3
People
DAY 5: DDD/SME/KB
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 …
CONCLUDING WEEK ZERO
WEEK 1, DAY 1: A PLAN
• Story: “Users can sign-up for beta”• ETA: EOW• Breakdown: ?
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)
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
WEEK 1, DAY 1: YOUR FIRST COMMIT
• Getting Started
WEEK 1, DAY 2: A FRIENDLY VISIT
• Bring Pastries• Tell Your Story• Be Impressed• Ask “Why?” at Least 3 Times• Owe One
4sq 10gen
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
WEEK 1, DAY 3: CHOOSE A STACK
Team 1 Team 2 Team 3
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
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
WEEK 1, DAY 4: CONTINUOUS DEPLOYMENT
• Dev• Staging• Production• Demo
Team 1 Team 2 Team 3
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.
HOW FAST ARE WE GOING?
• TGV
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
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
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