Software development is like tailoring a suit. The fit and nuances of designing have to be well understood and neatly executed for a great finish.
Our application development strategy involves a combination of offshore and on-site activities with the on-site program management team handling client interaction related activities like requirement analysis, acceptance testing, implementation, training etc. The offshore team handles development and maintenance support.
The implementation of the project will proceed in the following phases:
Analysis: This phase will involve the conceptualization, analysis of the requirements and the creation of the following 2 documents:
- BSD (Business Specification Document)
- SAD (System Architecture Document)
After the client approves (signs off) the aforementioned documents, we will freeze the requirements and proceed to next stage
- Design: This phase will involve unit level design, database design and screen layout design. The layouts will be submitted to the client for review. After the client approves the layouts, the next phase will commence.
- Build: This phase will involve the build of the system. Unit Level testing, System Integration testing and Volume testing will also be included in this phase.
- UAT (User Acceptance Testing): This phase will involve the testing of the application at the user site. The test plans used for this activity will include test plans used during Build and Black-Box cases supplied by the client. The client will have to approve test results before we proceed to the next stage.
- Production migration: This is the last phase of the development stage. We will migrate the application onto production servers.
- Support: This will be covered under an annual maintenance contract. We will provide 24-hr. online support to the application.
We follow the SEI-CMM school of thought. The project will be headed by a project manager. Project Leader will report to the manager and will be the operational in-charge. Module/Team leaders will report to the project leader. Developers will report to the team leader. An independent SQA (Software Quality Analyst) will be appointed for the project.
The SQA will conduct quality audits on a fortnightly basis.
The coding for each unit will be preceded by the preparation and review of design documents. Also, test-plans will be made for all units and reviewed before the commencement of coding.
We have a web-enabled application that logs and keeps track of all our defects discovered at various stages during the SDLC. This data is useful for tracking the origin of the defects and in removing kinks from our processes. Also, this data is useful during preparation of regression-test plans.
We also believe in maintaining a strong focus on the review process. All documents prepared will be subjected to a review before they are cleared. The same is true for all code written. Unit-Level testing and verification guaranteeing at least full code-coverage will succeed the development. There will be a system level integration and regression testing exercise at the end of the development cycle. A system-integration and testing plan will be prepared before this exercise and all results will be verified by the SQA.
Please Note that once unit testing for a unit (fresh development) is complete, strict version and source control standards are enforced.
Also, we have a backup-policy which calls for source and data backups (full) every weekend and incremental backups at end-of-day.
Quality Criteria proposed:
Our Quality goals for this project would be:
- Design and Analysis: 30% of total defects likely to be injected.
- Coding: 70% of total defects likely to be injected.
- UAT (Acceptance Test): 10% of total Defects Likely to be injected ( NO Functional Defects are admissible in this phase).
10 minor defects per KLOC(1000 lines of Code).
No Show-stopper defects are permissible at any stage.
Final Acceptance Test Procedure Recommendation: We will submit the source code, application, release notes and the system-integration and regression test plans after system test is complete. The client's team will add black box cases to these plans and will re-test the application. A UAT-support team will assist the client.
When the client is satisfied with the UAT, we will migrate the application to the production environment.
IT Corporate Training
Mann-India™ has proven that consultancy is not enough. Active participation in the construction of the intermediate products and of the final product, maximizes the chance of lasting results and a quick return on investment Active participation as an architect is the best way to transfer knowledge and skills on your staff while maximizing the chance on a successful project. Participation combined with education is a highly effective means for improving the quality of software development in a short time, assuring a quick return on investment. A 'pilot' project creates a situation in which the knowledge obtained from class room education can be put into practice under the supervision of a trainer. The trainer should be a 'stake holder' by playing the role of architect. A trainer who is a stake holder, acting as an architect, in a 'pilot' project maximizes the effect of on the job training. The trainer, as an architect, can influence the structuring of the software development process and anchor it in the software development organization.
Mann-India™ helps you in defining a pilot project in which you and your organization will succeed in realizing significant and lasting increase in the quality of the software development process and of your products. Mann-India™ will stand by you and help you to become successful. A pilot project must deliver a product with which the money invested in training and advice can be earned back. A 'pilot' project must never be a 'hobby' project. Sooner or later the management regards such a project as sheer luxury. The management starts de-allocating resources and in the end the project dies. On the other side, a project that is of a strategic importance with a 'do or die' dead line, is to be avoided too. In these projects the pressure will be such that no mistakes or delay, due to the learning of a new way of working, is allowed!
Mann-India™ produces software itself, therefore we understand that it is for software producing organizations impossible to stop all production just because programmers need to follow a course. Mann-India™ offers in-house courses with the possibility to provide training outside normal working hours. This allows the continuation of the work with little or no disturbance and still have your staff trained in an effective way!
Instead of 'class-room' training, Mann-India™ also provides 'on the job' training. This type of training aims at being productive and learning at the same time. 'On the job' training guarantees that programmers are productive while they learn. This drastically reduces the time required to earn back the investment in training.
Mann-India™ has extensive experience with on the job training and in-house courses, especially combined with consultancy and participation. A balanced mix of on the job training, in house courses, consultancy, and the right level of participation guarantees that the increase in quality of your software development will be significant and lasting.
Course packages and tailored courses.
Every organization has its own strong and weak points. Each organization has to go its own way to become a mature software development organization. Therefore, Mann-India™ offers organizations packages of courses. On basis of a knowledge and skill assessment Mann-India™ helps the organization in packaging those courses that maximally meet the need for knowledge of the organization.
Mann-India™ does offer more than packages of courses. The content of a course can be adapted to exactly meet the needs of the organization! Precisely that knowledge is transferred that is required by the organization. If you want maximum return on the money invested in training, you definitely need a course package with one or more tailored courses.