0
Get  Faster – While You’re Getting Better Solving the Tension Between Speed and Quality in Software Product Development
The Race Goes To the Swift and The Bread Goes to the Wise
What’s the Right Product? <ul><li>You may not know until you’ve tried and failed a couple times – which is why product dev...
PayPal:  “was really not founded to do payments at all.” Flickr:  “…was kind of a lark.  It was a side project we built wh...
Maximize Your Advantages <ul><li>Flexibility </li></ul><ul><li>Speed </li></ul><ul><li>Lack of Bureaucracy </li></ul>…  an...
<ul><li>“ Reduce.   Do as little as possible to get what you have to get done.  Do less of it; get it done.  If you’ve got...
Cost of Defects
Requirements Are Dead <ul><li>Your product will change </li></ul><ul><li>You need to get to market fast </li></ul><ul><li>...
<ul><li>The trick is not to try harder avoid problems in the first place, but increase your effectiveness and the efficien...
Long Live Agile <ul><li>Lean and Mean </li></ul><ul><li>Release NOW </li></ul><ul><li>Short, Fast Iterations (aka “sprints...
Build Safety Nets <ul><li>What’s a Safety Net? </li></ul>Hint: It’s not just a practice that allows you to sleep better at...
Source Control <ul><li>Check in early and often </li></ul><ul><li>Leave nothing out </li></ul><ul><li>TONS of options: CVS...
Issue Tracking <ul><li>Set up a common, shared repository for bugs, issues, feature requests, tasks, etc. </li></ul><ul><l...
One-Click Deployment <ul><li>Get as close as you can to being able to build and deploy your product in  ONE CLICK </li></u...
Continuous Integration <ul><li>This is a software service that runs your one-click build - automatically </li></ul><ul><li...
91% of successful  Meerkats  use Continuous Integration
Unit Tests / Automated Tests <ul><li>Myth: Unit Tests Slow You Down </li></ul><ul><li>Myth: Unit Tests Are Only Effective ...
<ul><li>Moving From the  </li></ul><ul><li>Tactical  to the  Strategic </li></ul>
<ul><li>Hire Selectively </li></ul><ul><li>Spread Ownership </li></ul><ul><li>Shared Vision and Goals </li></ul><ul><li>Be...
If You Aren’t Leveraging Other People’s Code,  You’re Losing <ul><li>“ Roll Your Own” = “ I’ll be looking for a job in 6 m...
Remoting <ul><li>Do Distributed Teams Work For Startups? </li></ul><ul><li>It’s a Tradeoff between Expertise, Communicatio...
Question Received Wisdom <ul><li>“ You need a project manager” </li></ul><ul><li>“ You need to be solid and stable before ...
Thank You, and Good Luck! Anthony Stevens [email_address]
Upcoming SlideShare
Loading in...5
×

Get Faster - While You're Getting Better

1,180

Published on

Presentation given 4/16/08 by Anthony Stevens at the Seattle Tech Startups monthly meetup

Published in: Business, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

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

No notes for slide
  • Transcript of "Get Faster - While You're Getting Better"

    1. 1. Get Faster – While You’re Getting Better Solving the Tension Between Speed and Quality in Software Product Development
    2. 2. The Race Goes To the Swift and The Bread Goes to the Wise
    3. 3. What’s the Right Product? <ul><li>You may not know until you’ve tried and failed a couple times – which is why product development for startups is so challenging </li></ul>
    4. 4. PayPal: “was really not founded to do payments at all.” Flickr: “…was kind of a lark. It was a side project we built while we were in the process of building [a game].” Hotmail started as a web-enabled database/PIM.
    5. 5. Maximize Your Advantages <ul><li>Flexibility </li></ul><ul><li>Speed </li></ul><ul><li>Lack of Bureaucracy </li></ul>… and Minimize Your Disadvantages <ul><li>Time </li></ul><ul><li>Money </li></ul><ul><li>Uncertainty </li></ul>
    6. 6. <ul><li>“ Reduce. Do as little as possible to get what you have to get done. Do less of it; get it done. If you’ve got two things that you need to put together, take away until they go together. Don’t add another thing. Because you and understand it better; you can analyze it more cleanly. The UI will be easier. Doing less is so important. ” </li></ul><ul><li>-- Joshua Schachter, founder of delicious </li></ul>
    7. 7. Cost of Defects
    8. 8. Requirements Are Dead <ul><li>Your product will change </li></ul><ul><li>You need to get to market fast </li></ul><ul><li>Your expertise is in technology or sales, not technical writing </li></ul>
    9. 9. <ul><li>The trick is not to try harder avoid problems in the first place, but increase your effectiveness and the efficiency with which you dispose of the problems that come up </li></ul>
    10. 10. Long Live Agile <ul><li>Lean and Mean </li></ul><ul><li>Release NOW </li></ul><ul><li>Short, Fast Iterations (aka “sprints”) </li></ul><ul><li>Talk To Customers </li></ul><ul><li>YAGNI </li></ul><ul><li>Simple >>> Complex </li></ul><ul><li>Measure Progress By Working Code </li></ul>
    11. 11. Build Safety Nets <ul><li>What’s a Safety Net? </li></ul>Hint: It’s not just a practice that allows you to sleep better at night.
    12. 12. Source Control <ul><li>Check in early and often </li></ul><ul><li>Leave nothing out </li></ul><ul><li>TONS of options: CVS, SVN, Git, TFS, Vault </li></ul><ul><li>Backing up to thumb drive is NOT source control! </li></ul><ul><li>Best Practice: Tonight, Before You Go To Bed, Set Up An Account With Unfuddle.com </li></ul>
    13. 13. Issue Tracking <ul><li>Set up a common, shared repository for bugs, issues, feature requests, tasks, etc. </li></ul><ul><li>Lots of freeware available to fill this need </li></ul><ul><li>Review often </li></ul><ul><li>Best Practice: Write ACTIONABLE items </li></ul><ul><li>in your lists. </li></ul>
    14. 14. One-Click Deployment <ul><li>Get as close as you can to being able to build and deploy your product in ONE CLICK </li></ul><ul><li>Source Code </li></ul><ul><li>Build Your Database </li></ul><ul><li>Insert Test Data </li></ul><ul><li>Deploy to Server / Create Install Files / etc. </li></ul><ul><li>Best Practice: Every Week, Remove One Manual Step From Your Build </li></ul>
    15. 15. Continuous Integration <ul><li>This is a software service that runs your one-click build - automatically </li></ul><ul><li>AKA “nightly builds”, “automated builds” </li></ul><ul><li>Cruise Control, Perforce, many others </li></ul><ul><li>Best Practice: Run Builds On Every Commit, and Fix Problems Immediately </li></ul>
    16. 16. 91% of successful Meerkats use Continuous Integration
    17. 17. Unit Tests / Automated Tests <ul><li>Myth: Unit Tests Slow You Down </li></ul><ul><li>Myth: Unit Tests Are Only Effective If You Have 95% Code Coverage </li></ul><ul><li>Focus on the Squirrels </li></ul><ul><li>Like A Good Virus, Unit Tests Should Multiply Over Time </li></ul><ul><li>Best Practice: Include Unit Tests In Your Continuous Integration Builds </li></ul>
    18. 18. <ul><li>Moving From the </li></ul><ul><li>Tactical to the Strategic </li></ul>
    19. 19. <ul><li>Hire Selectively </li></ul><ul><li>Spread Ownership </li></ul><ul><li>Shared Vision and Goals </li></ul><ul><li>Be Honest </li></ul><ul><li>Have Empathy </li></ul><ul><li>Constant Feedback and Communication </li></ul>Peopleware: Good People Are Always More Important Than A Good Idea
    20. 20. If You Aren’t Leveraging Other People’s Code, You’re Losing <ul><li>“ Roll Your Own” = “ I’ll be looking for a job in 6 months ” </li></ul><ul><li>Use Frameworks </li></ul><ul><li>Find and Use Cheap IT Outsourcing </li></ul><ul><li>Use Good Tools </li></ul>
    21. 21. Remoting <ul><li>Do Distributed Teams Work For Startups? </li></ul><ul><li>It’s a Tradeoff between Expertise, Communication and Coordination –but which is most important? </li></ul><ul><li>There is no best answer </li></ul>
    22. 22. Question Received Wisdom <ul><li>“ You need a project manager” </li></ul><ul><li>“ You need to be solid and stable before you release” </li></ul><ul><li>“ Language ‘X’ is the only good choice” </li></ul><ul><li>“ You need a design spec” </li></ul><ul><li>“ You need to staff up” </li></ul><ul><li>“ You need funding” </li></ul><ul><li>“ You need to own your hardware” </li></ul>
    23. 23. Thank You, and Good Luck! Anthony Stevens [email_address]
    1. A particular slide catching your eye?

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

    ×