This site attempts to provide a broad overview of the Big Ideas relevant to Software Development. See the Introduction for further information about the purpose and scope of the work.
If you'd prefer, you can download the site's contents as an ebook, formatted to the EPUB standard.
The site's content is grouped into the following major sections.
This section explains the purpose of the site, and provides some context for the Big Ideas that follow.
|1.||This Thinking Business|
These ideas are so foundational that they are relevant to most or all roles, and in most or all phases of software development.
|3.||The Inconvenient Nature of Software Development|
|4.||Software Development is a Balancing Act|
|5.||Create Value for Customers|
|6.||Automate Repetitive Tasks|
|7.||Use Things Already Known to Work|
|8.||Simplify and Generalize|
|14.||Have Wonderful Arguments|
|15.||Show Rather than Tell|
|17.||Shorten Feedback Loops|
|18.||Understand the Arc of Your Project|
|19.||What's Not Done is as Important as What's Done|
Ideas primarily relevant to the leadership and governance of software development projects.
|21.||Build Great Teams|
|23.||Take a Long-Term Economic Perspective|
|24.||Consider What Might Go Wrong|
The human dimension of software development.
|25.||Increase Developer Engagement|
|26.||Developers are Always Growing|
|27.||Developers Are Not Interchangeable|
Things to think about when initiating a new software development effort.
|28.||Agree on Terms of Engagement|
|29.||Pick the Right Sort of Customer Proxy|
|30.||Craft a Product Vision|
|31.||Quality Requires Extra Effort|
|32.||Plan Thoughtfully But Be Prepared for Change|
|34.||Sharpen Your Axe|
|35.||When Estimating, the Whole is Definitely Greater than the Sum of its Parts|
|36.||Seek First to Understand Your Customer|
|37.||Just Enough Design Up Front|
|38.||Deliver Early and Often|
Ideas to consider when code is being developed and delivered.
|40.||A Deliberate Approach to Decision-Making|
|41.||Decrease Friction, Increase Flow|
|43.||Limit Work in Progress|
|44.||Make Problems Visible|
|45.||Remain Open to Fresh Learning|
|46.||Don't Wait to Integrate|
A few important cautionary notes.
|47.||Software is Different|
|48.||Software Development is a Craft|
|49.||Documentation Is Not an End Unto Itself|
|50.||Do Not Place Excessive Faith in Project and Program Management|
|51.||Let the Buyer Beware|
|52.||Stay Focused on the Creation of Working Software for Real People|
A bibliography, a glossary, and various indices to the site’s content.
|–||About the Author|
|–||Alphabetical List of All Ideas|