Jump to ratings and reviews
Rate this book

Programming Beyond Practices: Be More Than Just a Code Monkey

Rate this book
Writing code is the easy part of your work as a software developer. This practical book lets you explore the other 90% everything from requirements discovery and rapid prototyping to business analysis and designing for maintainability. Instead of providing neatly packaged advice from on high, author Gregory Brown presents detailed examples of the many problems developers encounter, including the thought process it takes to solve them.

He does this in an unusual and entertaining fashion by making you the main character in a series of chapter-length stories. As these stories progress, the examples become more complex, and your responsibilities increase. Together, these stories take you on a journey that will make you question and refine the way you think about, and work on, software projects.

Steps in this unique journey include:


Using prototypes to explore project ideas
Spotting hidden dependencies in incremental changes
Identifying the pain points of service integrations
Developing a rigorous approach towards problem-solving
Designing software from the bottom up
Data modeling in an imperfect world
Gradual process improvement as an antidote for over-commitment
The future of software development
"

130 pages, Paperback

Published November 22, 2016

29 people are currently reading
285 people want to read

About the author

Gregory T. Brown

2 books7 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
16 (20%)
4 stars
25 (32%)
3 stars
22 (28%)
2 stars
11 (14%)
1 star
3 (3%)
Displaying 1 - 11 of 11 reviews
Profile Image for Jacob Tjornholm.
35 reviews3 followers
August 14, 2017
In the interest of transparency, I’ll start off by mentioning that I’ve known Gregory Brown, via online channels, for several years. We’ve had some interesting discussions over Slack in the past. He was even kind enough to mention me in the acknowledgements for this book, which I was really glad to see. So while I’m going to give my honest opinion here, I’m not going to claim that my review will be completely unbiased.

With that out of the way, here’s what I think about Programming Beyond Practices.

It is a well-written (and funny) book that contains a ton of good advice, especially for developers in the early stages of their career. But also for someone like me, having programmed professionally for almost two decades, there are a lot of great insights along the way.

The book is written in second person, which may not work for everyone. It took me a few pages to get used to, but after that I quite enjoyed it. I found it engaging to have the author speak directly to me, putting me at the center of various narratives.

Programming Beyond Practices takes us through a journey of increasing levels of experience, a “full career in software development”. We start as a “competent programmer” and end up at the master level. To be quite honest, I’d forgotten about this progression until re-reading the introduction as I sat down to write this review. I worry that I may be missing an important overarching point in the book, but I actually just enjoyed the chapters individually and did not notice the skill level progression.

Most of all I enjoy the very simple and explicit writing style: You are in this situation, here is what happens, this is how you react. The concepts in the book are taught by example, and it is easy for me to relate to all the stories in the book (except for the last one which I’ll get to later). There is no speculation and no lengthy explanations or theorising. Just several (fictional, I assume) case studies. This is a great way to teach these kinds of topics, because they inherently belong in the field.

Each chapter concludes with a list of key points to take away from the case. I found this to a be a very elegant way of extracting the essential learnings after going through a real-life scenario. Many books will get this backwards: Explain concepts in the abstract, then provide a few examples. I like the structure of this book much better.

It is important to note that the book is not actually about programming, it is about understanding the needs of other stakeholders while developing software, and about appreciating the messiness and hidden complexities of real world systems. And about several other topics you’re bound to encounter as you pursue a career in software development.

Coming up with useful and realistic cases must be really hard, and I think Gregory did a good job in most chapters. However, I do think chapters 4 (about rigorous problem solving) and 5 (about bottom up design) missed the mark slightly because they are not about actual production software. I don’t have the imagination myself to come up with real-life scenarios that would have served as a good backdrops for the particular topics in these chapters, but I did miss the more realistic settings from the rest of the book.

The last chapter in the book was particularly interesting to me, because I knew after the first few sentences that I would be disagreeing with much of it. And I did, but I still loved the chapter and the way to wrap up the book.

The chapter is an exploration of what software development might look like many years into the future when programming by hand is no longer necessary and when interaction with computers is verbal and completely natural: “Overlay this map with that data, extract these statistics…” etc. Much like the UIs of science fiction movies.

As fun as it is to imagine this possible future, Gregory goes on to discuss the most interesting question about it: How would it affect and empower us as problem solvers? (The title Developer loses much of its meaning). If we could do the number crunching and solve the real-world problems without actually writing code…would our jobs be more satisfying than they are today? Not an actual question from the book, but it does come out in the discussion.

This is where I knew right away that I would disagree with Gregory. Having followed him online for a while it seems obvious that he his primary interest is in solving real world problems, and he sees writing software simply as a tool to accomplish this goal. I respect this a great deal, because it obviously focuses on the value that we as developers bring to the world.

But personally, I just enjoy the process too much to feel the same way. There is a great quote towards the end of the book: It’s true that some folks among us are here solely for the tools, the code, the intellectual challenge of it all. But for the rest of us, that’s a matter of necessity and the environment we work in, not a defining characteristic of who we are.

