A big Thank to Robert C. Martin (@unclebobmartin )

When I started working for Picsel Technologies Ltd. I knew a little about Design Patterns, or better I was using them without knowing their names and without knowing that I was using them :) , but then one of my colleagues Mike Stead opened my eyes when he suggested me to read a book by Robert C. Martin “Agile Software Development: Principles, Patterns, and Practices“.

Agile Software Development

This book made me look at code and architecture in a different way and it made me go away from the traditional and messy waterfall development! What to say this is a must read even if you don’t believe in Agile you should read it as it explains really well Design Patterns and some simple principles that could improve your productivity.

Then I was all excited about Agile that I had to buy another book, this time about project management because I’ve never been satisfied about how my projects have been managed and I also panic when people ask me to estimate a new project. Here it is:

Agile Estimating and Planning

This book gives you a deep explanation on how you can manage projects in an Agile way and more important how to estimates projects. It’s really good because it reflects the real world where we (software developers) are asked to give estimates for things we have never done before. I think Project Managers should keep this book on their desk and read it over and over again if they want to make their projects a success.

Using a lot of examples, the book drives you through all the aspects of Agile from the first meeting with the customer to the burndown chart and the completition of your project.

So after reading the two books above I felt I had a good high level knowledge on software development and I needed to go into the details and learn how to write beautiful and easy to understand code so I stayed in the Robert C. Martin temple and I read “Clean Code”:

Clean Code

What a revelation!! For example before reading the book I thought I had to put as many comments as I could to make my code clear and I didn’t pay attention to the naming of classes and variables ( I thought that the comments would make it clearer) but now I spend more time deciding the name of a variables and classes and I put comments only if the code really needs an explanation. This made all my classes like books where you read the code line by line and you understand what it does.

The other big thing that made my code really clean and flexible was the Single Responsibility Principle. Every function and every class has one and only one responsibility. It sounds like the obvious but have a look at your code and I bet you can find at least a method that does more than one thing!
And last but not least this book explains how to use TDD Test Driven Development and it does it in a way that you can actually understand it.

I really recommend to read all of the three books above  and keep them on your desk for every day reference! Trust me you won’t regret it!

And keep an eye on the Robert C.Martin Series!!!

This entry was posted in Agile, Thoughts. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.
blog comments powered by Disqus