Bob Martin - 5 Talks to Watch
This past week I haven’t visit the blogsphere, but our list of 5 things will still hit the streets. Below are five presentations of one of my software heroes, Bob Martin.
Tip: He usually spends the first 10 minutes talking about some nerdy history - you can jump if you want to go directly to the software stuff :D
- Architecture talks tend to be an endless boring river of diagrams and “best” practices. This one has some “best” practices, some diagrams, but it’s very insightful. It starts questioning why we can identify the framework (Ruby on Rails in this case) used in an application by the folder structure, while the application intent is hidden in the code. The framework is a first-class citizen and the application is second-class - we change basically everything, but if you want to change the framework… The importance of other tools, such as DBs and the Web, are questioned as well.
“Good architectures allow major architectural decisions to be deferred”.
- Estimations (and planning, btw) are essential and at the same time pretty much useless. Either you are estimating a situation that you know exactly how it will roll out (and you will come back home riding unicorns) or you have uncertainties that you will discover along the way (or afterwards). Under the latter, any estimation will likely to be wrong. So, you can either lie that you are in the unicorn situation, with certain estimates, or you can say the bloody truth. Bob talks a bit how to say the truth in these situations.
- Bob give us 9 statements that should guide the ethical behavior of software developers. They touch technical, social, and truthfulness aspects. BTW, I have written for tester version of the Scribe’s Oath here.
- SOLID is one of “only if they had told me this when I was a kid” things I have in my life. I was exposed to every kind of principles and design patterns during college and my first few years of a coder, but only after too much suffering with brittle code that I can to listen about SOLID. Although I know that I haven’t embrace all the five principles, they are great coding mantras that help to refactor for simplicity and greatness.
- The Single Responsibility Principle is the first of the SOLID principles. For me, it is the simplest to understand, but the one that has more impact for make code better.