34
TECH FROM THE GROUND UP Summer Program – Monday, July 30 Daniel Doubrovkine (dB.) @dblockdotorg

GeneralAssemb.ly Summer Program: Tech from the Ground Up

Embed Size (px)

Citation preview

Page 1: GeneralAssemb.ly Summer Program: Tech from the Ground Up

TECH FROM THE GROUND UP

Summer Program – Monday, July 30

Daniel Doubrovkine (dB.)

@dblockdotorg

Page 2: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Take a good idea …

Page 3: GeneralAssemb.ly Summer Program: Tech from the Ground Up

… and make working software

Page 4: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 0

What will you do?

“Dear ___,

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

Sincerely,

-Me”

Page 5: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 1

Pick a Code Name

this is “Gravity”

Page 6: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 2

Documents Go Here

Hosted

Free or Cheap

Private

Shareable

Backed Up

Passwords

Page 7: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 3

Tasks Go Here

Create Tasks

Take Tasks

Start Tasks

Complete Tasks

Page 8: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 4

A Bit of 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?

#FAIL Grow this way

Page 9: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 5

Learning

Domain Driven Design

Taxonomy

Specifications

Wireframes

People

Page 10: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Week 1

Scheduled exciting meetings with other startups

Created a place to store information, a team wiki

Created a KB and a way to create new knowledge

Created a place to manage and track work.

Page 11: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Week-End

Sustainable Pace

Page 12: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 1

A Plan

Story: Users Can Sign Up

Page 13: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 1

Source Control

Repository

Commit

Push

Pull

Merge

Page 14: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 1

Code Reviews

Peer review of every check-in

Shared knowledge

Shared responsibility

It’s common to push back

Reviewboard

Crucible

Page 15: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 1

Your First Commit

README

GettingStarted.md

Page 16: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 2

A Friendly Visit

2-3 People

Bring Pastries

Tell Your Story

Be Impressed

Ask “Why?” 3x

Owe One

Page 17: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 3: Choosing Technology

Page 18: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Stacks

Page 19: GeneralAssemb.ly Summer Program: Tech from the Ground Up

A Web Stack

Django

Python

Apache

MySQL

Linux

Rackspace

Backbone.js

Rails

Ruby

MongoDB

Heroku

AWS

Page 20: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Stacks

Help You Focus on The Domain

Classify Problems

Offer Generic Solutions

Provide Consistent Experience

Map Software Evolution

Enable Reuse of Skills

Page 21: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Big Company: Bakeoff

Identify Candidates ASP.NET / RoR / J2EE / LAMP

Develop Metrics scalability, complexity, cost

Gather Data feature matrix, metrics data

Compare =SUM(A:Z)

Pick a Winner =MAX(SUM(A:Z))

Page 22: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Alternatives: Personal Favorite

Page 23: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Alternatives: Trustworthy People

It worked before

It didn’t work before

It’s new and shiny

Someone I trust uses it

Page 24: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Alternatives: Simplicity

The Emperor’s Old Clothes Charles Hoare, 1981

http://dl.acm.org/citation.cfm?id=358561&bnc=1

Page 25: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Alternatives: Developer Happiness

Developers Are Happy with

Their Own Choices

Cutting Edge Technology

Page 26: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Does it really matter?

Try It … Iterate … Keep It … Toss It

Easy to Learn

Frustration-less

Quick to Leverage

Vibrant Community

Elegant Solutions

Time

Results

Fighting

Learning

Page 27: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 4

Implement a Story w/ Tests

Setup Continuous Integration

“Writing tests makes development faster, not

slower from day one four.”

Page 28: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 4

Continuous Deployment

Development

Staging

Production

Demo

Page 29: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Day 5

Demo Day!

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, staging gets

the latest code.

We can deploy to production by hitting a button!

Page 30: GeneralAssemb.ly Summer Program: Tech from the Ground Up

A Sprint: Week 3 & 4

User-Facing Stories

Under-Promise and Over-Deliver

Make People Happy

Keep Things Simple

Don’t Acquire Technical Debt

Page 31: GeneralAssemb.ly Summer Program: Tech from the Ground Up

People

People make all the difference

Cultural fit is more important than technical abilities

There’re excellent developers that are a bad cultural fit

There’re bad developers that are an excellent cultural fit

Generalists are Often Better than Specialists

Pigs, not Chickens

Page 32: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Your Resume

Passion to Professionalism

Examples of Doing

Consistent Delivery

Demonstrable Experience

Strong References

Page 33: GeneralAssemb.ly Summer Program: Tech from the Ground Up

You

Doer

Humble

Listens

Self-Sufficient

Thorough

Page 34: GeneralAssemb.ly Summer Program: Tech from the Ground Up

Questions

name: Daniel Doubrovkine (aka. dB.)

company: http://art.sy

twitter: @dblockdotorg

blog: http://code.dblock.org

email: [email protected]

slides: http://slideshare.net/dblockdotorg