I’m slightly ashamed to count myself in the group of “some folks” in that statement. Maybe it is because I never went to university and studied the basics of computer science, but as my career progresses I find myself drawn towards the challenges of actually writing the code and becoming more skilled in the craft of software development. I’ve written a huge amount of code, but actually understanding how programming languages work, how typing works, how algorithms work, that is something else altogether. And I am hungry to learn more about this theoretical side of my craft.

Of course I care about the problems I’m working on. I would not find joy in simply churning out features for a company I did not care about, which has also shaped my career path. Working on systems that are meaningful to real people is very important to me. But I’ve come to realise that my main interests are technical. I love the challenge of taming the complexity and writing concise, error-free programs.

This was a tangent that probably doesn’t belong in a book review at all. I apologise for the rambling. The connection to the book is that the last chapter offered me another perspective on my own values as a developer.

Wrapping up, I will highly recommend this short and well-written book to developers of any experience level. If you’ve spent a lot of time doing “agile” development (is that even a thing anymore?) you may find that parts of the book don’t teach you much new. But I would be surprised if you didn’t find that some chapters offered you new or more systematic ways of approaching problems you’ve faced many times on various projects.
Profile Image for Vitor Pellegrino.
1 review12 followers
November 15, 2016
An amazing book designed for the modern developer. A collection of small insightful stories covering all the different skill levels in a developer's career.

"I wrote this book because I believe the shift away from “programmer as coding specialist” is inevitable."

Gregory brown completely nails it. I wish there were more books like this.
63 reviews28 followers
September 14, 2017
More a collection of meditations than a book to be read cover-to-cover. Compact enough to be well worth the read but probably only truly useful if you have someone to bounce the ideas off of; each chapter is more of a conversation starter than a reference.
85 reviews17 followers
December 6, 2016
Even as a veteran of software development, I enjoyed this book. It feels like it is geared towards the less experienced developer, but we can all do with a reminder of the basics once in a while.

In this volume, Gregory T. Brown lays out a lot of practical day to day advice for advancing software projects. The book, by design, focuses on human elements of software construction rather than low-level technical details.

There are downsides as well. The second person story-telling doesn't work well for me (though tastes may well differ). It contains about as much detail as a parable, but is told in a lighthearted way that sometimes feels distinctly divorced from the real world. The characters are all reasonable and everyone is working for the greater good. In the non parable world, we have to deal with many competing motivations. The bigger problem, though, is that the scenarios generally assume smaller teams with a great deal of control. I have worked in these environments, but I have also worked in larger environments with more at play. The same principles apply, but their application requires more creativity. The sheer simplicity of these little plays may well discourage the less experienced who find themselves in a larger environment.

In the main, though, the book is well worth the read and will, I think, be particularly helpful for the junior developer or recent college graduate who needs to see beyond the acronym soup the consumes all too much developer attention.
4 reviews
December 7, 2016
This was an easy to read book because of the story format which I quite liked. To book guides you through a small number of real world scenarios and shows you what went wrong, why and how to go about changing/fixing/correcting it. My only 'gripe' with it is its length: I wanted it to be longer!
Profile Image for Carlo Corti.
2 reviews2 followers
January 21, 2019
Programming Beyond Practices is not the common programming book with coding practices and code snippets, because code is not the main focus in this book.

"The interesting parts of programming to me have always been the problem-solving, communication, and human-centric aspects of things; code was just the most effective tool I could find to serve those purposes.”

This quote resume the essence of what the author wants to communicate. In fact, through the different stories/chapters, the reader is constantly facing problems/challenges where coding is not in the spotlight, but other aspects comes to shine (communication, design, exploration…).

This book gets read nicely and help the reader to wrap up few concepts that were left in the corner of our memory.
Profile Image for Leonardo.
13 reviews10 followers
June 28, 2018
Gregory shares his experience and insights on some mistakes made.
Scenarios go from side projects for a blog/mailing list, client service prototypes, maintenance efforts.

I personally liked the story about a third party service login dependency where web crawlers make the error logging feature eat the email submission budget.
Pretty chill book to read without "Messiah" "Chosen one" developper pitch some books got.
Profile Image for Douglas.
11 reviews9 followers
June 21, 2017
Good approach of increasingly shifting the complexity to the business and away from the code as the book progresses. Gives an idea of what a consultants career path might look like. The examples through conversations takes a while getting used to, but spot on description of what a real life job looks like.
Profile Image for Hildeberto.
97 reviews
August 7, 2017
Excellent book! Quite thin but valuable. The author explores the topics, which go from requirements discovery and rapid prototyping to business analysis and design for maintainability, describing real world situations. It is in the same category of The Phoenix Project and The Goal, but with more technical details and organized in short stories, instead of a long novel.
Profile Image for Enrique.
76 reviews
September 19, 2021
A very interesting book with a different point of view regarding what the job of a developer is because coding is just one part of her job. I enjoy reading the book specially the chapters about spotting hidden dependencies and the one about gradual process improvement.
Displaying 1 - 11 of 11 reviews

Can't find what you're looking for?

Get help and learn more about the design.