You're receiving this because you subscribed to our newsletter via this form or during signup. [unsubscribe]

Header

Issue #1: January 5, 2010
Join our List | View in Browser

In this issue

Header

1.  Source code branching and merging made easy with distributed version control
2.  PM Classic: "Adrenaline Junkies" and "Mañana"
3.  Gantt charts and software projects


1. Branching and merging made easy with distributed version control

Header

Distributed Version Control Systems (DVCS) represent a massive improvement over centralized version control systems such as CVS and Subversion. DVCS makes developers' lives better by making it easy to merge changes and simple to maintain branch repositories for new (or experimental) development.

In this StackExchange question, Fog Creek's Jason Rosoff shows off the basics of branching and merging using Fog Creek Kiln:

read article  "Kiln Branch and Merge How-To"


2. PM Classic: "Adrenaline Junkies" and "Mañana"

Header

Adrenaline Junkies and Template Zombies is a Project Management classic by a group of six experts who have collectively spotted 86 distinct patterns of Project Management behavior. As the introduction puts it:

Header

Most people who do project work are pretty good at pattern recognition and derived hunches ("I sense that this project is headed for disaster"), but not so good at abstracting their patterns into a more usable form. Thus this book. We six authors have put our heads together to articulate the patterns we've been absorbing during our combined one hundred and fifty years of experience.

Header

The first pattern it describes is the (often unfortunate) culture of "Adrenaline Junkies:"

Header

Pattern #1: Adrenaline Junkies

The organization believes that frenzied activity is a sign of healthy productivity.

Adrenaline

The phone rings.

"We really have to fix a requirements specification this week. Can you come and see what you can do with it?"

"What's wrong with the specification?"

"We were in a hurry, so we got a bunch of new hires to write it. We think they don't know what they're doing."

"Then wouldn't it be more productive for us to coach them in writing requirements?"

"But we need the specification this week."

"Okay, I'll come tomorrow."

Two hours later:

"Can you come and look at our estimates?"

"What happened to the specification?"

"We don't have time. We'll go ahead with the requirements as they are. My boss wants the estimates to be handed in today..."

You probably recognize the characteristics of the adrenaline junkie organization: Priorities are constantly shifting; everything is needed "yesterday;" there's never enough project time before delivery; every project is urgent; and the urgent projects just keep coming. Everybody is frantically busy... all the time.

People in these organizations do not think strategically. Work gets done on the basis of its urgency alone. Unless a project's "frantic factor" is high, it will be ignored—even though it promises a significant long-term advantage. It will remain ignored until it suddenly (surprise, surprise) becomes urgent. Adrenaline junkies believe that the best way to work is not by planning but by running as fast as possible.

This kind of culture equates desperate urgency with effective performance. If you are part of such a culture, it is difficult to avoid becoming addicted: Urgency is encouraged. The programmers who work through the night to meet an absurdly short deadline are lionized (never mind the quality of what they deliver). Teams that routinely come in on the weekend, just to keep up with their workload, are regarded more favorably than those that don't. Moreover, if you're somebody who does not work excessive overtime and are not frenetically busy all the time, then you are not "one of us"; you are not one of the busy-busy-busy people who keep the organization afloat. Non-heroic activity is plainly not acceptable.

Most adrenaline junkie organizations contain at least one bottleneck. This is the hero who makes all of the design decisions, is the only source of requirements, or makes all the architectural decisions. He is playing two roles: One is to make himself appear to be busier than mere mortals can hope to be. The second is to produce a logjam of decision-making that once released, causes the rest of the organization to become even more frantic.

Most adrenaline junkie organizations enthusiastically embrace the customer service ethic: They confuse responding to urgency with admirable responsiveness. When a customer makes a request, regardless of its potential for profit (or even usefulness), it instantly becomes a project, often with a ridiculously short deadline. (See Pattern 38, "Project Sluts," for more on this.) This new project naturally increases the workload on the already overloaded heroes, so more busyness comes about—all of it feeding the insatiable need for the organization to be very, very busy. Many of these organizations think—falsely—that this is what being agile is all about.

Adrenaline junkie organizations react rather than consider. The result is that most things are in a state of flux, and nothing is settled or long-term. The fluid state persists: Specifications are fluid—nobody really knows what to build. Designs and plans are fluid—they will almost certainly be changed tomorrow. There is no attempt to prioritize by importance or value—there is just urgency.

There is no Betty Ford Clinic for adrenaline junkie organizations, and there may well be no cure short of eliminating the adrenaline junkies and replacing them with managers who understand that the organization is most effective when it is not in a state of emergency. Such a replacement may well be impossible, though: It is usually upper management, and often the CEO, who wants to see the organization in a constant state of frenzy. After all, frenzy sustains the illusion of healthy productivity. And if the managers of a company are adrenaline junkies, then project teams are not far behind.

