Johanna Rothman, in in her product development blog talks about when a spec should freeze. She basically said "specs never freeze, people communicate about what they want all the time".

What caught my eye was one commenter that said "There is always a point at which the spec must freeze; otherwise, either quality will suffer in some way, or the wrong functionality may not be delivered". That's kind of true, but the problem is not with the lack of spec freeze.
There are two reasons we would like to freeze the spec: either we're working with several groups that don't belong to the same team (ie, hardware and software team), and the spec is the point of communication between them, or  we work with just one team but want the team to be very sure what we want delivered. The former is material for another post, so I'll focus on the later reason.

One thing about freezing specs is very unusual: it is one of the very uncommon points where all the actors involved agree that must be done. Why? Because it adds an illusion of predictability (we know what is going to be delivered way in advance), and is a shield to deflect blame. This blame deflection eagerness can make the act of changing the spec a very expensive process. The irony is that by protecting themselves, they are increasing the chances of failure.

In my experience, assuming that the team is able to deliver whatever is on the spec, the problems is not the act changing of the spec that brings the problem, but the lack of focus when changing it and the unwillingness to change the schedule.

If the team has the golden pair of good Product Owner and Project Manager, both will make sure that the changes to the spec are really needed and will negotiate any change in the scope. 

If all the actors trust each other, and all the changes to specs and schedule are visible to everyone, there is no need to freeze the spec.

I have seen all scenarios: I had an spec that was "open" for about 6 months. It grew in scope. We even rewrote complete parts of already implemented the functionalities (early stories) because the business side discovered that they got it wrong the first time. And it was ok. The business side was deligthed with the end result.

On the other (darker) side, I had a spec frozen that covered a 3 month development. We required 2 more requirements after that (frozen, of course) to get to what the business needed. It took us 6 months, we delivered what was on the spec, by the letter. But the business was not deligthed.

And finally, I witnessed (as an outsider, thanks God) specs changing weekly, in an uncontrolled way, adding scope and changing functions that where implemented the week before in a radical way... without changing the schedule.

In short, trust each other. Then you won't need a spec freeze, only a "we have enough to start working" flag on the spec.





Fear and Safety

user-pic
Vote 0 Votes

Again, another quote from Slack:

"Paradoxically, the fear of breaking your neck (translation in corporate terms: losing your job) does not make changes impossible. It's a much more insidious kind of fear that interferes with change: The fear of mockery. If you want to make change in your organization utterly impossible, try mocking people as they struggle with the new, unfamiliar ways you have just urged upon them. There is no surer way to stop essential change dead."

Go and Buy the book if you haven't already.


That is a subtitle in chapter 13 of Tom DeMarco´s excellent book Slack, dedicated to the Culture of Fear in our organizations.
These are the characteristics of an organization with the Culture of Fear that are listed in the book:
  • It is not safe to say certain things. And truth is no excuse for saying them.
  • In fact, being right in your doubts proved that you must be the reason that the fondest wishes of those above you did not come true.
  • Goals are set so aggresively that there is virtually no chance of achieving them.
  • Power is allowed to trump common sense.
  • Anyone can be abused and abased for a failure to knuckle under.
  • The people that are fired are, on average, more competent than the people who aren´t.
  • The surviving managers are a particulary angry lot. Everyone is terrified of crossing them.

Tom finish that section with the following:
"I hope that as you read these points you're inclined to think thy present a truly extreme picture. I hope this, since it suggests that yours is not a Culture of Fear organization. (If the portrait I'have drawn does not seem extreme to you, you have my sympathies.)"

So, if these points target close to home, do yourself a favor and buy the book. It is a real eye-opener.


That phrase started what may be one of the most life-changing fragments I ever read. It is from Robert Heinlein book "Time Enough for Love".



Crunch time

user-pic
Vote 0 Votes
I have been in a very unique position, seeing crunches that worked and crunches that didn't on the same team (same people, same project).

Those that didn't work, started with the management saying (nearly at the end of the plan) "we are late, crunch time". People felt that things were poorly planned, deadlines where imposed from above, and all those things developers think at those times. End result: we made the dates... with a lot of effort, a lot of "burn down", and alot of defects.

Later on the same project but different release, priorities changed, new requirements came, and the deadline was no longer "achievable", We negotiated a new reduced scope, but even the reduced scope was not possible under normal circumstances (scope could not be reduced further because monetary penalties for the client were at stake). Result? We told that to the team, and curiously enough the TEAM declared "cruch time, let's hit that deadline!". High morale, High energy. One month later, we made it. With a lot less errors than the last time.

Yes, crunches work some times. The interesting thing is identifying why those "some times" it works.

My guess?

When management declares "crunch time", and the team feels that the plan was impossible to begin with and that it was a known fact since the beginning, the crunch will fail (low morale, low productivity, etc,etc,etc). But if the team feels that the plan was achievable, and that what happens is just a roadblock in an otherwise clean road, they will "do their best" to hit the deadline anyway (programmers are stubborn optimistic beasts). Management must just take care that no one burns out due to overwork, the sense of purpose will give the morale and energy needed.

So, at the end, if you manage your project correctly and "crunch time" is due to an unforseen cause the team will help you to hit the deadline. If you mismanaged the project, the team may save you once or twice. After that, they lose trust and will eventually leave.

Good luck, and Happy Blogging!





Another proof that I'm a geek

user-pic
Vote 0 Votes

I stumbled upon a site with some fun quizzes. I could not resist, and did the "How Geek Are You" (hint: if you want to score high in this test, you're a geek).

So, here is the result:

94% Geek
See my other quiz results here