I wrote a book – now you must suffer with me
The book that is the culmination of my decade-long obsession with software quality is out now.
Software projects keep failing, not because we don’t have the right team or tools but because our software development system is broken. Out of the Software Crisis is a guide to fixing your software projects with systems-thinking making them more resilient to change and less likely to fail.
You can find the book’s website at: softwarecrisis.baldurbjarnason.com
This post has been edited to reflect changes in the final published book.
Software annoys me. Web apps frustrate me. Both in the making and as a user. The web is a glitzy but dilapidated mall that inspires fascination in equal parts out of a sense of wonder and sheer horror. At every turn, we suffer software.
Making good software is hard. The crisis is that using software is also hard.
I would like us to be better.
So, in a fit of compulsion, I wrote a book. I’m in the finishing stages of putting it together and will release it in a couple of days or so, whenever it feels like it’s ready.
This post isn’t an announcement or a proper book launch.
It’s more of a forewarning.
I’m going to write and talk about this book a lot over the next couple of months. As it’s around 35 000 words, there is plenty of it that I can extract and post here and in the newsletter. Many of the chapters work just as well as standalone essays. And despite the length, there are a few cuttings that didn’t make it into the book that I’m going to try to repurpose as essays down the line.
Hopefully, you all won’t be too tired of hearing about it before it’s all over.
What drove me to write the book is that I don’t think technology is to blame for how insufferable and unusable software and web apps are. Technology isn’t the cause. Technology can’t fix it.
Only we can fix it by making better choices.
The book is 155 pages long, should cost $35 USD at launch, comes in PDF and EPUB formats, and does two things:
- It outlines an approach to using systems-thinking to improve the odds of your software project succeeding.
- It provides you with a framework for thinking about frameworks: how to choose a web framework that will work for your project.
The book is written with both coders and non-coders in mind. You need some technical knowledge (like the basic idea of how a web server works), but this is not a programming book.
If you want to get notified when it launches, you can subscribe to my newsletter or RSS feed. Or, you can sign up just for the announcement and nothing more at the release notification landing page.
As a bit of a teaser, here are the table of contents, cover, and the reference list. The chapter on web frameworks is the beefiest, clocking in at a healthy 6710 words.
Contents #
INTRODUCTION
PART ONE: SOFTWARE DEVELOPMENT SYSTEMS
- It was great until it wasn’t
- Try not to kill your software development system
- How do you make good software?
- Variability is poison to software development
- Design practice requires experimentation
- Intrinsic versus extrinsic innovation
- Programming as product design
- Research & taste
- Programming as theory-building
PART TWO: HOW WE FAIL
- The first Software Crisis
- The agile reaction
- The many kinds of software failures
- Silver bullets
PART THREE: FRAMEWORKS
- WTF do you mean when you say ‘framework’?
- You need to study exemplary software
- Check your needs
- Understand the paradigms
- Maturity, Complexity, & Layers
- In the end, what else is there but work?
WHAT NEXT?
- Further reading
- References
Cover #
References #
You can get a pretty good sense of what the book is like just from the reference list.
-
‘95% of Performance Is Governed by the System’. Vanguard Consulting Ltd, 18 June 2015, https://beyondcommandandcontrol.com/library/dr-demings-aphorisms/95-of-performance-is-governed-by-the-system/.
-
A Modern Sequel | Babbage Engine | Computer History Museum. https://www.computerhistory.org/babbage/modernsequel/. Accessed 22 Oct. 2022.
-
A Quote by William Gibson. https://www.goodreads.com/quotes/681-the-future-is-already-here-it-s-just-not-evenly. Accessed 22 Oct. 2022.
-
Alan Kay - Programming and Scaling. www.youtube.com, https://www.youtube.com/watch?v=YyIQKBzIuBY. Accessed 22 Oct. 2022.
-
Allsopp, John. ‘A Dao of Web Design’. A List Apart, 7 Apr. 2000, https://alistapart.com/article/dao/.
-
An Update on Toyota and Unintended Acceleration « Barr Code. https://embeddedgurus.com/barr-code/2013/10/an-update-on-toyota-and-unintended-acceleration/. Accessed 22 Oct. 2022.
-
Architectural Styles and the Design of Network-Based Software Architectures. https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm. Accessed 22 Oct. 2022.
-
‘Augmentation Research Center’. Wikipedia, 21 Jan. 2022. Wikipedia, https://en.wikipedia.org/w/index.php?title=Augmentation_Research_Center&oldid=1066994471.
-
Bakke, Dennis W. Joy at Work. P V G, 2005.
-
Basics of the Unix Philosophy. http://www.catb.org/~esr/writings/taoup/html/ch01s06.html. Accessed 22 Oct. 2022.
-
Bjarnason, Baldur. ‘Software Crisis 2.0’. Baldur Bjarnason, https://www.baldurbjarnason.com/2021/software-crisis-2/. Accessed 30 Oct. 2022.
-
Bjarnason, Baldur. ‘You Are What You Do, Not What You Say or Write’. Baldur Bjarnason, https://www.baldurbjarnason.com/2021/you-are-what-you-do/. Accessed 22 Oct. 2022.
-
Brooks. ‘No Silver Bullet Essence and Accidents of Software Engineering’. Computer, vol. 20, no. 4, Apr. 1987, pp. 10–19. DOI.org (Crossref), https://doi.org/10.1109/MC.1987.1663532.
-
Cagan, Marty. Empowered Product Teams. https://www.svpg.com/empowered-product-teams/.
-
Cagan, Marty. The Most Important Thing. https://www.svpg.com/the-most-important-thing/.
-
Campbell, Darryl. ‘The Ancient Computers in the Boeing 737 Max Are Holding up a Fix’. The Verge, 9 Apr. 2020, https://www.theverge.com/2020/4/9/21197162/boeing-737-max-software-hardware-computer-fcc-crash.
-
Chaos Report 2015. 2015, https://standishgroup.com/sample_research_files/CHAOSReport2015-Final.pdf.
-
Cooper, Alan, et al. About Face: The Essentials of Interaction Design. Fourth edition, John Wiley and Sons, 2014.
-
Cooper, Alan. The Inmates Are Running the Asylum. Sams, 2004.
-
Creating Passionate Users. https://headrush.typepad.com/. Accessed 22 Oct. 2022.
-
Curious Cat Deming Management Concepts - Dr. W. Edwards Deming on Tampering. https://curiouscat.com/management/deming/tampering. Accessed 22 Oct. 2022.
-
Cutler, John. ‘TBM 41a/52: Slow Down on Your Own Terms’. The Beautiful Mess, 7 Oct. 2021, https://cutlefish.substack.com/p/tbm-41a52-slow-down-on-your-own-terms.
-
DeMarco, Tom, and Timothy R. Lister. Peopleware: Productive Projects and Teams. Third edition, Addison-Wesley, 2013.
-
Deming, William Edwards. Out of the Crisis. 1. MIT Press ed, The MIT Press, 2000.
-
Dubner, Stephen J. ‘The Cobra Effect’. Freakonomics, https://freakonomics.com/podcast/the-cobra-effect-2/. Accessed 22 Oct. 2022.
-
‘Failure Demand’. Vanguard Consulting Ltd, 25 Oct. 2019, https://beyondcommandandcontrol.com/failure-demand/.
-
‘Fast Path to a Great UX - Increased Exposure Hours’. UX Articles by UIE, 30 Mar. 2011, https://articles.uie.com/user_exposure_hours/.
-
Gall, John. The Systems Bible: The Beginner’s Guide to Systems Large and Small: Being the Third Edition of Systemantics. General Systemantics Press, 2002.
-
Gries, David, and A. G. Fraser. Software Engineering: Report of a Conference Sponsored by the NATO Science Committee. 1968.
-
Have Single-Page Apps Ruined the Web? | Transitional Apps with Rich Harris, NYTimes. www.youtube.com, https://www.youtube.com/watch?v=860d8usGC0o. Accessed 22 Oct. 2022.
-
How to Upgrade to React 18 – React Blog. https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html. Accessed 22 Oct. 2022.
-
‘Human Error? No, Bad Design’. Jnd.Org, 13 Apr. 2014, https://jnd.org/stop_blaming_people_blame_inept_design/.
-
If Builders Built Buildings the Way Programmers Wrote Programs, Then the First Woodpecker That Came Along Would Destroy Civilization – Quote Investigator. https://quoteinvestigator.com/2019/09/19/woodpecker/. Accessed 22 Oct. 2022.
-
Kay, Alan. Dr. Dobb’s Interview with Alan Kay. https://link.springer.com/content/pdf/bbm:978-3-319-90008-7/1.pdf.
-
Kim, Beaumie, et al. ‘The Affordances of Informant Design in Educational Game Development’. International Journal of Arts and Technology, vol. 6, no. 3, 2013, p. 215. DOI.org (Crossref), https://doi.org/10.1504/IJART.2013.055388.
-
Kuhn, Thomas S., and Ian Hacking. The Structure of Scientific Revolutions. Fourth edition, The University of Chicago Press, 2012.
-
Model-View-Controller. https://developer.apple.com/library/archive/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html. Accessed 1 Nov. 2022.
-
Manifesto for Agile Software Development. https://agilemanifesto.org/. Accessed 22 Oct. 2022.
-
Meadows, Donella H., and Diana Wright. Thinking in Systems: A Primer. Chelsea Green Pub, 2008.
-
Naur, Peter. ‘Programming as Theory Building’. Microprocessing and Microprogramming, vol. 15, no. 5, May 1985, pp. 253–61. DOI.org (Crossref), https://doi.org/10.1016/0165-6074(85)90032-8.
-
‘Nobody Gives a Hoot About Profit - The W. Edwards Deming Institute’. Https://Deming.Org/, https://deming.org/nobody-gives-a-hoot-about-profit/. Accessed 22 Oct. 2022.
-
‘Productivity Paradox’. Wikipedia, 20 Sept. 2022. Wikipedia, https://en.wikipedia.org/w/index.php?title=Productivity_paradox&oldid=1111403831.
-
Reinertsen, Donald G. Managing the Design Factory: A Product Developer’s Toolkit. Free Press, 1997.
-
Royce, W. W. ‘Managing the Development of Large Software Systems: Concepts and Techniques’. Proceedings of the 9th International Conference on Software Engineering, IEEE Computer Society Press, 1987, pp. 328–38.
-
Sarasvathy, Saras D. ‘What Makes Entrepreneurs Entrepreneurial?’ SSRN Electronic Journal, 2006. DOI.org (Crossref), https://doi.org/10.2139/ssrn.909038.
-
‘Second-System Effect’. Wikipedia, 24 Aug. 2022. Wikipedia, https://en.wikipedia.org/w/index.php?title=Second-system_effect&oldid=1106324339.
-
Sierra, Kathy. Badass: Making Users Awesome. First edition, O’Reilly, 2015.
-
Stuart, Keith, and Keza MacDonald. ‘Inside Nintendo’s Secretive Creative Process’. The Guardian, 25 Apr. 2018. The Guardian, https://www.theguardian.com/games/2018/apr/25/nintendo-interview-secret-innovation-lab-ideas-working.
-
‘Study: 68 Percent of IT Projects Fail’. ZDNET, https://www.zdnet.com/article/study-68-percent-of-it-projects-fail-6103001175/. Accessed 22 Oct. 2022.
-
Taylor, Dorian. ‘Agile As Trauma’. Dorian Taylor, https://doriantaylor.com/agile-as-trauma.
-
The Betting Table | Shape Up. https://basecamp.com/shapeup/2.2-chapter-08#cool-down. Accessed 22 Oct. 2022.
-
The CADT Model. https://www.jwz.org/doc/cadt.html. Accessed 22 Oct. 2022.
-
‘The Curious Case of the CHAOS Report 2009’. Project Smart, https://www.projectsmart.co.uk/it-project-management/the-curious-case-of-the-chaos-report-2009.php. Accessed 22 Oct. 2022.
-
‘The Mobile Performance Inequality Gap, 2021’. Infrequently Noted, https://infrequently.org/2021/03/the-performance-inequality-gap/. Accessed 22 Oct. 2022.
-
Tribus, Myron. The Germ Theory of Management. SPC Press, 1992.
-
‘Uber Car Software Detected Woman before Fatal Crash but Failed to Stop’. Naked Security, 9 May 2018, https://nakedsecurity.sophos.com/2018/05/09/uber-car-software-detected-woman-before-fatal-crash-but-failed-to-stop/.
-
Unix Philosophy Description by The Linux Information Project (LINFO). http://www.linfo.org/unix_philosophy.html. Accessed 22 Oct. 2022.
-
Values, Leadership, and Implementing the Deming Philosophy. www.youtube.com, https://www.youtube.com/watch?v=bu7JMAQggfo. Accessed 22 Oct. 2022.
-
‘Wabi-Sabi’. Wikipedia, 20 Sept. 2022. Wikipedia, https://en.wikipedia.org/w/index.php?title=Wabi-sabi&oldid=1111346372.
-
Wagner, Jeremy. The 2022 Web Almanac: JavaScript. HTTP Archive, 26 Sept. 2022. almanac.httparchive.org, https://almanac.httparchive.org/en/2022/javascript.
-
‘Wayland (Display Server Protocol)’. Wikipedia, 27 Aug. 2022. Wikipedia, https://en.wikipedia.org/w/index.php?title=Wayland_(display_server_protocol)&oldid=1106893281.