ArticlesBase.com - Free Articles Directory
Free Online Articles Directory
08.10.2008 Sign In Register Hello Guest
Email:
Password:
Remember Me 
forgot your password?


How to build great software

Author: Chris Graham Author Ranking Blue | Posted: 21-07-2006 | Comments: 0 | Views: 556 | Rating:  (50) Article Popularity - Green (?) Got a Question? Ask.
Sign Up Now!

In this article I'm going to explain the top 10 software development fallacies my company avoids. By avoiding these myths and concentrating on excellence, we are able to make great quality software.

Myth 1) Software must be designed in detail before development starts, so that a clear plan can be out-layed.

The truth) The more complex a design, the more like software the design itself is. By perfecting a design, then writing the software to that design, you're effectively writing the work twice. Instead, by doing just some simple design sketches and data modelling rather than a book-like design, a good development team can create a shell for the software and efficiently refine it towards the finished product. This process of refinement creates natural prototypes, allows easy adaptation when issues that would be unforseen by a design arise (or brought up as fresh concerns by a client), and the total process takes significantly less time. To pull this off requires a close team, skill, and experience, but it is by far the best option for the majority of situations.

Myth 2) There are programmers, designers, analysts, and users.

The truth) By structuring development so that all developers get some exposure to each part of the development process, skills may be shared and greater insight may be gained. If developers are encouraged to actually use the software then they can use that expertise to think of improvements that otherwise would not come to light.

Myth 3) A happy team is a productive team.

The truth) A team of people with a wide variety of natural skills, experience and concern, that criticises each other and argues vehemently over the smallest details, will bring up and resolve issues that otherwise would never be tackled. A furnace of relentless argument is the best way to forge understanding and reach perfection.

Myth 4) It's important we understand our direction and don't compromise with it.

The truth) Life is compromise, and compromise is not a weakness. There will always be issues (such as efficiency, budget, ease-of-use, power, scope, and the need for easy internationalisation) that cannot be simultaneously met without such compromise.

Myth 5) We know what the client wants, we know what the issues are.

The truth) Without constant re-evaluation, it is easy to lose track of the objective. Developers are often faced with problems to solve that they consider the issues, when those are in fact separated from the actual market goals and can become totally irrelevant. Developers must always understand the market goals and be able to adapt when other things change, or even the goals themselves change.

Myth 6) Bigger is better. Features are cool.

The truth) Features can easily confuse users, and their actual value should always be considered against the cost of confusion. In some cases it is sensible to actually remove working features due to such concerns.

Myth 7a) The customer is always right.

The truth) Most customers try hard not to look ignorant in front of software developers, and hence phrase their suggestions in a technical way. The effect is that often suggestions aren't really appropriate, because they're not founded on a solid understanding of technical issues.

Myth 7b) The customer is often wrong.

The truth) Although customers needs are often not best met by doing literally what they say, they always know what they want and why they want it - and usually for very good reason. Understand them and adapt what they say, discuss with them, but never ignore them.

Myth 8) Comment your code a lot.

The truth) Good code needs hardly any commenting, because sensible uses of naming and white-space are better alternatives. Comments should only ever explain the non-obvious, or provide standard API documentation.

Myth 9) Such and such is needed, such and such is great.

The truth) A bad workman blames his tools. Whilst some development tools aid development substantially, a good developer can do great results in most things served to them. There are a few exceptions, like Microsoft Access, or assembly language, but generally speaking the difference in quality results is much more due to the skills of the developers than the quality of their tools.

Myth 10) The customer will understand if there's an efficient and easy-to-use interface.

The truth) The interface doesn't just need to be easy-to-use, it needs to be navigatable without an overall systems understanding. Screens need to be self-describing.

Rate this Article: Current: 0 / 5 stars - 0 vote(s).

Article Source: http://www.articlesbase.com/programming-articles/how-to-build-great-software-42840.html

Print this Article Print article   Email to a Friend Send to friend   Publish this Article on your Website Publish this Article   Send Author Feedback Author feedback  
About the Author:

Managing Director of ocProducts, a company specialising in software (ocPortal) to help people build a website.

Submitting articles has become one of the most popular means of generating quality backlinks and targeted traffic to your website. Join us today - It's Free!

Article Comments

Comment on this article Comment on this article
Your Name
Your Email:
Comment Body
Enter Validation Code: Captcha


Related Articles

Measuring The Success Of Your Outsourcing
By: Steve Mezak | 10/09/2005 | Business
Business Articles, learn about busines - An organization created with the objective of making a profit from the sale of goods or services.

Custom Software Development Checklist
By: Michael Cordova | 19/11/2006 | Advertising
Advertising Articles, Advertising is the paid promotion of goods, services, companies and ideas by an identified sponsor. Marketers see advertising as part of an overall promotional strategy.

What Makes a Great Trainer?
By: Andrew Wood | 29/02/2008 | Training

