SlideShare a Scribd company logo
1 of 15
Startups and Product Management
The concept of Product Entropy


                            Amarpreet Kalkat
Why
Most technology startups started by engineers



Inherent strengths in engineering, not as much
     in product design or commercialization

       Does not apply to all engineers
Who Am I
Co-founder @ Ciafo. Co-creator of Frrole & Travelomy

   Have built 8+ internet products, 3 from scratch

Frrole pseudo-mentioned on WSJ, Forbes; TNW called
    Frrole top tweets better than Twitter top trends
#1
Product Definition
 Fluid vs Concrete
#2
Product Roadmap
  Exist || !Exist
#3
Product Thinking
 Input vs Output
 Effort vs Impact
#4
       Goal
 Maximizing overall
   business value,
given the constraints
#5
     Strategy
Product vs Brand vs
     Execution
#6
      Approach
Playing to your strength
#7
        Focus
Product you are building
           vs
  the solution you are
         creating
#8
    Catch
Not planning for
   execution
Entropy
Thermodynamics: A property used to determine the
  energy not available for work in a thermodynamic
  process.

Statistics: A measure of the disorder of a closed
  system.

Information Theory: A measure of the uncertainty
   associated with a random variable.
Product Entropy
The unnecessary work done by
           a user
 to accomplish his objective
is the entropy of your product.
Thanks.
@amarpreetkalkat
   @frrole
The Cathedral And The Bazaar Rules
1.    Every good work of software starts by scratching a developer’s personal itch.
2.    Good programmers know what to write. Great ones know what to rewrite (and reuse).
3.    “Plan to throw one away; you will, anyhow.”
4.    If you have the right attitude, interesting problems will find you.
5.    When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
6.    Treating your users as co-developers is your least-hassle route to rapid code improvement and effective
      debugging.
7.    Release early. Release often. And listen to your customers.
8.    Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and
      the fix obvious to someone.
9.    Smart data structures and dumb code works a lot better than the other way around.
10.   If you treat your beta-testers as if they’re your most valuable resource, they will respond by becoming your most
      valuable resource.
11.   The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is
      better.
12.   Often, the most striking and innovative solutions come from realizing that your concept of the problem was
      wrong.
13.   “Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing
      more to take away.”
14.   Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
15.   When writing gateway software of any kind, take pains to disturb the data stream as little as possible-and never
      throw away information unless the recipient forces you to!
16.   When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
17.   A security system is only as secure as its secret. Beware of pseudo-secrets.
18.   To solve an interesting problem, start by finding a problem that is interesting to you.
19.   Provided the development coordinator has a communications medium at least as good as the Internet, and
      knows how to lead without coercion, many heads are inevitably better than one.

More Related Content

What's hot

20171104 idea generation for fun and profit
20171104   idea generation for fun and profit20171104   idea generation for fun and profit
20171104 idea generation for fun and profitSharon Liu
 
Hardware hacking for coders
Hardware hacking for codersHardware hacking for coders
Hardware hacking for coderscatgeorge
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschapMartijn Dashorst
 
Things senior developers should know
Things senior developers should knowThings senior developers should know
Things senior developers should knowHanokh Aloni
 
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012TEST Huddle
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software EngineeringLeyla Bonilla
 
Psychology and Engineering of Testing
Psychology and Engineering of TestingPsychology and Engineering of Testing
Psychology and Engineering of TestingIlari Henrik Aegerter
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Jorge López-Lago
 
EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...
EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...
EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...Iosif Itkin
 
7 lessons learned building high availability / performance systems - CM2015
7 lessons learned building high availability / performance systems - CM20157 lessons learned building high availability / performance systems - CM2015
7 lessons learned building high availability / performance systems - CM2015Francesco Degrassi
 

What's hot (11)

20171104 idea generation for fun and profit
20171104   idea generation for fun and profit20171104   idea generation for fun and profit
20171104 idea generation for fun and profit
 
Hardware hacking for coders
Hardware hacking for codersHardware hacking for coders
Hardware hacking for coders
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschap
 
Things senior developers should know
Things senior developers should knowThings senior developers should know
Things senior developers should know
 
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
 
Effort estimation
Effort estimationEffort estimation
Effort estimation
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
Psychology and Engineering of Testing
Psychology and Engineering of TestingPsychology and Engineering of Testing
Psychology and Engineering of Testing
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)
 
EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...
EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...
EXTENT-2017: Gap Testing: Combining Diverse Testing Strategies for Fun and Pr...
 
7 lessons learned building high availability / performance systems - CM2015
7 lessons learned building high availability / performance systems - CM20157 lessons learned building high availability / performance systems - CM2015
7 lessons learned building high availability / performance systems - CM2015
 

Similar to Startups & the Product Management Perspective

564 Class Notes July 27, 2010
564 Class Notes July 27, 2010564 Class Notes July 27, 2010
564 Class Notes July 27, 2010Stephanie Magleby
 
FOSS development collaboration
FOSS development collaborationFOSS development collaboration
FOSS development collaborationTruong Tuan
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
How to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a businessHow to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a businessProvectus
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsSteven Smith
 
