bob-martin-softskills-2

How I got Robert (Uncle Bob) Martin to write a foreword for my book

Last week my publisher, Manning, gave me a little surprise. They told me that my new book, Soft Skills: The Software Developer’s Life Manual was going to publish early; that anyone who ordered before December 14th would be able to get the print version in their hands by Christmas (barring any unforeseen circumstances.) This was very exciting, until I realized …

2014-03-25_20-59-16

My Views On Test Driven Development

I used to be a huge supporter of TDD, but lately, I’ve become much more pragmatic about it. In this video, I discuss test driven development and what my current views on it are. Full transcript: John:               Hey, John Sonmez from simpleprogrammer.com.  This week, I want to talk about, yes, a technical topic.  I’m going to be talking about test …

Principles Are Timeless Best Practices Are Fads

There is a huge difference between a principle and a best practice. Best practices are subjective and depend largely on context, while principles are eternal and universal. After writing The More I Know The Less I Know, I received a few emails talking about how there are absolute best practices that should always be followed in software development. I had …

1 Million Dollars to Succeed

Let me ask you a question. How would you develop your next software project if I told you that if you “succeeded” you would be given $1 million dollars, but if you failed you would get nothing? Success of course is a very fuzzy term, but let’s assume that success means: You built a working functional product Your customers are …

There Are Only Two Roles of Code

All code can be classified into two distinct roles; code that does work (algorithms) and code that coordinates work (coordinators). The real complexity that gets introduced into a code bases is usually directly related to the creation of classes that group together both of these roles under one roof. I’m guilty of it myself.  I would say that 90% of …

The Development Pendulum

I’ve noticed a rather interesting thing about best practices and trends in software development, they tend to oscillate from one extreme to another over time. So many of the things that are currently trendy or considered “good” are things that a few years back were considered “bad” and even further back were “good.” This cycle and rule seems to repeat …

Back to Basics: Unit Testing, Automated Blackbox Testing, and Conclusions!

If you’ve been following me from the beginning of the Back to Basics series, you’ll know that I set out to reevaluate some of the commonly held truths of what best practices are, especially in regards to unit testing, dependency injection and inversion of control containers. We’ve talked about what an interface is, cohesion and coupling, and even went a …