Adrenaline junkie organizations don't always fail. Some of them continue to operate at a frenzied pace for years. But none of them can ever build anything big—that requires stability and planning. Junkie behavior is not scalable—it is limited to what can be achieved by a relatively few people working very, very hard with little direction or strategy.

Naturally, in any organization, there are times when things need to be done urgently, and there are some roles in an organization that need to concentrate on urgent tasks. But all things are not always urgent, and all roles are not concerned with urgent matters. Unless urgency can be replaced with prioritization and restraint, there is little hope of curing the addiction of adrenaline.

Header

But on the opposite end of the spectrum, there's "Mañana:"

Header

Pattern #7: Mañana

We all have windows of time within which we recognize that we need to start moving and keep moving to complete some work. Delivery dates beyond those windows create no sense of urgency, and therefore little motivation to act.

Asleep

What if Paul Revere took his midnight ride through the villages and towns of Massachusetts shouting, "The British are coming! The British are coming! Sometime next year—I'm not exactly sure when or where, but next year, the British are coming!"

You've got to expect that he just wouldn't have gotten the response he was hoping for. He probably would have been met with angry shouts of "Put a cork in it, Paul!" He may have even met with the occasional projectile chamber pot.

A sense of urgency is a magnificent catalyst for action. Remove that urgency, and that action slides down the list of Things To Do Today. Other matters become more compelling, and today is consumed by all other stuff that consumes days.

We all have windows of time within which we recognize that we need to take immediate action in order to complete some work. For most of us, the window is about 30 to 90 days out. We can look at ourselves today, and see the path of work ahead for the next 30-90 days. We can plan our work for those days, and we can feel the urgency. We get a move on; we get an eagle-eyed focus on what needs to be done.

Outside that window is mañana. Mañana is our state of recognizing personal responsibility to complete some work—without recognizing that we must commence work now in order to be successful.

Most projects are longer than the human window of urgency. People cannot feel the urgency in their soul when the organization tells them that it is incredibly important to complete a project within the next 30 months. They hear it; they understand why it is important; but a little voice inside their head says, "Thirty months, by then you could be dead."

Big projects stay out of mañana by keeping most people focused inside the window. They do this by directing the work toward tangible deliverables inside 90 days, often inside 30 days. You hear proposed deliverables like these:

"Let's build a prototype of the trading screens—just for the bond traders, within the next two weeks."

"Let's build the code so the system can take in new orders, check if the items are in stock, and send a message to fulfillment. Don't worry about changed or cancelled orders or anything else, just new orders. We should be able to demonstrate this by mid-month, all right?"

The wonderful thing about project people is that they can take on these near-term tasks as though they are up against the actual finish line. On basically healthy projects, people will work hard and stay focused on the prototype due in two weeks, just as if they were delivering the final system in two weeks.

Be careful, though: The key is a real deliverable at the end of the window. Progress alone is insufficient. Something like "Let's get the spec to fifty percent complete by the end of May" just does not supply satisfying closure. The little voice says, "Fifty percent-that means not done by the end of May. What other work do I really have to complete by then?"

Watch out for a particularly virulent form of mañana: inordinate amounts of time spent ready to get started. Everyone spends time hunting for the perfect tools to support testing; everyone debates exactly how the libraries will be set up to provide the best possible support for developers. This time has much more value if it is saved for finishing the work at the end of the project.

Shiela Brady, recalling her days as a project manager at Apple, had this observation about mañana versus what is in the line of sight:

"There has never been a project that, as it came down to the finish, wouldn't die for an extra week on the schedule."

Like all good project managers should, Sheila realized that the early days of the project are not treated as preciously as those at the end--and that the best way to get going is to get going, not mañana, but today.

Header

Have you ever worked with "Adrenaline Junkies?" Have you ever been faced with a far-off "Mañana" deadline? Or has your organization found the perfect balance of urgency and long-term planning?

Discuss it on our StackExchange site:

read article  Developer Newsletter 01/05/10: "Adrenaline Junkies" vs. "Mañana"


3. Gantt charts and software projects

Header

Gantt charts, a means of managing a complex network of project dependencies, are 99 years old. (Older than the Turing Machine!) Do they have a place in software project management? Fog Creek's Rich Armstrong explores the question:

read article  "Why doesn’t FogBugz offer Gantt charts?"



Header

Text passages from Adrenaline Junkies and Template Zombies printed with permission from Dorset House Publishing. Copyright notice:

Adrenaline Junkies and Template Zombies: Understanding Patterns of Project Behavior. ISBN: 9780932633675. Copyright (c)2008 by Tom DeMarco, Peter Hruschka, Tim Lister, Steve McMenamin, James Robertson, and Suzanne Robertson. Reprinted by permission of Dorset House Publishing.

Available on Amazon.com:

http://www.amazon.com/Adrenaline-Junkies-Template-Zombies-Understanding/dp/0932633676/ref=sr_1_1?ie=UTF8&s=books&qid=1261170911&sr=8-1