One of the most glib generalisations you can make about development work is to say that code should be liberally commented, or conversely that it should never be commented. As always, the truth is more complicated. There are many different types of comment and some types are best treated firmly with the delete key, where others are to be cherished and maintained assiduously. Even though it is hard to find two developers who agree on the topic of commenting, Michael Sorens warily sketches out the issues and the battleground.

Every single CEO of any IT company wants to build software faster. Time is the most expensive and valuable resource. You can't waste it on re-work, refactoring, meetings, physical activities. Right? It depends... Many companies grow up, slow down, and die. Good development pace is essential for surviving. Imagine, you have a really great vision proven in many circumstances by many people. You know for sure (well, that is rare in practice, but we'll fuel our imagination, OK?) that this product will be a real hit. All you need is to complete it.

Why should the developer care about testability? Alexander Tarlinder presents the case for testable software and its benefits. The quality attribute testability is broken down into observability, controllability, and smallness and explained further.

Software gardening is not a practice, an attitude, a skill or a special knowledge. It’s all of them plus the love you have for software development. And this love you should show it continuously, every day, in every single line of code you write.

The Coding Dojo is a training session where professional programmers practice and improve their skills, and work with Test Driven Development (TDD) in particular. You do Code Kata exercises in a group, play collaborative games, and reflect on not only the code you end up with, but the process you used to create it. I see it as a good way for a group of programmers to sustainably change the way they work, and introduce more effective coding practices.

There are myriad ways of writing poor code. Thankfully, rising to the level of writing quality programs involves just 15 rules. Following them won't make you a master programmer, but will allow you to fake one quite convincingly

David Chisnall, who works on programming language design and implementation at the University of Cambridge, provides two tips for new programmers: choose your first language carefully, and take the time to learn the underlying theory behind it.

By now you’ve almost certainly heard of functional programming. I mean, how could you miss it? Everybody’s talking about it. There are all these new functional languages coming out like Scala, F#, and Clojure. People are talking about older languages too, like Erlang, Haskell, ML, and others. So what’s this all about? Why is functional programming The Next Big Thing? And what in blazes is it? First, it’s almost certainly true that functional programming is the next big thing. There are good solid reasons for this that we’ll explore later in this article. But in order to understand those reasons, we need to know what functional programming is.

Java developers should learn functional paradigms now, even if they have no immediate plans to move to a functional language such as Scala or Clojure. Over time, all mainstream languages will become more functional; Neal Ford explores the reasons why in this installment.