Windows Tech Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Tuesday, 26 June 2012

Top-Down vs Bottom-Up

Posted on 21:02 by Unknown
I promised "more to come" yesterday, so here goes... (warning: mindless rambling begins now)

In general terms, within larger organizations (e.g. corporate or government environments), there exists two broad approaches to "software development":

  • Top-Down
  • Bottom-Up

Top-Down

When you have the luxury of working in a structured team scenario, especially (possibly ONLY) when it consists of talented people that ALSO get along VERY well, you can take the time to plan and proceed in a logical manner.  By this, I mean: gather requirements, assess the status quo against the desired outcome, determine gaps, resources, timelines, etc.  And you may even have the luxury of dedicated project managers, program managers, developers, architects, test groups, test procedures, CMMI and all that.

This notion of planning ahead, designing everything methodically, testing and more testing, is all part of the "top-down" approach.  This is the approach taught in schools, text books, lectures, and so on.  It's admirable and difficult to find fault in this concept.  But everything has potential drawbacks.

Bottom-Up

When you start coding within a short time of having an idea.  When you are faced with crisis-mode problems that demand your full attention to solve using whatever tools you have at hand.  When you don't have an elaborate structured environment to delegate tasks to.  When like to create and evolve something, rather than plan it ahead.  All of these reasons, and many more, often lead immediately into a "bottom-up" development process.  Oftentimes this approach ends up at a crossroads with Top-Down ideals, where the developer(s) stops at 2.0 or 3.0 and decides to refactor, clean-up, and document everything.  At this point, it often takes on a new direction that feels more like "top-down", even though it didn't start out that way.

So what's the best way to go?  There is no "best way".  There is only the "way" that works for your endeavors.  Sure, logically speaking, it's hard to argue that with all the right pieces in place, that a "top-down" process isn't the better option.  But a lot (repeat A LOT) of developers do not have such luxuries.  And even more of them have personal leanings towards "bottom-up" because it suits their creative process.  Is that wrong?  Who knows.

I've worked in both camps for quite a bit of time.  There are aspects of each I like and dislike.  Sometimes I compare them to cooking with gas versus a wood fire.  One is simpler to get going, the other has a nicer feel to it.

One subtle, often overlooked, yet serious drawback to the "top-down" approach is the timeline.  With a more rigorous application of metric-oriented planning and execution comes a long duration (start to finish).  While that may seem like an obvious cost risk, the other side of this (the part I propose as being "overlooked") is the budget window constraint.  I've seen plenty of large-scale development projects fall to the cutting room floor because the timeline ran afoul of an ever-scrutinized budget.  Many times it happens before any code has been written.  Great ideas on paper, in a server shared folder, in SharePoint or some other repository, being hashed and vetted and showing immense promise, only to slide unknowingly under the falling axe of a budget cutback.

On the flip-side is the "bottom-up" approach.  Sometimes viewed as "shooting from the hip" or "wild west show' approach.  Get the code moving sooner and work out the kinks as they come up.  Give and take with the end users.  It is exciting to work in that fold.  I much prefer meeting users face to face than sifting through survey reports, forum threads, and e-mails. 

As Chris Curran states*: 
"While Agile and CMMI can coexist, there are limits.  Agile practices can normally function with CMMI levels 1 to 3 but are usually incompatible with the higher maturity levels 4 and 5. At CMMI levels 4 and 5, the intrusion of documentation into the development process over-formalizes Agile’s internal discipline and Agile ceases to be agile."
Everything has limits obviously.  You can't fit either of these approaches to every situation.  There are many stories involving Facebook, Twitter and other recent major ideas where the nexus of their success was taking an unorthodox or hybrid approach to their entire inception and debut.  Stop and think about every aspect of the way your are currently approaching software projects.  Are there things you wish could be improved?  Eliminated?

I need sleep.  Cheers!

* "Are Agile and CMMI Compatible?" - http://www.ciodashboard.com/it-processes-and-methodologies/agile-cmmi-compatible/
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in agile, applications, business, cmmi, programming, projects, software development | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Voting Time: Help Me Out?
    I need to get a better view of how I should manage this blog if I'm going to keep at it. I'd like to know how you typically discover...
  • A World Without Competition
    Try to imagine what things would be like today had there not been fierce competition in certain key parts of our world.  I’ll give you some ...
  • Book Update
    I posted some gibberish a few weeks ago about another book project.  Well, I'm getting close to wrapping it up, so I thought I'd go ...
  • Cost
    Software technology, like any technology, provides a means to solving problems.  Some big. Some small.  Some that help.  Some that hurt.  An...
  • Windows 7: Default User vs All Users
    A lot of confusion seems to occur with understanding the difference between the "Default User" profile, and the "All Users...
  • Time to Give Props
    With the ever-expanding volume and breadth of information on the Internet today, it's easy to focus on my own thoughts, experiences, ide...
  • Table of Contents (Preliminary)
    Here's the preliminary Table of Contents for my new book "The AutoCAD Network Administrator's Bible - 2013 Edition".  I...
  • The Nicest IT and IT Vendor Folks I Know
    I've ranted many times before how it's unfair to "hate" an entire company, without providing a rationale for it based on s...
  • Windows 8
    Two small, yet irritating things, that I hope Windows 8 addresses with respect to Windows 7: Being able to put the Recycle Bin in the S...
  • Stupid Assumptions
    After years of watching sci-fi TV shows, movies, etc. it's finally come to a point where even the so-called brightest of our authors and...

