A well defined, disciplined approach to IT outsourcing is essential to create business solutions on time, in scope, and within budget. The success of the project depends as much on planning, project management, designing and development as it does on writing quality code.
That is why HUMASYS embraces the guidelines of IBM Rational Unified Process (RUP), which is one of the best proven practices for building and deploying software.
HUMASYS Development Process is a streamlined version of RUP optimized for smaller offshore projects that constitute teams of 3 to 6 people and involve 6 to 12 months of development effort. It preserves the essential characteristics of RUP, which includes iterative development, use-cases and scenarios driving development, risk management, and architecture-centric approach. Most optional parts of RUP have been excluded, and many elements have been merged. The result is a much simpler process that is still true to RUP principles.
The HUMASYS lifecycle is an implementation of the spiral model, which organizes tasks into phases and iterations. At HUMASYS any project has four main phases (each of which can have several iterations):
- In this phase a basic use case model (a business case), project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated and documented. This is always done "in-house", i.e. at client's side though usually in close communication with us. These artifacts must be made available to Humasys before the next phase can commence. Elaboration phase
- The elaboration phase is where the project starts to take shape. In this phase the problem domain analysis is made and the architecture of the project gets its basic form. Detailed Software Requirements, project plans are updated and User Acceptance Criteria are documented. Construction phase
- In this phase the main focus goes to the development of components and other features of the system being designed. This is the phase when the bulk of the coding and unit-testing takes place. In larger projects, several construction iterations may be developed in an effort to divide the use cases into manageable segments that produce demonstrable prototypes, which are thoroughly tested by Humasys Quality Assurance Team. Transition phas
e - In the transition phase, the product is being moved from our development center to the client site. The activities of this phase include User Acceptance Testing (UAT) of the system to validate it against the end users' expectations, training of the end users and maintainers. The product is also checked against the quality level set in the Inception phase. If it does not meet this level, or the standards of the end users, the entire development cycle begins again. This is also done "in-house" by authorized client's personnel and results in formal acceptance of the work product.
All projects at Humasys follow the same development process. A minimum set of roles needed to support this development process is represented below (obviously, in small to medium size agile projects, several roles can be performed by a single individual): Project Manager (PM)
- plans and manages the project, coordinates interactions with the stakeholders, and keeps the project team focused. This is always in-house role. Business Analyst (BA
) - responsible for gathering requirements and documenting them as needed. In small agile projects, project manager sometimes performs this activity. Optionally, some business analysis tasks can be performed offshore via a liaison at client's side. Lead Developer/Architec
t -responsible for creation of a solution by doing design of software architecture, key technical decisions that constrain the overall design and implementation for the project, code implementation, unit tests and integration of components. This is usually done offshore. Developer
- responsible for creation of a solution (or part of it) by doing implementation, unit tests and integration of components. This is always done offshore. Tester /QA Engineer
- responsible for testing the system from a larger perspective than the developer does, making sure the system works as defined and is accepted by the customer. This is normally done offshore. However - when it comes UAT (User Acceptance Testing) it is always done 'in-house' by authorized client's personnel. Quality
HUMASYS is committed to the provision of quality software products and services. We define quality as follows: "Quality is the features and characteristics of a software product or service that bear on its ability to satisfy stated or implied needs of our customer". In other words, at HUMASYS, quality is all about satisfying the customer.
That is why HUMASYS Total Quality Management System is compliant with International Organization for Standardization ISO 9001-2000 standard, which ensures efficiency, reliability and consistently high-quality service levels. That is why our Software Development Processes correspond to Carnegie-Mellon University SEI CMMI Level 3 standards at all times.
The adoption of the Total Quality Management System is essential for our continued business success and ensures we remain a viable and competitive organization. Major Process Areas covered in our Quality Guide (such as Requirements Management, Configuration Management, Quality Assurance, Software Engineering, Control of Nonconforming Products, Corrective and Preventive Action, Client IP Security etc.) correspond with American and international quality standards.
Our Quality Assurance Group is continuously and constantly involved in all aspects of our business ensuring that our consistently documented internal processes are strictly followed by all team members. HUMASYS QA involvement includes (but not limited to) the following:
- Training provided for new team members
- Regular Audits of Development Assets, Testing Assets
- Periodical Audits and Analysis of our Processes
- Source Code Peer Reviews
- Management, Measurement and Analysis of Quality Records
- Configuration Management (including Version Control in VSS for Requirements, Design, Source Code and Documentation)
- Formalized approach to development and testing of computer configurations
- Defect and Issue Tracking and Monitoring