03 Feb

The Software Development Process at Omninecs

Omninecs, System Integrators with long experience in the fields of Enterprise Service Management (ESM) and Enterprise Asset Management (EAM), has set up software development skill in the field of IT Service Management (ITSM) and specifically within the field of IT Event Correlation & Analysis tools (ITECA). With the goal of releasing a competitive product, relevant and quickly adaptable to the changing IT market, Omninecs has adopted a software development process that is inspired by the principles of the “Agile Manifesto“, namely:

  1.  A build of the product daily and functioning that integrates new functionality in a manner providing incremental growth and improved performance;
  2. A motivated development team and effective communication;
  3. High autonomy for the development team in technical choices;
  4. Technical and process review based on the philosophy of “continuous improvement”.

The architecture and steps used by Omninecs

Below is the architecture, the steps that lead to the creation of a build and its deployment in the test environment for validation.

  1. Extraction of the code on the build machine from the SVN repository (Open Source software code repository)
  2. Build of the code and automatic creation of the installation package
  3. Download and installation of the product
  4. Automatic and manual validation testing

Figure1: Architecture of build management in cloud computing

The process of release coding follows the Agile approach known as “Scrum”, adapted occasionally to the needs of the project.

 

Figure 2 summarizes the activities and roles of the “Scrum” process.

 

 

Figure 2: The Omninecs Scrum Framework

The project begins with the creation of a “Product Backlog”, which is a list with all the features (“User Story” and related activities) that will be developed to arrive at an agreed upon release. Each feature will be associated with a priority and an estimate of the time to create it taking into account, using statistical estimation techniques (PERT), the appropriate contingencies.

The project will continue through incremental iterations of “Analysis-Design-Build-Test” called, in the jargon, Scrum “Sprints”. Each Sprint will run for 2 weeks. Omninecs with a “Sprint Meeting” in which all the players in the process will determine which items of the Product Backlog to include. A list called “Sprint Backlog” is created. The objective of the Sprint is to arrive at a functional Build that exceeds the established “Acceptance Criteria”.

At the beginning of each day a short meeting will be held, of less than half an hour, where the activities that each person will carry out will be clearly explained as well as any problems that emerged from the previous day. At the end of the Sprint a summary meeting will be held (“Sprint Review & Retrospective”) where the effective quality of the work produced will be validated and issues of product and process will be highlighted to be brought up and improved in upcoming Sprints.

The Omninecs Scrum process

The players involved in the Omninecs Scrum process and the responsibilities are:

  • Product Owner/Scrum Master: is a single person with the following tasks:
    • Responsible for the overall “vision” of the product
    • Assigns a priority to the items of the “Product Backlog”
    • Tracks the progress of tasks and estimates an end date for each mainly through graphical tools such as the “Sprint Burndown Chart” and the “Release Burndown Chart”
    • Decides whether or not it’s the case to consider a Release production ready
    • Facilitates team activities by removing any “roadblocks” and applying the concepts of “Servant Leadership”
  • Scrum Development Team: the team of analysts, architects, software developers, testers, and writers.

They are charged with the responsibility for achieving the objectives of the Sprint in the best way possible.
Note: The Omninecs development team will never exceed six or seven people, and in fact, regardless of the specialization of roles, everyone will have the common skill of “Software Developer”
The last step of the process, the product release occurs. Celebrate!

 

 

Share this