Glossary l Downloads l News & Events l Careers  

- Overview
- Vision, Mission & Values
- Quality Policy
- People
- History & Milestone
- Awards & Certifications
- C S R
- Domain Expertise
- Key Differentiators
Best Practices
- Infrastructure

 

 

 

 


Best Practices

1

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. For most modern software development projects, some kind of Incremental, Iterative methodology is used over a waterfall process. There are several choices, including the Rational Unified Process (RUP), Agile Programming, SOA (Service Oriented Architecture), extreme Programming (XP). Having a process is better than not having one at all, and in many cases it is less important on what process is used than how well it is executed. The commonly used methodologies listed above all contain guidance about how to execute the process and templates for artifacts.

2
Requirements - Gathering and agreeing on requirements is fundamental to a successful project. Quality requirements are broken up into two kinds: functional and non-functional. A good way to document functional requirements is using Use Cases. Use Cases are used for non-Object Oriented projects. 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.

3

Architecture - Choosing the appropriate architecture for your application is key. Tried and true practices are called patterns and they range from the classic Gang of Four patterns.

4
Design - Even with a good architecture it is still possible to have a bad design. Many applications are either over-designed or under-designed. The two basic principles here are "Keep it Simple" and information hiding. For many projects, it is important to perform Object-Oriented Analysis and Design using UML. Reuse is one of the great promises of Object Oriented, but it is often unrealized because of the additional effort required to create reusable assets.

5

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. A best practice for constructing code includes the daily build and smoke test. Continuous integration that also integrates the concept of unit tests and self-testing code.

6
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 as or even more effective than testing. Any artifact from the development process is reviewed, including plans, requirements, architecture, design, code, and test cases.

7

Testing - Testing is an integral part of software development that needs to be planned. It is also important that testing is done proactively; meaning that test cases are planned before coding starts and test cases are developed while the application is being designed and coded.

8
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.

9
Configuration management - Configuration management involves knowing the state of all artifacts that make up your system or project, managing the state of those artifacts, and releasing distinct versions of a system. There is more to configuration management than just source control systems, such as Visual Source Safe 2005. There are also best practices and patterns for configuration management.

10
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. As the project is coded and tested, the defect arrival and fix rate can help measure the maturity of the code. It is important that a defect tracking system is used that is linked to the source control management system.

11
Deployment - Deployment is the final stage of releasing an application for users. However, there are still things that can go wrong. You need to plan for deployment.
12
System operations and support - Without the operations department, 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.

13

Data migration - Most applications are not brand new, but are enhancements or rewrites of existing applications. Data migration from the existing data sources is usually a major project by itself.

14
Project management - Project management is key to a successful project.

15

Measuring success - We measure against an industry standard known as the Capability Maturity Model (CMM) and ours is a Quality Management Process.

 

 
Copyright © 2008 gmantis solutions Pvt. Ltd. All rights reserved
Designed & Developed by gmantis solutions Pvt. ltd
 
Home l Privacy l Terms of Use l Site Map l Contact Us  
This Site is best viewed in Higher. Resolution ( 1280 X 768 )