Development Methodology
Every client we deal with is different and has specific in-house practices, environments, and procedures that need to be respected; as a result, Teknavo's basic development methodology (Agile) is adapted and aligned for each client. When a client is not restricted by, or has no particular allegiance to, a certain methodology, Teknavo's experience enables us to advise on the most efficient approach to meet the client's objectives.
Approach to Software Development Process
Teknavo advocates a disciplined approach to projects that breaks the project life cycle down into manageable phases, each comprising activities and tasks with associated deliverables. By identifying distinct activities in this way, we can ensure user acceptance throughout the whole life cycle, reducing the risk of solutions being late or failing to meet expectations. Active risk management and change control management are performed throughout the phases of the project to control costs and maximize output.
To ensure high quality software development, every stage of the project lifecycle is clearly scheduled, with explicit tasks, steps, and procedures.
Software development requires a thorough knowledge of the entire software development lifecycle: defining the vision, planning the tasks, gathering the people who will do the work, estimating the effort, creating the schedule, overseeing the work, gathering the requirements, designing and programming the software, testing, deploying and supporting the end product.
The following stages illustrate Teknavo's approach to software development:
Project definition and system requirements
This stage involves the definition of purpose, goal, and scope of the project, or the problem to be fixed, or enhancement, or maintenance task, upgrade required, or change needed; the end deliverable is the translation of the solution needs as defined in business language into logical and technical system requirements.
At this stage it is crucial to have a profound understanding of both the business itself and the technological specifics of the systems involved to ensure the maximum understanding of the customer's needs, and a wide experience of dealing with similar systems. Armed with this understanding, Teknavo can successfully analyze the needs and propose the most effective solutions.
System design
We consider this stage the most crucial in the whole lifecycle. Development of the optimal architecture at this initial stage is the nearest to a guarantee of the success of the whole project. To achieve maximum cost efficiency of the system or application, the architecture should be scalable and flexible; it affects all the subsequent stages of the lifecycle and makes unexpected changes on later stages less time-, cost- and effort-consuming.
Development
The development stage involves the completion of the criteria specifications, product coding, development and code review for conformity with standards and design requirements.
We use an iterative front-end process that is achieved by incremental decision-making and contingency planning. This enables us to keep software development milestones off the critical path.
Unit testing, Integration and System testing
Most business systems and applications that we deal with are complex and involve multiple components; to decrease the risks of potential system errors, Teknavo developers focus on individual unit tests before embarking on integration testing and then system testing.
The systems used in investment banks in particular have to meet exacting requirements; therefore multi-tier system testing is carried out before product delivery to the client. This testing involves functional, stress, and volume testing methods, as well as testing in a simulated production environment.
Deployment
The key challenge of the deployment phase is to carry out an integration of the new system with the existing business applications as seamlessly as possible. To ensure easy usage and support of the system by the client's staff, Teknavo provides all necessary technical documentation and instruction manuals. Technical training ensures a clear knowledge transfer.
Support
Even with the best preparation, it is inevitable that some shortcomings or fine-tuning of the system will only be identified once the system goes live. Teknavo tracks and manages customer support requests, overseeing the daily performance of the delivered product for whatever period the client needs, after the system goes live.