get shit done

25
Get shit done Programming tips for startups

Upload: michal-kostic

Post on 13-Jul-2015

1.174 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Get shit done

Get shit doneProgramming tips for startups

Page 2: Get shit done

EnterpriseRequirementsArchitectureDesignImplementation

Software development process

Early stage startupRequi-rements

Architecture

Design Implementation

Page 3: Get shit done

Architecture & Design

Page 4: Get shit done

Keep pen and paper at handit's faster than iPad, Omnigraffle and Balsamiq combined

Page 5: Get shit done

Technology: to learn or to do?If in doubt, go with whatever you are most familiar with

Page 6: Get shit done

My technology choices

AndroidJava

PythonBash

JavaPlay

FrameworkBackbone.js

RoR

ClickNotifi

Page 7: Get shit done

Unknowns firstfigure out parts you are least certain will work

Page 8: Get shit done

# Tweaking (2 days and counting)* 49d6abb - preparation for deployment (3 days ago) * 7fe3ff7 - changes in links (3 days ago) * c8ea33e - proper handling of link update (3 days ago) * 9d61962 - logout link (3 days ago) * e2f0289 - click count mailing kinda works (but configuration still needs to be checked how to disable deliveries) my links works (4 days ago) * e206708 - UI makeover of new link, links to "new link" and "new recipient" shorter link guid (allows for 100s of concurrent links per second but not truly globally unique) twitter menu header (4 days ago) # Infrastructure (1 day)* d59971d - user authentication via devise (5 days ago) * 10313fd - mailing notifications, starting with devise (users) (5 days ago) # Core (24 hours)* 0d35fd0 - extract guid from path request image from server (6 days ago) * 1a770c9 - serve gif file from url (6 days ago) * d00d93a - fix: removed "-" from guid (6 days ago) * 0e23473 - link tagging works, tagged link is saved to server, basic form validation (6 days ago) * 88319c5 - initial commit - standard CRUD is working, started working on javascript functionality (7 days ago)

Page 9: Get shit done

Framework masturbationBuilding framework is kinda pleasant but of little use

Page 10: Get shit done
Page 11: Get shit done

Implementation

Page 12: Get shit done

Choose your featuresYou can't have everything

Page 13: Get shit done

Features

● What do you want to achieve?

● Tweaks○ UI○ Refactoring○ Performance

● Extensions○ Strategic - script execution○ User required - FTP○ Fun - string search○ Catching up - HTML highlighting○ Bragging - GitHub client

Page 14: Get shit done

Is empty text editor scaring you?Start with whatever comes to your mind!

Page 15: Get shit done

class ImportantLink

:original, \:company, \ :generated_link, \:name

end

Page 16: Get shit done

Become StarShip programmer!Write Simple and Sound code

Page 17: Get shit done

Simple

● Simple algorithms○ Temporal expression detection○ Siri○ Machine learning○ String matching

● One way to do things

● Make it obvious

Page 18: Get shit done

Sound - eat with fork and knife

● use descriptive function and parameter names

cfoundp vs charFoundInBuffer

● use constants/variables for literals86400000 vs MILLIS_IN_DAY vs jobPeriod

Page 19: Get shit done

Sound - be nice to teammates

● make methods read like a story

void loadForm() {loadData();enforceSecurity();adjustControls();

}

Page 20: Get shit done

Sound - don't show off

● use Object Orientation sparingly○ shallow hierarchies○ carefully with polymorphism

● internal API

● conservative extensions

Page 21: Get shit done

Isolate and iterateSmall methods = small problems

# vanilla guidself.guid = UUID.random_create.to_s# vanilla gid without dashself.guid = UUID.random_create.to_s.gsub("\-", "")# short & sweet url shortener-likeself.guid = ("%d%d" % [rand(1000),Time.now.to_i]).to_i.to_s(36)

Page 22: Get shit done

Don't accept paymentsFake it till you make it

Page 23: Get shit done

Your code is like weighted companion cubeBurn it as needed

Page 24: Get shit done

The best solution is NOT most flexible one; nor most performant or feature-complete

Best solution is available NOW

Page 25: Get shit done

Thank [email protected]

www.michalkostic.com