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 …

Back to Basics: Why Unit Testing is Hard

More and more lately, I’ve been beginning to question the value of unit testing.  I’ve really been starting to wonder if all the work we put into being able to actually test at the unit level and the extra scaffolding we put into our applications to support it is worth the cost. I’m not going to talk about that subject …