This article meant for small, web application and web site development companies which need some formal guidelines in their development activities toward success. Written in a simple format. For suggestions and clarifications contact the author at [email protected]

Creating Software for Personal Computers and making it available for a single user or a small group of user is becoming outdated. In this Global village if anyone creates an application, it should be web based so that the user can, just not only run the application from his office PC, but also while he is away on vacation from his home. To attain this the application should be web based. These applications are called as web applications.

But many of the Web Application Development projects fail to meet the user’s requirements or to be implemented within budget. In this article let us briefly discuss some of the success factors that can make a development effort standard and significantly success.

Finding the scope

Before starting the development of a web application project, the development team should understand and document, the scope of the application. Particularly, who are the users, does they have Internet access in their home and what are the advantages does the user get if the software application becomes an web based application.

Compare with some sample Applications

Before starting the application designing review as much as applications possible, and list out their features and drawbacks. They can give you the dos and don’ts and that can lead you to make your application to overtake your competitors. Moreover you can think about various aspects that you can add in your application. For example you competitor’s applications may be in MS Access as a back-end database. You can add facilities that can support MS-Access as well as MS-SQL server.

Let your plan be realistic

Estimating (not guessing) the time and letting your developers to work under a realistic plan is a must for your application success. Always estimate the development time in man- hours and not in man-days or man-months. To estimate the time in hours, you should document your micro parts of the applications and all complexities involved. Now you can give your people to work in a stress free environment and a low bug factor in your application.

Meeting the agreed modules

Before winding up each module there should be a verification, that ensures that all the agreed things in the planning meeting and the commitments given to the customer are present in the module. For example if the application needs load balancing should provide the necessary load balancing mechanisms.

Pushing your schedule up

Unless you have a reasonable justification, do not prepone your development time. Just for marketing reasons, changing the schedule may lead to lots of bugs and that may cost even more than the estimated. Urging your programmer to finish the modules before the time estimated for that, can not help the application development a success. If you are managing the project keep the original estimated time and the development plan and not the exigency.

Managing the configurations

When you build web or software application, there happen always some changes. So that, we need have control over that. Configuration management is a set of activities that are designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling changes that are imposed, and auditing and reporting on the changes that are made. If you are working as a team with same source code you need to have a proper configuration management system established for your firm to have good control over the changes. Find one like Clearcase or Subversion.

Formal milestone reviews

Conduct milestone reviews whenever you need to check you web application development progress. Milestone review is a formal review of management and technical progress of a project. This kind of review meetings can accurately tell you the project’s stand.

Conduct short time meetings

Even if you are not following extremeprogramming standards, you can still follow standup meetings at everyday morning. This can check with your team about the status and to in form short notices. You can finish the discussion quickly and move your work. Everyone in the team can understand about what each other is doing in the standup meetings and there will be a good coordination between each other.

Testing …Testing…

Allot at least 25% of the development time for testing. Intensive testing is needed in this competitive product world. Use good testing tools and methods that can match with your applications. You can find good FAQs and resources at softwareqatest.

Achieving Quality

Quality control is not just Testing. Establish a Quality control procedure list, for your company with your present setup which the company affords. Everybody in the firm should learn the standards and procedures that the company follows. Refine your process according to your procedures. If you are a small company, try to create the standards and quality control measurements at the earliest, because its easy to do and improve. If your team does not have a good stand on Quality you can not achieve quality web application.

References:

  • C. Jones, “Patterns of Large Software Systems: Failure and Success,” IEEE Software, Vol. 12, No. 2, Mar. 1995, pp. 86–87.
  • Books such as Tom Gilb’s Principles of Software Engineering Management (Addison Wesley).
  • Standup meeting at Extreme Programming – http://www.extremeprogramming.org/rules/standupmeeting.html
  • Internal Quality Assurance Guidelines from State of Texas : Department of Information Resources.
  • Software Engineering – A Practitioners’ Approach by Roger Pressman.
  • About the author: Benny Alexander is a web developer, having more than 5 years of web development and web marketing experience, worked for various web development companies. He is basically a Visual Basic, ASP, MS SQL server programmer, and also a freelance writer, writing technical articles and other content for fortune 500 company intranets and extranets.