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.