One of the big things I’m a real fan of is my Kindle especially now that I have purchased the latest Kindle Paper white, with these dark mornings and evenings it makes it easier to read while waiting at the bus stop. I will also admit that I like a good paper book as well, sometimes I’ll buy both the eBook and paper so that I can highlight and place sticky tabs in places that I want to refer back to quickly. Having paper books means that you can read them on a short flight due to not being able to use electronics on taxing, take off and landing (until they make the changes in due course)
So what books do I feel are the best ones to read regarding Software Craftsmanship, you have to start with the man who has a large influence on the area Robert “Uncle Bob” Martin and Clean Code (Clean Coders is a great follow up; buy both eBooks here)
There are some videos that complement the books over at CleanCoders.com I have purchased a few of these videos and they are a great conversational starting points.
Clean Code was the book that really did start to make me think about how I should be coding and the thoughts you need to put into it. How comments get stale and by naming a variable or function as descriptive as you can removes the need for most comments. By using the SRP (Single Responsibility Principle) you can remove the need for them. Discussions I’ve had with developers generally I agree that a comment about why you made a decision or why a work around is in the code and a reference to an article is good, but it needs to be a close to the code in question as possible.
In future parts I’m going to cover more of each of these areas moving forward. Maybe an article on each area covered by the book, as each one is a subject in it own right and should be given the attention it needs in a CFML context as well as a Web Development context.
Sandro has a book on Lean Pub (A great service where you can pay what you want for the book and get it as it’s being written, so you don’t have to wait long for the whole book to be complete), he’s done a great job and I can’t recommend the book enough. (https://leanpub.com/socra) Sandro covers some great areas of the “movement” that gets you thinking. He talks about: attitude, technical practices, recruitment and interviewing creating a culture of learning and driving technical changes plus a lot more. I’ll try and summarise as much as I can but there is nothing like reading the actual book, I can’t recommend it highly enough.
Along with these books, I recommend the Extreme Programming Explained: Embrace Change For me this book covers all the technical practices that make great software and many agile process books miss all this and you need both to ensure you have a successful project.
I have purchased two copies of Clean Code and Extreme Programming Explained for my team, so that they can borrow them over the holiday period and hopefully start a few conversations in the new year.
This part is a recommendation of further reading; my future postings will contain more about each of the areas I have learnt from these books. Although I will be summarising them this should make you want to read them yourself and make your own mind up to how they will help you as a software craftsman. As I mentioned earlier my thoughts here are my interpretations and so it will always benefit you more to read the source material yourself.