Intelligent Future

Software Development Process

To make our work more productivity and our software more qualitative all stages of software creation in our company are covered by our development process. The development process is a set of rules determinates how to establish project environment, design architecture, write code, deploy code to customer, and support working product. All these rules are targeted to describe responsibility allotment in development team and standardize mechanisms of quality controlling and interacting with users of our software.

There are no many rules in the set. But each rule is important and it is included not to be just mentioned but being used in every day practice.

The major rules can be listed in several rows:

  • Period of development of a project is divided on iterations.
  • Iteration period length can be various because it depends on project specific. But it is recommended to set duration of iteration to 4-6 weeks.
  • Full-featured project is consisted of several phases: beginning iteration, core development iterations, detail development iterations, and deployment iterations. Sequence of phases can be specific for a project. Some phases can be omitted. The beginning phase is a time to establish main project's environment and start writing major project's documents. Technically this is an iteration like any development or deployment iterations but it has several differences. The iteration's duration does not have strong time limits (that is because of most part of the iteration is negotiating process so as far as it is a game of two players it can not be planned well without of quality impact). Another difference is things produced during the iteration are not software but documents and, what is more important, vision of the future project.
  • Development iterations are more rhythmically. Iteration can include three parts: design, coding, and bug fixing. Often iterations consist of one type of work only. During iteration developer can do code design, or can coding designed part of project, or can fix bugs. Sometime iteration can be composed of two types of jobs (bug fixing and coding for example) and even of all tree types. In the last case it is recommended to order jobs in the next way: starting with design, then fixing critical bugs in code, and then do coding. But usually such three-stage iterations are being in short time projects or in projects with critical schedule. Development iterations are separated in two groups: core iterations and detail iterations to reduce risks in the project. In core iterations the main functionality, kernel of the system is designed and implemented. This is being done on the early project's stage to have time if something goes wrong to redesign the code in system core without necessary to re-work big bunch of code based on this core.
  • Deployment iterations are finishing the project. They cover process of shipping code and documentation to customers, fixing production bug and so on. Also they can include special iteration covering work-time spent in "guarantee period". That means the company guarantees the code is working well and promises to fix problems with core functionality for free during guarantee period (usually two years).
  • Every project should have package of documentation. The documents may describe project vision, project main requirements, domain model, and so on. It is important here that all documents should be useful and the useful documents should be kept up-to-date.
  • All code should be documented. Documents can be functionality specifications and/or design documents. The code should be documented with in-code comments. These comments describing code functionality make support of the code significantly easier.
  • Bugs found in developed system should be processed by a bug tracking software. Every bug description should be fixed in tracking system and processed in bug workflow.

All these rules serve for accomplishing task to ship quality results on time. To supply not just a code but well documented product that can be easy supported and extended if it is needed. And this makes us sure in quality of our work and because of that we can give guarantee on the completed work.


©Copyright 2003-2005 MetaCube Software.
Please feel free to contact us