Practices
  Home arrow Practices arrow Page 6 - The Art Of Software Development (part ...
Dev Shed Forums 
Administration  
AJAX  
Apache  
BrainDump  
DHTML  
Flash  
Java  
JavaScript  
Multimedia  
MySQL  
Oracle  
Perl  
PHP  
Practices  
Python  
Reviews  
Security  
Style-Sheets  
Web Services  
XML  
Zend  
Zope  
Forums Sitemap 
IBM® developerWorks 
Sun Developer Network 
Dedicated Servers 
E-Commerce Hosting 
Linux Web Hosting 
Managed Hosting 
Small Business Hosting 
Moblin 
JMSL Numerical Library 
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? 
PRACTICES

The Art Of Software Development (part 5): Adding Value
By: Vikram Vaswani, (c) Melonfire
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 5 stars5 stars5 stars5 stars5 stars / 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:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb 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 shoulddo (and things you should avoid at all costs!) in your journey over thesoftware development landscape.
    • Define and adhere to specific goals. Don't begin implementation of aproject until you're sure you have *all* the requirements defined andapproved, the priorities clearly mapped, and all the resources, assetsand sample data are in place. The absence of clear goals can affect themotivation and productivity of your team, as can shifting priorities anda lack of direction.
    • Work and manage to a plan. The software development plan you create inthe early stages of the project contains detailed information on how theproject will be executed, and you should follow it as closely aspossible. Equally important, be sure to update the plan on a regularbasis with re-estimations, schedule changes and deviations, and ensurethat all your team leads have the latest copy at any time.
    • Perform regular re-estimations. It's important to regularly analyzethe progress of the project and re-estimate the time, effort and expenseinvolved; this helps in proper resource (re)allocation and assists inbetter planning. If a re-estimation results in an unavoidable delay tothe committed delivery date, inform your customer in a professionalmanner, together with the reasons for the delay, and alternativesavailable (if any exist).
    • Be wary of feature creep. Every change to previously-definedrequirements, no matter how small, has an impact on your developmentplan and estimates. Don't implement changes without first making adetailed assessment of how they will impact the project schedule andbudget, and ensure that each change request (and its impact) isthoroughly reviewed with your customer before it is executed.
    • Don't compromise on quality. Poorly-written or inadequately-testedcode will come back to bite you later. Avoid the temptation to meet atight 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 callyou first the next time they needs a contract executed.
    • Don't favour processes over creativity. A process is valuable, butonly as a guideline; it does more damage than good when it begins tostunt creative thought. Encourage your developers to experiment with newtechnologies or techniques wherever possible; it's the only way they'lllearn new things. Some experiments will fail and some will succeed; allof them will teach you something.
    • Learn from your mistakes. No process is perfect, and no personinfallible. You should audit your project as it passes through differentstages, make notes of how and where improvements are possible, and usethat learning in subsequent projects. To paraphrase George Santayana,those who fail to learn the lessons of history are condemned to repeatit.
    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 andtechniques that make for successful software development. Now...gopractise!

    Note: Examples are illustrative only, and are not meant for a productionenvironment. Melonfire provides no warranties or support for the sourcecode described in this article. YMMV!
    DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

     

       

    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-2008 by Developer Shed. All rights reserved. DS Cluster 3 hosted by Hostway