SONM Follows the Agile Software Development
Over the past few years, the members of the SONM team have gained significant experience working according to a number of different software development methodologies, and each member has been able to diversify their skillsets by taking part in a variety of different IT projects. Based on these years of shared wisdom, the team has decided, in approaching the SONM project, to follow the Agile software development framework.
Why choose Agile?
Agile is a collaborative system which incorporates iteration, which means that feedback on the development of the project will be continuously delivered to the development team. This will allow for successive refinements to be made, and ultimately should lead to the delivery of software, and a platform in general, free of major issues.
The Agile software development framework was created to empower people to collaborate and make decisions together — quickly and effectively. Our selected development methodology is based on Scrum, XP (Extreme Programming), and some other useful practices in compliance with the Agile Manifesto. This lets the team achieve an appropriate level of agility, good project manageability, and an adequate level of documentation.
There are three key reasons why the SONM team is choosing Agile:
- SONM is a «Green grass» project. This means there will be frequent changes to the development requirements during the beginning stages of the process. The agile software development allows for this demanded flexibility better than other methodologies
- With the development of SONM, certain technical risks are being taken, and Agile offers a way to minimize these risks as much as possible.
- The investor community wants to increase the transparency and the predictability of SONM development. Agile, being a system offering early delivery, facilitates this transparency.
How is Agile implemented at SONM?
The Agile software development framework operates through the collaborative effort of self-organizing cross-functional teams. The graphic below depicts the development structure we intend to use, based on Agile framework principles.
In the intended structure, SONM development is to be managed by three boards: the architecture board, the product management board, and the product delivery board. Each board is to be made up of the heads of the various development groups, with SONM CTO Igor Lebedev as a constant presence.
The development team as a whole will be divided into four sub-teams grouped by their functional subsystems: Node (core) development, Smart-contracts, Wallet (client) and Distributed entity and integration. Each team is an independent set of 2–5 professionals, and each has its own Development Lead, experienced Analyst (Product Owner) and senior QA expert.
Let’s look closer at the smart-contracts group headed by Sergey Ponomarev, SONM founder and developer: Ponomarev leads a team of four developers, including expert developer Sergey Bolotaev. The developers operate together like a well-oiled machine and can easily pick up one another’s work in case of delay.
In a structure such as this, the team’s work consists of a set of public releases. Each release is a functionally-completed scope of work. It is expected that there will be a 3–4 month interval between releases, and each release could be conditionally represented as a short independent project consisting of the following steps:
- Inception — Iterations include business analysis, requirement analysis, and high-level release planning
- Elaboration and Construction — Iterations include low-level iteration planning, product feature development (early iterations focus on architecture with no contribution to features), code refactoring (including time for quality focused development)
- Stabilization — Iterations leading to the rollout of a developed product
The duration of one iteration in our project is equal to two weeks. At the very beginning of each iteration there is a planning day, during which the team meets and demonstrates the results of the latest iteration. These results are discussed and the plans for the next period are negotiated.
Then, the SONM team holds daily scrums — 15 minute long meetings during which the members of the team determine the action items for the day, or for however long it will be until the next meeting.
Product releases always run in parallel with continuous support. Each release is a planned endeavor that adds new functionality to the platform, improves existing functionality or fixes previously found defects.
All through development the teams turn to special services which help the developers to achieve better results and avoid the bugs. The Independent Testing (QA) unit helps to minimize the mistake risk at software release. If technical issues do occur after release, the team’s skill and organization will ensure that the problem will be resolved quickly. What’s more, in the event of technical issues, the SONM project is benefitted by the expertise of IT and business strategy advisor Ilia Frankstein and other domain and technical experts.
The success of the company depends on a well-organized project and a correct business strategy. The Agile software development scheme is a great solution for high-tech startups like SONM ensuring good project manageability, an adequate level of documentation and great performance.