Dynamics of today’s Telecom software development process requires more and more unconventional approaches to software engineering, testing, verification and ultimately deployments. Adoption of Agile methodology in software development, increased frequency of software releases and ever-changing business needs make traditional software delivery models obsolete. The past decade or so has seen wider and wider adoption of Continuous Build and Integration tools in the enterprise environment as a mean for improving efficiency of the software development process as well as of quality of end product. Many companies have adopted various forms of Continuous Build and Integration concepts, but frequently enthusiasm within IT organization vanes once automation of compiling and packaging of artifacts is accomplished and ultimately not much else is automated.
At Sigma Software we’re continuously investing significant resources into improving our software development processes, which results in overall improvement of quality and reducing number of defects carried beyond development environments. Some of the initiatives we’ve undertaken in the past year were to automate process of building software components, deploying them and running of automated tests as part of Continuous Build and Integration loop. Our build environment integrates build system, source control management system and development test environment. By engaging these systems we’re now able to continuously build our application, run unit tests, deploy artifacts to the server, create test data and other fixtures and run a growing number of end-to-end tests. These tests are run on fully deployed application with environment closely resembling production configuration. This includes application, Web and database servers. As a result, our development teams receive instant notifications in case one of recent changes negatively impacts application’s functionality. With proper framework in place adding new tests to cover newly introduced features is relatively easy as entire infrastructure to run tests is already in place.
An additional benefit of having fully configured and automated build and test ecosystem is that we are also able to run frequently scheduled performance tests. Again, any deviation from expected performance values results in development teams being notified and corrective actions can be taken immediately. Instant feedback reduces chances of compounding of the problems and allows for issues to be addressed very early in the development process.
Automating build, deployment and test processes is one many areas where Sigma Software focuses its efforts. As part of ongoing improvements we’re also automating generation and publishing of documentation and release notes. By leveraging our Continuous Build and Integration ecosystem we can generate required documentation for each release and publish it to our document management system as part of our automated release generation process.
In the near future we’ll begin work on further extending our automation efforts to automated build up and verification of environments. More on that in future articles.