How to find the best technical partnes for your startup
How to find the best technical partnes for your startup How to find the best technical partnes for your startup
How to find the best technical partnes for your startup DeSmart Agile Software House
 
Developing on large scale applications
Developing on large scale applicationsDeveloping on large scale applications
Developing on large scale applicationsAdrian IORGU
 
Agile product development
Agile product developmentAgile product development
Agile product developmentBrenn Hill
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent CerveauTheFamily
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol PrzystalskiDataScienceConferenc1
 
What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?BILL METANGMO TSOBZE
 
Build your mobile app from a to z presentation
Build your mobile app from a to z presentationBuild your mobile app from a to z presentation
Build your mobile app from a to z presentationSeyedmostafa Safavi
 
Fru 2022 | Tech Trends, Themes, Thoughts, Perspectives and Predictions
Fru 2022 | Tech Trends, Themes, Thoughts, Perspectives and PredictionsFru 2022 | Tech Trends, Themes, Thoughts, Perspectives and Predictions
Fru 2022 | Tech Trends, Themes, Thoughts, Perspectives and PredictionsFru Louis
 

Similar to Startups & the Product Management Perspective (20)

564 Class Notes July 27, 2010
564 Class Notes July 27, 2010564 Class Notes July 27, 2010
564 Class Notes July 27, 2010
 
FOSS development collaboration
FOSS development collaborationFOSS development collaboration
FOSS development collaboration
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
How to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a businessHow to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a business
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
How to find the best technical partnes for your startup
How to find the best technical partnes for your startup How to find the best technical partnes for your startup
How to find the best technical partnes for your startup
 
Developing on large scale applications
Developing on large scale applicationsDeveloping on large scale applications
Developing on large scale applications
 
Agile product development
Agile product developmentAgile product development
Agile product development
 
AntiPatterns
AntiPatternsAntiPatterns
AntiPatterns
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
 
What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?
 
Build your mobile app from a to z presentation
Build your mobile app from a to z presentationBuild your mobile app from a to z presentation
Build your mobile app from a to z presentation
 
Binary crosswords
Binary crosswordsBinary crosswords
Binary crosswords
 
Fru 2022 | Tech Trends, Themes, Thoughts, Perspectives and Predictions
Fru 2022 | Tech Trends, Themes, Thoughts, Perspectives and PredictionsFru 2022 | Tech Trends, Themes, Thoughts, Perspectives and Predictions
Fru 2022 | Tech Trends, Themes, Thoughts, Perspectives and Predictions
 
Better the devil you know
Better the devil you knowBetter the devil you know
Better the devil you know
 
Design [Autosaved]
Design [Autosaved]Design [Autosaved]
Design [Autosaved]
 
Data Mining & Engineering
Data Mining & EngineeringData Mining & Engineering
Data Mining & Engineering
 
From open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysferaFrom open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysfera
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Startups & the Product Management Perspective

  • 1. Startups and Product Management The concept of Product Entropy Amarpreet Kalkat
  • 2. Why Most technology startups started by engineers Inherent strengths in engineering, not as much in product design or commercialization Does not apply to all engineers
  • 3. Who Am I Co-founder @ Ciafo. Co-creator of Frrole & Travelomy Have built 8+ internet products, 3 from scratch Frrole pseudo-mentioned on WSJ, Forbes; TNW called Frrole top tweets better than Twitter top trends
  • 5. #2 Product Roadmap Exist || !Exist
  • 6. #3 Product Thinking Input vs Output Effort vs Impact
  • 7. #4 Goal Maximizing overall business value, given the constraints
  • 8. #5 Strategy Product vs Brand vs Execution
  • 9. #6 Approach Playing to your strength
  • 10. #7 Focus Product you are building vs the solution you are creating
  • 11. #8 Catch Not planning for execution
  • 12. Entropy Thermodynamics: A property used to determine the energy not available for work in a thermodynamic process. Statistics: A measure of the disorder of a closed system. Information Theory: A measure of the uncertainty associated with a random variable.
  • 13. Product Entropy The unnecessary work done by a user to accomplish his objective is the entropy of your product.
  • 15. The Cathedral And The Bazaar Rules 1. Every good work of software starts by scratching a developer’s personal itch. 2. Good programmers know what to write. Great ones know what to rewrite (and reuse). 3. “Plan to throw one away; you will, anyhow.” 4. If you have the right attitude, interesting problems will find you. 5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor. 6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging. 7. Release early. Release often. And listen to your customers. 8. Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone. 9. Smart data structures and dumb code works a lot better than the other way around. 10. If you treat your beta-testers as if they’re your most valuable resource, they will respond by becoming your most valuable resource. 11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better. 12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong. 13. “Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.” 14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected. 15. When writing gateway software of any kind, take pains to disturb the data stream as little as possible-and never throw away information unless the recipient forces you to! 16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend. 17. A security system is only as secure as its secret. Beware of pseudo-secrets. 18. To solve an interesting problem, start by finding a problem that is interesting to you. 19. Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.