Practices
  Home arrow Practices arrow Page 6 - The Art Of Software Development (part 5): Adding Value
Dev Shed Forums  
Administration  
AJAX  
Apache  
BrainDump  
DHTML  
Flash  
Java  
JavaScript  
Multimedia  
MySQL  
Oracle  
Perl  
PHP  
Practices  
Python  
Reviews  
Security  
Smartphone Development  
Style-Sheets  
Web Services  
XML  
Zend  
Zope  
Mobile Linux  
App Generation ROI  
IBM® developerWorks  
Forums Sitemap  
E-Commerce Hosting  
Linux Web Hosting  
Managed Hosting  
Small Business Hosting  
VPS Hosting  
Weekly Newsletter

 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid  
Request Media Kit
Contact Us  
Site Map  
Privacy Policy  
Support  
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
Google.com  
PRACTICES

The Art Of Software Development (part 5): Adding Value
By: Vikram Vaswani, (c) Melonfire
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: starstarstarstarstar / 2
    2002-10-15


    Table of Contents:
  • The Art Of Software Development (part 5): Adding Value
  • The Real World
  • Changing Things Around
  • Playing The Numbers
  • Going The Whole Nine Yards
  • Parting Shots

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      error-file:tidyout.log Del.ici.ous error-file:tidyout.log Digg
      error-file:tidyout.log Blink error-file:tidyout.log Simpy
      error-file:tidyout.log Google error-file:tidyout.log Spurl
      error-file:tidyout.log Y! MyWeb error-file:tidyout.log Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article

     
     
    ADVERTISEMENT


    The Art Of Software Development (part 5): Adding Value - Parting Shots
    ( Page 6 of 6 )

    Before I go, one final parting shot - a broad list of things you should do (and things you should avoid at all costs!) in your journey over the software development landscape.
    • Define and adhere to specific goals. Don't begin implementation of a project until you're sure you have *all* the requirements defined and approved, the priorities clearly mapped, and all the resources, assets and sample data are in place. The absence of clear goals can affect the motivation and productivity of your team, as can shifting priorities and a lack of direction.
    • Work and manage to a plan. The software development plan you create in the early stages of the project contains detailed information on how the project will be executed, and you should follow it as closely as possible. Equally important, be sure to update the plan on a regular basis with re-estimations, schedule changes and deviations, and ensure that all your team leads have the latest copy at any time.
    • Perform regular re-estimations. It's important to regularly analyze the progress of the project and re-estimate the time, effort and expense involved; this helps in proper resource (re)allocation and assists in better planning. If a re-estimation results in an unavoidable delay to the committed delivery date, inform your customer in a professional manner, together with the reasons for the delay, and alternatives available (if any exist).
    • Be wary of feature creep. Every change to previously-defined requirements, no matter how small, has an impact on your development plan and estimates. Don't implement changes without first making a detailed assessment of how they will impact the project schedule and budget, and ensure that each change request (and its impact) is thoroughly reviewed with your customer before it is executed.
    • Don't compromise on quality. Poorly-written or inadequately-tested code will come back to bite you later. Avoid the temptation to meet a tight deadline by reducing the time spent on product quality assurance, and take your responsibility to deliver zero-defect software seriously. It's the best way to make your customers happy, and make sure they call you first the next time they needs a contract executed.
    • Don't favour processes over creativity. A process is valuable, but only as a guideline; it does more damage than good when it begins to stunt creative thought. Encourage your developers to experiment with new technologies or techniques wherever possible; it's the only way they'll learn new things. Some experiments will fail and some will succeed; all of them will teach you something.
    • Learn from your mistakes. No process is perfect, and no person infallible. You should audit your project as it passes through different stages, make notes of how and where improvements are possible, and use that learning in subsequent projects. To paraphrase George Santayana, those who fail to learn the lessons of history are condemned to repeat it.
    And that's about all I have time for. I hope you enjoyed this series, and that it provided you with some insight into the processes and techniques that make for successful software development. Now...go practise!

    Note: Examples are illustrative only, and are not meant for a production environment. Melonfire provides no warranties or support for the source code described in this article. YMMV!

     
     
    >>> More Practices Articles          >>> More By Vikram Vaswani, (c) Melonfire
     

       

    PRACTICES ARTICLES

    - More Techniques for Finding Things
    - Finding Things
    - Finishing the System`s Outlines
    - The System in So Many Words
    - Basic Data Types and Calculations
    - What`s the Address? Pointers
    - Design with ArgoUML
    - Pragmatic Guidelines: Diagrams That Work
    - Five-Step UML: OOAD for Short Attention Span...
    - Five-Step UML: OOAD for Short Attention Span...
    - Introducing UML: Object-Oriented Analysis an...
    - Class and Object Diagrams
    - Class Relationships
    - Classes
    - Basic Ideas





    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 3 Hosted by Hostway
    For more Enterprise Application Development news, visit eWeek