Channels ▼
RSS

Embedded Systems

The Fruitlessness of No Methodology


A just-published survey from Forrester Group about the habits of developers, including many readers of Dr. Dobb's, reveals new insights into the software development process as it continues to evolve at the fast pace we've seen for the last two decades. During the next few weeks, we'll share the results with you and look at what they portend. Perhaps the most striking result in the survey is the response to the question "Which methodology most closely reflects your development process?"

More Insights

White Papers

More >>

Reports

More >>

Webcasts

More >>

The most common response, from a whopping 28% of respondents (on a base of almost 500 developers), was "no development process." (By comparison, the #2 response, Scrum, garnered half as many responses. All other options scored 9% or less. ) It's hard to fathom that more than one in four professional developers today use no specific methodology. I'd love to believe that this is strictly the result of benighted management that has no clue about how development should be run, but personal experience tells me this is not the case. It's a combo shot of both management and developers.

The latter fulfill a stereotype that I've seen numerous times: the cowboy style hacker who enjoys a maverick image, who gets the results he wants — so he thinks. He'd rather be left alone to do his work than to attend stand-up meetings, have others review his code, or indulge in any of the fancy folderol that a "me-tho-do-lo-gy" would require. It's not the only stereotype or profile, but it's a persistent one. I still meet them. They get by strictly on their talents, while everything else they do encumbers their path. As a result, they spend far more time in the debugger than they need to, they manage code poorly, they hack builds together, and generally have a poor idea of where they stand in the project's roadmap. They are not good teammates.

There are, of course, other situations that are far more frustrating, which consist of good programmers trapped at a site where managers are opposed or incapable of adopting a process. These managers are sometimes ex-cowboys, or they simply haven't been educated in the value of any methodology. Others don't have the management capabilities or enjoy executive backing for instilling the discipline of a methodology. Here, I believe, developers can take the lead. They can begin, among themselves, to create their own process and build it from the bottom up. A question that immediately arises is: "Which methodology should we choose?" And the wisest answer is: "It doesn't matter." Any methodology is better than none at all.

The presence of a methodology will invariably generate a clearer understanding of the deliverables, a well-defined set of responsibilities that can be assigned to team members, defined build and test processes, a review process, and a shipment calendar. Effectively, it's a minimalist SDLC that enables everyone to plug into their roles and understand their place in the various project's dependencies. Doing this requires the participation of most developers on the team and will surely require a senior person to oversee it. In its final form, it might well look unlike any formally defined process (lean, XP, or the like), but it will deliver better results than no process. If a more structured methodology is chosen later, this first step will greatly ease adoption.

Even one-man projects are well served by a basic methodological framework. I believe the vast number of abandoned open-source projects is partially due to the inability of their principal developer to move forward for lack of a systematic and disciplined approach. Most projects of any value require great exertion over a long period of time, often without much — if any — support from others. If a project involves a long and somewhat arduous commitment, then most anything that increases the burden contributes to the project's abandonment. For this reason, all developers will benefit from basic methodology disciplines in their private work.

Doing this solo requires sober self-analysis, as it is likely that individuals are disciplined in one area and undisciplined in others. This is certainly true of me and, from what I can see in OSS projects, of many others. Methodology is most needed where the team (here, the individual) is least disciplined, so that one step in the process does not bring the whole project down. Taking this point to the level of an entire team: It would be convenient to believe that the strengths of the various team members overlap so that all activities are properly covered, but in my experience, this is not the case. Most teams have a glaring weakness somewhere that places a significant drag on progress. A methodology makes those areas salient and provides tools for resolution. This is why nearly three-quarters of all developers use some kind of methodology and are unlikely to give it up to return to an undisciplined approach.

— Andrew Binstock
Editor in Chief
alb@drdobbs.com
Twitter: platypusguy


Related Reading






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video