Categories

  • a
  • activation
  • active directory
  • advertising
  • agile
  • agility
  • amazon
  • american
  • apple
  • application virtualization
  • applications
  • art
  • articles
  • asp
  • augi
  • authors
  • autocad
  • AutoCAD Autodesk
  • autodesk
  • autolisp
  • automation
  • automotive
  • backups
  • batch
  • beer
  • beta
  • blackberry
  • blogs
  • bongloads
  • book
  • books
  • Books writing kindle amazon technology business projects
  • browsers
  • business
  • cad
  • career
  • certification
  • chrome
  • city government
  • civilization
  • cloud services
  • cmd
  • cmmi
  • comedy
  • command
  • community
  • computers
  • conferences
  • config manager
  • consultants
  • consulting
  • contracting
  • cranium drainium
  • crapware
  • culture
  • data center
  • data mining
  • databases
  • deployment
  • directx
  • DLL
  • domains
  • dumb
  • earth
  • economy
  • editor
  • education
  • election
  • elections
  • employment
  • engineering
  • entertainment
  • environment
  • error monitoring
  • events
  • exchange
  • facebook
  • family
  • firefox
  • flexnet
  • fud
  • fun
  • funny
  • games
  • gary vaynerchuk
  • gmail
  • google
  • government
  • group policy
  • hampton roads
  • health
  • history
  • holidays
  • home
  • html5
  • humor
  • hyper-v
  • iis
  • industry
  • infrastructure
  • installation
  • installshield
  • internet
  • internet explorer
  • interviews
  • jobs
  • jtbworld
  • kindle
  • kixtart
  • lab setup
  • languages
  • ldap
  • learning
  • legal
  • licensing
  • life
  • lifecycle
  • linux
  • lisp
  • logging
  • management
  • manufacturing
  • marketing
  • markets
  • mdop
  • mdt
  • medical
  • messaging
  • microsoft
  • microsoft access
  • military
  • mountains
  • movies
  • mozilla
  • music
  • nature
  • network administration
  • news
  • nook
  • nothing
  • office
  • open source
  • openoffice
  • opera
  • operating systems
  • oracle
  • osx
  • packaging
  • patches
  • people
  • photos
  • podcasts
  • policy
  • politics
  • powershell
  • predictions
  • process automation
  • products
  • programming
  • projects
  • psychology
  • publishing
  • rail
  • reading
  • registry
  • religion
  • reporting
  • reviews
  • rsat
  • rss
  • safari
  • safety
  • sales
  • satire
  • sccm
  • scheduling
  • science
  • scripting
  • search
  • security
  • servers
  • services
  • sharepoint
  • shopping
  • sms
  • social stuff
  • society
  • softgrid
  • software assurance
  • software deployment
  • software development
  • software packaging
  • sony
  • speaking
  • sports
  • sql express
  • sql server
  • statistics
  • Statistics news marketing
  • steve jobs
  • stories
  • stuff
  • stupidity
  • symantec
  • sysinternals
  • system center
  • systems architecture
  • t-sql
  • taxes
  • technet
  • technical support
  • technology
  • TED
  • ted talks
  • testing
  • textpad
  • thoughts
  • traffic
  • training
  • transportation
  • travel
  • troubleshooting
  • tutorials
  • twitter
  • ubuntu
  • unattend
  • unemployment
  • updates
  • upfront ezine
  • utilities
  • vacation
  • vba
  • vbscript
  • video
  • virginia
  • virginia beach
  • virtualization
  • visual lisp
  • vmware
  • vmware server
  • voting
  • war
  • weather
  • web
  • web browsers
  • web development
  • web sites
  • windows
  • windows 7
  • windows live
  • windows server
  • windows server 2012
  • windows8
  • winpe
  • wise
  • wmi
  • work
  • writing
  • ws08
  • wsus
  • wwa
  • x64
  • xml
  • ze frank

Blog Archive

  • ►  2013 (37)
    • ►  October (1)
    • ►  September (5)
    • ►  August (8)
    • ►  July (2)
    • ►  June (4)
    • ►  May (4)
    • ►  April (2)
    • ►  March (2)
    • ►  February (8)
    • ►  January (1)
  • ▼  2012 (120)
    • ►  December (14)
    • ►  November (12)
    • ►  October (10)
    • ►  September (7)
    • ►  August (3)
    • ►  July (2)
    • ▼  June (6)
      • Jobs. Jobs. Jobs. IT Jobs
      • Top-Down vs Bottom-Up
      • Top-Down, or Bottom-Up? The Yin and Yang of Softwa...
      • From Adios to Hola! SCCM is Back in my World
      • Microsoft TechEd 2012 - The Experience in Review
      • Random Rants and Idle Idiocy
    • ►  May (6)
    • ►  April (20)
    • ►  March (16)
    • ►  February (18)
    • ►  January (6)
  • ►  2011 (343)
    • ►  December (15)
    • ►  November (23)
    • ►  October (27)
    • ►  September (35)
    • ►  August (29)
    • ►  July (17)
    • ►  June (23)
    • ►  May (20)
    • ►  April (38)
    • ►  March (61)
    • ►  February (54)
    • ►  January (1)
Powered by Blogger.

About Me

Unknown
View my complete profile