It took me many years to learn and apply this. Perhaps I was naive, or maybe just lazy. I’m sure some old timer talked about it but I didn’t listen. You need to personally keep a detailed permanent log of every single requirement, change, meeting and drive-by managing instance. No exceptions. The log will save your ass time and again.
The old saying goes “shit rolls down hill”. Well, developers are at the very bottom of that hill. Indecision, lack of planning, and gross incompetence in other areas of the company tend to fall on the backs of the dev team. (Partly I believe this to be due to weak interpersonal skills held by developers on average. Everybody picks on the weak kid.) Developers usually serve the needs of everyone else in the organization, structurally. In effect everyone else is your boss. Idiot salesmen decide what features a multi-million dollar piece of software will have, despite being unable to handle basic algebra or understand the concept of mutual exclusion. When it ships they will say you didn’t build the right thing, assuming they even remember what they asked for. You’re to blame regardless.
The log saves you even before launch. Managers are fickle. They don’t remember what they asked for yesterday. They don’t even understand what they are asking for half of the time. They change their mind constantly. When it’s your word against theirs, you always lose. It’s hard to argue against their own words written in ink on paper.
Since the log is to cover your ass and maintain accountability it needs to meet a few minimum requirements. First, it must be physically durable. Pages cannot be perforated and the binding must not fall apart after a few months of heavy use. A cheap marbled notebook works well. Second, the log must not be interleaved with other information. Often I write the log from one cover and miscellaneous notes from the other side. Third, write clearly, legibly and unambiguously. Channel your inner 12 year old girl if necessary. There is no point in keeping a log if you can’t read or understand what was written.
After a while they learn that nothing slips by you. Change requests have real costs. Nothing gets crammed in. No deadlines get crept. No blame is accepted, no shit is taken. It even starts to border on a healthy, respectful professional relationship.
One time the CEO said I was a week late and asked me when the project would be done. I pulled out my log and read the scope creep he approved of line by line, citing time, date, and place, including the extra labor he approved for each item. I wasn’t a week behind. I had a month left and was in fact two weeks ahead of schedule. He couldn’t argue. He approved every single feature after all. Without the log there would have been pressure to work unpaid overtime. With the log I came out as a hard-working highly capable employee.
A different requirement kept getting flipped back and forth. Each time I kept a log, and each line in the log recorded how many times it had been flipped before. Every time it flipped I confirmed the history before agreeing to the change. When the project shipped and people asked why the feature was one way and not the other, I whipped out the log, noted the history, and quoted an estimate to change it yet again. Their problem, not mine.
There are a few side benefits to the log. It serves as a secondary list of requirements. A few little ones slip through or get lost in the mess every time. The log also encodes the history and motivations of each feature, should ambiguities arise. Writing in a book with a pen in a meeting looks very “professional” and “engaged” to the sort of people who care about such things.
Keep a log. Start today.
Leave a Reply
You must be logged in to post a comment.