Methodology

Proven methodology delivers quality software

Agile approach

Our approach to software development is requirement-driven, when customer's requirements are the key. It is an agile software development method with 3 phases: initiation, iterative development and support. This allows us to deliver a high quality product in time and on budget. At initiation phase, project envisioning, analysis, design and product planning are conducted. Depending on a project size and the initial information provided, this phase takes 2 - 5 days. Each project starts from a mock-up. In most cases to create a mock-up there are neither specifications nor requirements for a new system. As a rule, all a team is provided with:

  • Results of a conversation between product owner and new customer. Mainly, this information is captured in e-mail or in meeting notes. In these there can be a draft version of system design, set of scanned drawings of new UI, sample data to be used, screenshots of something similar to the system to be built (e.g. screenshots of the existing system, descriptions of some parts that can be taken from other systems)
  • Results of phone or IM conversation of project manager and project headliners with product owner. These are formalized in e-mail sent to the team and task tracker
  • Project constraints: infrastructure upon which a new system is to be built (e.g. database servers, production environments)

Requirement-driven development: initiation, iterative development and support

After that, iterative development takes place. The delivery cycle is normally 1-5 days, depending on a feature set. At this stage requirement changes are welcomed. The team is focused primary on development and testing. There are 2 types of iterations:

  • release iteration
  • internal build iteration

Release is the process of delivering (publishing) working software to a customer. Release iterations highlight milestones when some important set of requirements is to be finished. Normally, a release iteration lasts 2-6 weeks. Internal build is the process of delivering (publishing) software to QA team. Internal builds show the progress in the development of the software. They are called daily builds as they are conducted on a daily basis. At support phase, it is assumed that main development activities are over, all features are developed and tested, and the product got its final look. The team works on change requests and bug fixes.