Writers' Community!
Home Page Two Columnists Q&A Submit an Article FAQs Contact Author Login
Article Submission
We Need YOUR Articles!
We'll Promote Them for FREE!

Author Login

New Authors
Register Here


Now Serving 8,190 Authors
71,882 Quality Articles
& 3,214 Current Users Online!
Featured Authors
Steve Kovacs (4,119)
Linda DeWitt (1,955)
Edward Rhymes (8,802)
Brianna Popsickle (2,452)
Teresa Ortiz (11,094)
Julian Price (13,305)
Stephany Springer (41,414)
Abigail Richards (9,854)
E. Raymond Rock (3,087)
Terry Mitchell (5,358)
Mark Parsec (16,695)
Nenita Wells (2,071)
Ira Coffin (12,696)
Krystal Kuehn (1,269)

View All Featured Authors
Most Recent
Agile Programming Does Not Excuse a Lack of Design

Was Ares I-X designed by NASAs own CAD-system?

How To Decide A Niche For Your Membership Software?

How to Remove the Vocals from a Song

Jazz Up and Organize Your Inbox with Color Categories

Preventing Malware While Browsing The Internet

Should A Cad Come With The Operation System?

How To Setup An Email Out of Office Auto Reply In Mircosoft Outlook

How can I open a 2007 Microsoft Office file in an earlier version of Office?

What are the Key Requirements for Privacy Control Software?

Home » Categories » Computers & Networking » Software » Agile Programming Does Not Excuse a Lack of Design » Printer Friendly

V Berba Velasco Jr  PhD

Agile Programming Does Not Excuse a Lack of Design

Rated 3.5 out of 5
No Reader Ratings Available ?
Rate It  /  View Comments  /  View All Articles submitted by V Berba Velasco Jr PhD
Submitted Tuesday, November 03, 2009
V Berba Velasco Jr PhD (549)
V Berba Velasco Jr PhD

Articles and Stuff
Add to your Favorite Articles - You are a member of V Berba Velasco Jr PhD's Fan Club!


I once wrote an article titled A Time-Saving Programming Tactic That Doesn't Work.  In this article, I lamented the a misguided tactic that many programmers use in order to deal with software deadlines; they simply coding away, without stopping to think about a proper software design.  I don't have time to design the software! they say, so they just start churning out code.  The intent is to save time, but this approach almost never works except on the simplest of projects.  Without a carefully considered design, more problems are bound to emerge, thus causing more time to be lost.  Whats worse, many of these problems won't become clear until the testing phase comes around, and by then, it may be too late.

Most of the feedback that this article received was positive; after all, experienced programmers have generally encountered this pitfall time and again.  However, one reviewer said, The author obviously knows nothing about agile progamming.  With agile methods, you don't need any elaborate designs.  You can just start coding away, and you can save yourself a lot of time that way.

I always appreciate honest feedback; however, I think this comment betrays a common misconception about agile software development techniques.  It is true that non-agile methods tend to emphasize extensive up-front documentation and design; however, this does not mean that agile programming is synonymous with a lack of design or documentation.  Rather, when agile methodologies are used, the designs (and documentation, as applicable) are iteratively refined as the code is tested and one gains greater understanding of the projects scope and problems.

In other words, it would be grossly unfair to say that agile methods do not require any prior design.  Agile methods are adaptive, not unplanned or undisciplined.  I am by no means an evangelist for these techniques, but I do recognize that they go far beyond merely jumping in and coding away.

Personally, I tend to favor up-front design.  I feel that agile techniques tend to be overhyped and overrated.  I also believe that thoughtfully considered up-front designs will tend to save time and prevent a great many problems from creeping into the code.  However, this does not mean that I would insist on a comprehensive up-front design, since in most situations, this tends to be unproductive.  I find that its better to adopt a measure of agility.  That is, I prefer to develop a reasonably thorough systems-level architecture something more than just skeletal and then refine it as bugs are found and ideas come along.

The reality is that most up-front designers will tend to do the same thing.  They will tend to create an initial design, but they seldom have the patience to plan everything down to the fine details.  Nor is this generally advisable; after all, agility advocates are correct when they say that ones understanding of the required software functionality will tend to increase as the software is developed.

Similarly, skilled agile programmers generally will not abandon up-front design altogether.  They understand the need to think things through and consider various approaches.  They might write tentative pieces of code in an exploratory way, but thats vastly different from simply jumping in and coding away.  Even within an agile development process, skilled programmers will generally alternative between frenetic coding and careful contemplation.

Programmers need to divest themselves of the notion that one can avoid software planning and design on account of being agile.  Agility means adaptability.  It is not a synonym for coding by the seat of ones pants.


About the author:

V. B. Velasco Jr. works for a biotechnology firm that specializes in ELISPOT instruments and contract research, among other products and services.



tweet this!



Reprint Rights

You are a member of V Berba Velasco Jr PhD's Fan Club!

No comments yet.


Was this article helpful to you? Leave a Public Comment or Question:

This Article has been viewed 8 times.
Article added to SearchWarp.com on 11/3/2009 12:08:50 AM.
View other articles written by V Berba Velasco Jr PhD (549)
V Berba Velasco Jr PhD


If you found this article interesting, you may want to check out:

Disclaimer:  All information on this site is provided for informational purposes only! By no means is any information presented herein intended to substitute for the advice provided to you by any health care or other professional or organization.


Today's Most Popular
Linux Command Tutorials - Opening a Linux Terminal / Console to Run Linux Commands - Tutorial Help

FTPS (FTP over SSL) vs. SFTP (SSH File Transfer Protocol): What To Choose

Software Development Lifecycle (SDLC) - Overall Project Measurement

How to link contacts in Microsofts Outlook 2007

Defect Classification In Software Testing

Some Thoughts on Random Number Generation

Best Registry Fix - Correct DLL Errors And More

5 Ways You Can Make Money with Adobe Photoshop.

Agile Programming Does Not Excuse a Lack of Design

Improve PC Performance - 6 Tips You Must Know.

Viewed from Cache. Load Time: 0.016.

Home  |  Page Two  |  FAQ's  |  Contact  |  Terms of Service  |  Article Submission Guidelines  |  Questions & Answers  |  Privacy  |  Mission / About
Copyright © 1999-2009 SearchWarp.com, All Rights Reserved - SearchWarp.com is an IcoLogic, Inc. Company