Introduction
It’s a Saturday morning, 22nd November 2015 and I’m up early. The combination of excitement and jet-lag from an amazing week in Abhu Dhabi the key contributors to my sudden morning insomnia.
It’s a great moment though. I’m about to embark on an experiment that even Eliyahu Goldratt would be proud of; I’m going to apply the theory of constraints and write a book in a single day. I’ll be doing this entirely alone while continuing to do the normal things I would do on this Saturday.
My chosen topic for this day of madness? Software Architecture. Or, more accurately, the sorts of things a modern software architect needs to consider. In fact, the title says it all, this is a guidebook for how to take on the role of what I consider to be a modern software architect.
It’s going to be tough, life cannot stop while I do this… but I hope you’ll enjoy coming on this ride with me. At the very least it should be fun and something to tell my kid… although of course that will likely result in the bored, “Daddy, can we do something else?”, reaction I usually get, but if you can’t do things in your life that you feel the urge to tell your kids, and that they will promptly find the most boring stories in the world, then what are you doing with your life?
Why?
The first task when starting anything is to ask the question, “Why are you doing this?”. So here are my reasons.
The main reason is the first one really, I feel that a modern software architect is slightly confused as to their role. In a world where we actively try and reduce the amount of “Big Decisions” that need to be made, this traditional stomping ground of someone who has the role of architect (or team lead, or anyone who guides and leads … see Princple 1 in the main content of this book!) is looking decidedly shaky.
This book aims to help anyone leading software development, particularly those who have to think long-term, in how to approach the job. What they need to think about, some ideas for how to go about it, and what outcomes might result.
It’s an iterative process
Admittedly, today’s book will likely be a first draft and I’m sure I’ll be tweaking right up until midnight and beyond. The aim here is to force myself to write while also continuing on with my day as per usual.
As such it’s likely to be a very iterative process. Today’s draft will form the backbone for further writing, more pictures and graphics, and likely more refinement generally. Since this is how modern software is crafted it feels strangely authentic to write a book that guides software architects in much the same way. Pay heed dear readers, even the way the book is being written is a lesson in the challenges a modern architect will face and how to overcome them… I think that’s sufficiently mysterious for now!
Trains, Tools, Cafes and Pubs
Mostly this book had to be simply written quickly and well. For that I chose the following tools to write the book, and to publicise the fact that I was doing something this crazy and fun.
Thanks to all of the tool vendors mentioned in the following sections; you’re doing great things so please keep it up!
Hardware
- Seawhite of Brighton notepads for diagrams.
- Sharpie Pens for diagrams.
- Apple iPhone 6 for photos of diagrams and other as the day progressed. Also for taking shots of the day as I journey from Eastbourne to London.
- Mac Air is my trusty typing friend.
Software
- Hipstamatic for making it easy to take interesting photos of the diagrams for the book, as well as the settings of where the book was written.
- Instagram for dropping photos to social media as my writing journey plays out.
- IA Writer for being fantastically minimal as I wrote at pace on this book. The best tool I’ve found for working with Markdown so far!
- Git & GitHub for being fantastic tools for version control for helping me not lose old changes and roll back when I needed to.
- LeanPub for being the best tool for rapidly delivering books. Still in love with this approach and, although not for everyone, certainly works for me!
Logistics & Other
- Urban Ground for coffee in Eastbourne
- My Hot Tub for just being there and being awesome.
As the book writing has progressed I have visited these wonderful places as the Biker Software Monk:
- Malaga (November, 2014)
- Eastbourne (November, 2014)
- London (December, 2014)
- Prague (December, 2014)
Apologies for any errors
Since I’ll be writing this book alone there will be no copy editor and I feel I should apologise for that in advance. Copy editors, and editors and publishers in general, do an amazing job of turning disparate rantings of authors into something the public will understand and, most importantly, possibly pay for.
I’m not trying in any way to demean that role in creating great books. You only have to look at the editing of the Montaigne’s Essays throughout his life and even after his death to see the refinement that is necessary even to those books we consider ‘great’ to begin with.
No, the difference here is I’m doing this in one day and I can’t possible inflict that on anyone else.
This also means that since I’ll be on the run (I’m looking right now at the clock and knowing I have to de-camp to a cafe in a few minutes) throughout my day of writing this book, there are likely to be LOTS of TBD entries for images and such until I can navigate to those WiFi enabled islands on my journey.
All I ask is that you bear with me as I go through the day. Sometimes the book will be published in rapid succession and at other times we might be looking at a few hours between updates as I attempt to test my phone’s 4G connection to upload and publish. Regardless, part of the fun will be the constraints of the day itself and you can be sure I’ll be adding to the appendix of this book and my own blog to describe my experiences of trying to do this crazy thing today!
Please send me your feedback!
If you’re ‘lucky’ enough to have bumped into this book on 22nd November 2014 then please fire over your feedback at any time and I’ll incorporate what I can in the book as I write it today. Best way to get me your feedback is to pop me an email at russ@russmiles.com.
This book is also going to continue to evolve, so if you’re coming to it after November 22nd, 2014 and so you’ve missed the initial madness of the “Book in a Day” effort then don’t worry! My intention is to write this book within 24 hours; technically a day. So chances are I’m working on it now so it’s not too late!
Please still send your feedback to me at russ@russmiles.com, I want to hear from you because my books always continue to change as I meet and discuss things with new people. The worse that can happen is that I make a new friend, so your feedback is always entire welcome!
It’s so not “Thanks for all the fish”
This book is just the first step on a journey. Going forward Ill be updating the book I’m sure and so when you’ve bought it you’ll, as is the “LeanPub” way, be getting those updates also.
But it’s not just about the book. Today is not just about starting a journey for the reader who is interested in how to take on the aspects of the role in modern software development that we call an ‘architect’ but also the start of an actual, physical journey in 2015…
2015: The Year of the “Geek on a Harley” tour
Next year I’m planning, every month, to visit a part of the world either on my own motorbike. On each mini-journey, I’m planning to visit as many individuals and companies as possible to talk software process, architecture, design and coding. The full topic, no topics not allowed. The title of this escapade is:
“Geek on a Harley: Will Architect for Food; will Design for Wine”
[TBD] insert picture here.
Stealing this idea completely from something similar that Corey Haines completed a while back, this I feel is a fun way to get out there, meet lots of people in very different contexts, put a human face on software development through a video-blog, and at lowering the financial bar to consultancy from me. Plus I’ll have fun, so it’s win-win as far as I can see!
At the same time, I’m planning on doing these trips for charity as well. Any income I get from the businesses I visit I will take 20% of the profit and donate it to YoungMinds http://www.youngminds.org.uk
Doing Good: 100% of this book’s (modest) price going to Young Minds
Similar to the donations I make from my book “Antifragile Software” and am planning to donate as part of my “Geek on a Harley” tour, 100% of this book will also be donated to YoungMinds as well.
Time to get started
I think that’s enough precursor for now, it’s time to get rolling. First stop is a brief explanation of what this book is all about: Objectives, Principles and Outcomes.