…reading feeds this evening:
Ted Neward - The First Strategy: Declare War on Your Enemies (The Polarity Strategy):
…there are numerous forces that are at work trying to drag the project down into failure. As a software development lead (or architect, or technical lead, or project manager, or agile coach, or whatever), you need to learn how to spot these enemies to your project, identify them clearly, and make it clear that you see them as an enemy that will not be tolerated.
…
Other enemies are not to be tolerated at any level: apathy, sloth, or ignorance are all too common among developer teams. Ignorance of how underlying technologies work. Apathy as to the correctness of the code being created. Sloth in the documentation or tests. These are enemies that, given enough time and inattention, will drag the project down into the tar pits of potential failure. They cannot be given any quarter. Face them squarely, with no compromise. Your team, if they hold these qualities, must be shown that there is no tolerance for them. Hold brown-bag lunches once a week to talk about new technologies, and their potential impact on the team or company or project. Conduct code reviews religiously, during active development (rather that at the end as a token gesture), with no eye towards criticizing the author of the code, but the code itself. Demand perfection in the surrounding artifacts of the project: the help files, the user documentation, the graphics used for buttons and backdrops and menus.
I’ll send these sentences to everyone in my team. I hope that this will justify some of my decisions and actions like pointing to bad names, duplicated code, tight coupling and other, definitely bad, software development practices.
Someone has said: “power is in details”. If we will let bad small details to invade our code base, architecture and minds this will be first step to a failing software project - we will loose the war…
“Don’t Live with Broken Windows”. Do you read “The Pragmatic Programmer: From Journeyman to Master”? If you’re a software developer or want to be a better one and you don’t know this book - go for it. One of the best books written about software development. It contains a lot to help you win the war. But nothing will help you win this war more than discipline:
Discipline takes many forms and permeates every aspect of software development. Start small. Say your database schema contains three primary key table columns named “list_id”, “ListId”, and “list_value”. There should be a Gunnery Sergeant Hartman on your development team who will.. gently.. remind the team that it might be a good idea to fix problems like this before they become institutionalized in all your future code.
To my team: - Sorry guys. I’m your sergeant. We’re at war…