Our delivery process provides high maturity and is based on many years of experience working in a multitude of business environments and with processes such as Agile and Iterative. We offer a formal, repeatable process in which agility, cohesion and quality assurance are embedded. Below are some of the activities performed.
Iterative & Agile Development Methodology
We start with the idea that no software component is ever static in the face of change. In addition to the architecture, the process that is used must be able to accommodate an environment in which requirements and the environment itself are constantly changing — yet, it must be sufficiently cohesive and mature to guarantee repeatable success without overburdening. Our reiterative development methodology, simply put, minimizes risk and maximizes return on your software development efforts. We achieve this by using the latest SDLC management tools and simultaneously performing lifecycle activities to transform the unknowns to the known, instead of relying on premature assumptions. Our goal is to deliver cross-sectional operational components as quickly as possible and build upon them.
Requirements Gathering & Analysis
Obtain a deep understanding of the product requirements, the relevant business environment, risk mitigation and growth strategies.
Interactive knowledge transfers and Q&A sessions with business and domain experts.
Business Requirements Document containing general business requirements and use cases.
Software Requirements Document containing detailed functional requirements of the system to be developed.
Software Architecture & Design
Clearly define architectural boundaries and technical specifications for satisfying current and future product requirements.
Research and examine the problem domain; identify existing similar solutions; gather and evaluate design options; determine business and technical forces in effect; confirm critical assumptions.
High Level Design Document
Class and Package Diagrams
Use Case Diagrams
Strengths, Weaknesses and Risks
Technical Specifications Document
Environment (Development, QA, Production) Specifications
Implementation Decisions and Forces
Design Patterns Used
Test Driven Development
Deliver alpha/beta cross-sectional sub-components as early as possible for concept testing, usability testing and integration testing.
Determine a critical implementation path by slicing the complete system into subsystems. Per subsystem, develop and implement the components and unit test counterparts. Ensure that the unit testing code covers as much functionality as possible and passes successfully.
Well Documented Source Code
Compiled Binary Files
Well Documented Unit Testing Source Code (JUnit/NUnit or proprietary)