Get shit doneProgramming tips for startups
Software development processEnterprise          Early stage startupRequirements     Requi-      ArchitectureArchitecture  ...
Architecture & Design
Keep pen and paper at handits faster than iPad, Omnigraffle and Balsamiqcombined
Technology: to learn or to do?If in doubt, go with whatever you are mostfamiliar with
My technology choices                          ClickNotifi  Android      Java          RoR   Java        Play  Python    F...
Unknowns firstfigure out parts you are least certain will work
# Tweaking (2 days and counting)* 49d6abb - preparation for deployment (3 days ago)* 7fe3ff7 - changes in links (3 days ag...
Framework masturbationBuilding framework is kinda pleasant but of littleuse
Implementation
Choose your featuresYou cant have everything
Features● What do you want to achieve?● Tweaks  ○ UI  ○ Refactoring  ○ Performance● Extensions  ○   Strategic - script exe...
Is empty text editor scaring you?Start with whatever comes to your mind!
class ImportantLink      :original,       :company,       :generated_link,       :nameend
Become StarShip programmer!Write Simple and Sound code
Simple● Simple algorithms  ○   Temporal expression detection  ○   Siri  ○   Machine learning  ○   String matching● One way...
Sound - eat with fork and knife● use descriptive function and parameter   namescfoundp vs charFoundInBuffer● use constants...
Sound - be nice to teammates● make methods read like a storyvoid loadForm() {  loadData();  enforceSecurity();  adjustCont...
Sound - dont show off● use Object Orientation sparingly  ○ shallow hierarchies  ○ carefully with polymorphism● internal AP...
Isolate and iterateSmall methods = small problems# vanilla   guidself.guid   = UUID.random_create.to_s# vanilla   gid with...
Dont accept paymentsFake it till you make it
Your code is like weightedcompanion cubeBurn it as needed
The best solution is NOT most flexible one; normost performant or feature-completeBest solution is available NOW
Thank youmichal.kostic@gmail.com www.michalkostic.com
Get shit done
Upcoming SlideShare
Loading in...5
×

Get shit done

1,220

Published on

Software development tips for startups

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,220
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Get shit done"

  1. 1. Get shit doneProgramming tips for startups
  2. 2. Software development processEnterprise Early stage startupRequirements Requi- ArchitectureArchitecture rementsDesignImplementation Design Implementation
  3. 3. Architecture & Design
  4. 4. Keep pen and paper at handits faster than iPad, Omnigraffle and Balsamiqcombined
  5. 5. Technology: to learn or to do?If in doubt, go with whatever you are mostfamiliar with
  6. 6. My technology choices ClickNotifi Android Java RoR Java Play Python Framework Bash Backbone.js
  7. 7. Unknowns firstfigure out parts you are least certain will work
  8. 8. # 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 stillneeds to be checked how to disable deliveries) my links works(4 daysago)* e206708 - UI makeover of new link, links to "new link" and "newrecipient" shorter link guid (allows for 100s of concurrent links persecond 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 daysago)# Core (24 hours)* 0d35fd0 - extract guid from path request image from server (6 daysago)* 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, basicform validation (6 days ago)* 88319c5 - initial commit - standard CRUD is working, started workingon javascript functionality (7 days ago)
  9. 9. Framework masturbationBuilding framework is kinda pleasant but of littleuse
  10. 10. Implementation
  11. 11. Choose your featuresYou cant have everything
  12. 12. 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
  13. 13. Is empty text editor scaring you?Start with whatever comes to your mind!
  14. 14. class ImportantLink :original, :company, :generated_link, :nameend
  15. 15. Become StarShip programmer!Write Simple and Sound code
  16. 16. Simple● Simple algorithms ○ Temporal expression detection ○ Siri ○ Machine learning ○ String matching● One way to do things● Make it obvious
  17. 17. Sound - eat with fork and knife● use descriptive function and parameter namescfoundp vs charFoundInBuffer● use constants/variables for literals86400000 vs MILLIS_IN_DAY vs jobPeriod
  18. 18. Sound - be nice to teammates● make methods read like a storyvoid loadForm() { loadData(); enforceSecurity(); adjustControls();}
  19. 19. Sound - dont show off● use Object Orientation sparingly ○ shallow hierarchies ○ carefully with polymorphism● internal API● conservative extensions
  20. 20. 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)
  21. 21. Dont accept paymentsFake it till you make it
  22. 22. Your code is like weightedcompanion cubeBurn it as needed
  23. 23. The best solution is NOT most flexible one; normost performant or feature-completeBest solution is available NOW
  24. 24. Thank youmichal.kostic@gmail.com www.michalkostic.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×