4 ms·
A year or two ago I was writing some training material on how to keep your software solutions as simple as possible. (In my mind this is the most critical skill
by DanielBMarkham 5y ago
A year or two ago I was writing some training material on how to keep your software solutions as simple as possible. (In my mind this is the most critical skill in software development that nobody seems to actually teach)
I decided to use project management as an example. It's a known field, it's something most everybody can relate to, it looks like something a lot of coders kick around, and it's commonly way, way overdone. So I started with first principles and went at it.
Ended up with a few dozen lines of code and a text file. That's it. That's all you need to manage projects from a single person on up to a large-scale program. I integrated with Trello and Google sheets in order to provide whatever graphics people wanted, but with the same general amount of complexity you could integrate with a bunch of other stuff.
I remain convinced that the greatest learning experiences I've had in software development over the last decade or so have been these little experiments where I take a commonly over-engineered solution area and poke at it to see just how much complexity is actually required. Every time I do it, it astounds me at the amount of counter-productivity we coders bring to many of the things we create in order to increase productivity. A humbling experience, to say the least.
- gauchojs 5y agoDid you write more about it here or elsewhere?
- DanielBMarkham 5y agoMy second book is all about how to code solutions as simply as possible: https://leanpub.com/info-ops2 https://leanpub.com/info-ops2 As for this particular exercise from the book, I think I did a video on YT. It probably isn't around, though. As a tech coach, I've had programming, management, and consulting experience in this kind of work from solo developer up to 150-person programs. So there's a lot to cover in a stand-alone piece, at least three in-depth topics. (For instance, I'm willing to bet a lot of other consultants with similar experience would say this result wasn't possible. This is what made the exercise so worthwhile; our intuition about the complexity required and the actual complexity involved in solving problems is commonly off by at least a couple orders of magnitude.)