Download Music, Movies and Games for Free - A Hot Issue
By: Harry Rackers | 18/05/2006 | Music
Music Articles - Music is a natural intuitive phenomenon operating in the three worlds of time, pitch, energy, and under the three distinct and interrelated organization structures of rhythm, harmony, and melody.

Music and Movies Download Sites - are They a Scam?
By: Harry Rackers | 22/09/2007 | Software

E-commerce Website Design Guide for Small Business Owners
By: Julia Ramyalg | 15/01/2006 | ECommerce

Infopark - Belarus Association of Software Development Companies Supports the Ukrainian Outsourcing Forum 2007
By: Natalya Arseyeva | 21/08/2007 | Software

Web Design: a First Look
By: HEREIAMLIVE | 19/03/2008 | Web Design

Got a Question? Ask.

Ask the community a question about this article:

Frequently Asked Questions

How to create a slider custom control in C# ?
By: David | 01-09-2008
I would like to know how to create a slider custom control in C Sharp, using subclassing. I just don't know where to start. I have the graphics for the background and thum. I need some code to do this, Please Help..  

New vista windows
By: morningmayor | 01-09-2008
majo hye x permanent what is the new vista window majohexperment for my lap top

What will be study proposal studying govrnance and ...
By: gift | 01-09-2008
what will be study proposal studying govrnance and development

Anybody know the swift code no indian bank pls ...
By: kasimurugan | 01-09-2008
anybody know the swift code no indian bank pls reply

How to change from English to French on my Aol e ...
By: drpswhite | 01-09-2008
 How to change from English to French on my Aol e-mail

Srs audio i bought your software already and my pc ...
By: kimken15 | 31-08-2008
srs audio i bought your software already and my pc just had to go cause it reached the point where it wouldnt start up any more,so i bought a new one and i wanted to know if there was anyway i could re download it again

Q&A Powered by:
Powered by Yedda 

Latest Programming Articles

How to Succeed as a Abap Developer or Sap Abap Development Manager
By: Deepak Mandrekar | 05/10/2008
For anyone working on an SAP implementation project, SAP implementation partners or consulting companies, you very well know that SAP ABAP skills are highly valued within the SAP industry. SAP ABAP developer supports implementation projects with customer specific enhancements, building reports to migrate data from legacy system into the SAP system, build web interfaces using Java Connectors (JCo) or Enterprise Services. Plus if you are creating enterprise services or integrating other third part

E-commerce and Web Portal Development in Vietnam
By: Daniel Jowssey | 03/10/2008
VIETNAM, owing to its superior intellectual capital has emerged as the ultimate destination for low cost e-commerce and web portal development. Companies from all across the globe have found the quality of work delivered by VIETNAMn vendors to be far superior in quality as compared to vendors in their home countries. Another advantage is its location in a different time zone. Vendors based in VIETNAM can respond to the needs of Western clients faster than vendors based in the home country also.

Php Web Development Advantages
By: Rightway Solution | 01/10/2008
PHP (PHP: Hypertext Preprocessor) is a powerful server-side scripting language for creating dynamic and interactive websites. PHP is a popular and widely used programming language used for website development.

Using Comments in Your Programming Source Code by Nicholas Brown
By: Nicholas Brown | 30/09/2008
Save time and money by adding comments to your source code.

Data Transfer Methods of Cnc
By: Gargi Nath | 28/09/2008
A CNC machine cannot function without a program. And a program cannot make its way to the machine without an effective data transfer system. So, what are the methods of data transfer and how effective are they in conveying data from one point to the next?

Software Development Life Cycle Models
By: Paulita C. Lobrin | 27/09/2008
System Development Life Cycle (SDLC) models help in the complete development of a system, right from the conceptual stage to the customer delivery stage. SDLC is very useful if one has a complicated system to build. SDLC is the overall process of developing information systems through a multi-step process, from investigation of initial requirements to analysis, design, implementation and maintenance.

Types of Softwares
By: pntglobal | 27/09/2008
Computer software is a general term used to describe a collection of computer programs, procedures and documentation that perform some task on a computer system. The term includes application software such as word processors which perform productive tasks for users, system software such as operating systems, which interface with hardware to provide the necessary services for application software, and middleware which controls and co-ordinates distributed systems.

Effetive Use of Pointers
By: varadarajan t | 27/09/2008
pointers in c are one of the most striking features of c language. it has several advantages. it can save memory space effectively. using pointers we can handle array of data effectively. this article shows a basic idea of pointers and it usage.

More from Chris Graham

How the Internet actually works
By: Chris Graham | 07/07/2006 | Internet
In this article I will explain how the Internet works, all the way from what goes through the wires and how the wires across the globe connect, to how meaningful activities are performed on your computer. Unlike other Internet articles, I won't try to explain the history behind the Internet of today - it's complex enough, and like me, you probably don't care very much. I also won't be confusing you with highly technical explanations.

Article Categories






Give Feedback

Sign up for our email newsletter

Receive updates, enter your email below