|
|
|
|
|
|
Software Development Best Practice
All major Acronym Software Development projects follow the best practices as outlined below.
Development process - It is important to choose the appropriate development lifecycle process to the project at hand because all other activities are derived from the process. Acronym will use the appropriate process when developing custom applications that best suits the development. For larger projects or where the project requirements are less clear Acronym uses the Agile Development process which is an iterative process based on testing and client feedback, this process is good for delivering the most important phase one requirements quickly. We also use the Water fall process where a client has a very clear understanding of the specific requirements, predominantly this is used for smaller projects and where the complete scope of the project is delivered on the first release.
Requirements - Gathering and agreeing on requirements is fundamental to a successful project. This does not necessarily imply that all requirements need to be fixed before any architecture, design, and coding are done, but it is important for the development team to understand what needs to be built. Quality requirements are broken up into two kinds: functional and non-functional. A good way to document functional requirements is using Use Cases i.e. If the user does this then the system will do this. Non-functional requirements describe the performance and system characteristics of the application. It is important to gather them because they have a major impact on the application architecture, design, and performance.
Architecture - Choosing the appropriate architecture for your application is key. Applying well-known industry architecture best practices is imperative to the success of the project. Predominantly Acronym uses Object Orientated (OO) programming as this provides greater flexibility, and ultimately more cost effectiveness, for the client to make changes down the track. Design - The two basic principles here are "Keep it Simple" and information hiding; to improve code usability and preventing the system from easily being broken when functional changes are made. For larger projects, Acronym performs Object-Oriented Analysis and Design using UML. Reuse is one the benefits of OO programming, code reuse can provide better productivity gains.
Construction of the Code - Construction of the code is a fraction of the total project effort, but it is often the most visible. Other work equally important includes requirements, architecture, analysis, design, and test. In projects with no development process (so-called "code and fix"), these tasks are also happening, but under the guise of programming. A best practice for constructing code includes the daily build and smoke test. Acronym uses continuous integration that also integrates the concept of unit tests and self-testing code. Acronym achieves this best practice by using applications such as Cruise Control for automating builds and running unit tests and SVN (Subversion) for providing a code repository and version control.
Peer reviews - It is important to review other people's work. Experience has shown that problems are eliminated earlier this way and reviews are as effective or even more effective than testing. Any artefact from the development process is reviewed, including plans, requirements, architecture, design, code, and test cases. Peer reviews are helpful in trying to produce software quality at top speed. Acronyms software team works closely together on projects and shares project documentation using “PROMPT” task management.
Data Migration – Many applications are not brand new, but are enhancements or rewrites of existing applications. Data migration from the existing data sources is often is a significant project by itself. It is as important as the new or upgraded application.
Testing - Testing is not an afterthought or cutback when the schedule gets tight. It is an integral part of software development . Acronym develops unit test (where cost effective) as we are coding to ensure code integrity is preserved and to minimise unnecessary code debugging as the project evolves.
Performance Testing - Testing is usually the last resort to catch application defects. It is labor intensive and usually only catches coding defects. Architecture and design defects may be missed. One method to catch some architectural defects is to simulate load testing on the application before it is deployed and to deal with performance issues before they become problems. Acronym will often involve client testing at this stage in an effort to emulate the live system as much as practical.
Quality and Defects Management - It is important to establish quality priorities and release criteria for the project so that a plan is constructed to help the team achieve quality software. It is important that a defect tracking system is used. Acronym uses “PROMPT” a web based task management system to assign and track bugs as they are fixed, this encompasses a full document management system which can be accessed by any number of developers on the project and the client over the web. Acronym often will provide clients access to the system so that issues can be raised directly by the client during client testing and acceptance.
Deployment - Deployment is the final stage of releasing an application for users. There are still things that can go wrong. Acronym plans for deployment and using a deployment checklist to minimise possible issues. Wherever possible Acronym will set up a development server that will actually run the final application for user testing before switching the application to live. As part of deployment Acronym ensures all systems are backed up (along with retention of this data) before data migration/deployment begins and also will work with the client to minimise disruption to the clients live systems and operational requirements. Following a change control document is vital to achieving this process smoothly, this is a fundamental process Acronym follows.
System Support - Without the support function, you cannot deploy and support a new application. The support area is a vital factor to respond and resolve user problems. To ease the flow of problems, the support problem database is hooked into the application defect tracking system. Acronym uses the same task management system for raising and assigning related tasks to track issues as is used in the initial testing phase, thus providing a logical structure for tracking all issues and final project review.
Project Management - Project management is key to a successful project. Many of the other best practice areas are related to project management. Acronym places high importance on project Management and has more than 15 years experience in this area. One of our core principles is "plan your work and work your plan" Acronym uses several tools to manage projects including PROMPT Task Management and Microsoft Project.
Measuring success – Acronym places a high importance measuring the success of a project, including close monitoring of client feedback, improved client efficiencies, measuring web based application success.
|
|
|
|
|
|