Friends Computers has gained expertise in delivering not only quick turnaround software projects but also large scale software solutions. In doing so, Friends Computers delivery methodology has evolved incorporating the best-of-breed tools and techniques. Experience ranging from legacy systems to state-of-the-art object oriented systems as well as from highly integrated enterprise applications to consumer oriented internet applications has given Friends Computers the unique ability to evaluate and select the best tools and technology.
Friends Computers process follows a use case driven architecture-centric process. This process is iterative and incremental in nature.
A use case is a piece of functionality in the system that gives a particular user of the system (actor) a result of some value. Use cases are used to capture functional requirements. In the context of software life cycle, use-case driven means that the use cases are used as a primary artifact for establishing the desired behavior of the system and for communicating this behavior among the stakeholders of the system. It also means that use cases are the primary input to the analysis, design and validation of the systems architecture.
Architecture-centric here means that the systems architecture is used as a primary artifact for conceptualizing, constructing, managing and evolving the system under development.
The iterative process involves managing a number of releases rather than one big release at the end of the project. Incremental refers to the fact that each release will add new features to the previous release.
Friends Computers team provides comprehensive set of features after conducting a detailed analysis of clients requirements. Activities include Identify actors and use cases and Prioritize the use cases.
Detailed specifications of the system are developed during this stage. The use cases identified in the requirement analysis phase are fleshed out by detailing the normal, alternate and exceptional flow of use cases and accompanied by the GUIs associated with the use cases, if any. Activities include Detail a use-case, Prototype user interface and Architectural Analysis and Design.
The software design phase involves developing the Class diagram for all objects in the system. During this stage the states and methods of each class will be defined. Activities include Develop the Analysis Model and Develop the Design model (class and object diagrams)
In order to ensure the Quality of the product, The QA team is involved from the very start of the project. Each deliverable is reviewed against the requirements and once the QA team approves the quality only then the deliverable is released for submission to the client.
Software development of each use case is carried out. The coding standards for naming variables and handling errors have been developed and are strictly adhered to. This ensures consistent and superior quality of coding. Activities include Develop the code, Unit Test the code, Integrate with other modules and Integration Test the code.
The onsite team provides support to the customer during the acceptance testing process. If there is any re-work required the onsite team decides whether it can be carried out onsite or it has to be sent back to the offsite development team. The regular change management process is followed.
Training is conducted not only for the relevant end users but also for the IS staff as well. End-user documentation is also produced. The documentation is produced in conjunction with the business usage of the system.