WorkHabit Blogs

WORKHABIT’S BUSINESS BLOG

On containing risk vs getting things done

by Jonathan Lambert Published: May 25th, 2010
Tagged: collaboration, drupal, process, projects, specifications
Tagline: 
Drupal is open: are you?

Drupal as a framework doesn’t lend itself well to detailed specifications — and many projects try very hard to do them to “contain risk” and get “a clear and exact” deliverable.

In my experience Drupal changes so quickly that the waterfall approach to project management often leads to things changing underneath the spec. In addition, this project approach often leads to highly bloated project plans, with everyone having input, and tends to include the kitchen sink. Lastly, containing risk is the opposite of “getting things done,” and tends to attract the kind of developer who’s looking to “have a job” rather than “build great things.” The “creativity in coding” (or what insiders call “hacking”) is one of the largest assets of a well run engineering company. When you don’t leverage it, you’ll rarely if ever end up with a better product than you could conceive of day one — a time when, if you’re honest, you have little insight into what you’re building — and you end up with, at best, your original idea. The learning that you get throughout the process of development is not typically well leveraged. And it’s some of the most important insight you can get as a product manager: how do you know if you’ve got what you want until you see what you have and see if you like it? The ability to change directions from a feature perspective, tweak specific ui elements that may work well on paper but not in real life, or take advantage of the skillets of new or improved skills in staff members during the project isn’t easily leveraged.

Now, there is a usecase for upfront planning, and that comes down to working with the entrepreneurial brain. If you think that “nailing someone down” on requirements is going to help — which is often the case with the kinds of mind that move at a million miles an hour — it can be a great idea. I’ve seen it backfire as well, because the scope tends to be everything. But if you’re trying to “do one thing, and do it well,” which is really the approach you need to manage this kind of personality, it can be extremely helpful to get the overall approach written down, and start from the end result. However, it all becomes a game of personality management when it comes to managing entrepreneurs: are they going to be too detail oriented, and manage by features; are they going to go so big that getting it down on paper is nigh impossible or very difficult; or are they going to work through it with you in a way that can get a clear, quantifiable deliverable that drives the project’s purpose and is aligned with the core strategy? You’re on your own there, but be aware it’s a possible exception — just to keep the entrepreneur from changing directions mid-stream (though that’s not warrantied with this process).

A second use case is when you’re working with organization dynamics. Some organizations require a carefully thought through specification in order to get budget or project approval, and getting it right can be the difference between success and failure, whether you’re working inside of outside of the organization. Sometimes clear deliverables that you can work within are necessary in order to support, or gain the support, or organizational initiatives.

However, even within those two exceptions (and I’m sure there are others: we’re all learning), the majority of time, it’s better to use an iterative, Agile approach with Drupal in order to gain the benefits I’ve laid out.

That requires something important: trust.

Drupal’s very nature is collaborative, open, community-centric, and re-contributive, and organizations that embrace those characteristics in their development projects tend to fare a better long-term result. The trust that inherent in the community is what built the platform to begin with, and it’s therefore advisable that relationships around the product embrace the principals that have made the product successful to begin with.

It’s just something I’ve been thinking about — I’d love to hear comments or reactions.

Interesting post. It’s

Interesting post. It’s this weird balance because on one hand you can’t sign off to pay $xxx/hour for an unspecified number of hours, but you can also kind of hamstring yourself by spending a ton of time on estimation.

It can get pretty ridiculous — case in point: I had a potential client ask me to estimate how long I’d take estimating.

Sometimes rolling technical requirements together with time in the estimation process does wonders to help flesh out the project. Although if you don’t allow enough time for that, you’ll get caught with your pants down 3/4 of the way through your project.

An interesting topic to be sure.

If you want to be agile and

If you want to be agile and are building anything remotely complex outside the scope of a cms, drop drupal and go with django or even rails. You will thank yourself in the end. It is an art more than a science to understand a large project, whose scope will be changing based on client feedback, upfront to know when/where the framework will start to inhibit your development and require more code to back out core assumptins.

Done.

Agreed

Gotta agree with him on django. Just my preference but I think you will find it’s framework to be advanced enough for certain projects you can’t quite fit into drupal :(

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <h3>
  • You can use Markdown syntax to format and style the text.

More information about formatting options

Papernote
Papernote

WorkHabit Labs Archives