|
DSI's Development Process Differentiators
Development Process and Continuous Integration
Specifically, DSI has employed a customized software development process that incorporates many features of what is commonly referred to as an ‘Agile’ process, but with strict governance maintained over its individual components. The use of different Agile development processes and terms have become common place in industry today, however we in DSI differentiate our approach to that of most others by our adoption of those tools and techniques that provide the greatest value, while simultaneously supporting our aim of building code to the highest quality. Our process can be best described as a pragmatic approach to software development, where we have invested in the appropriate infrastructure to support the process, as shown below.
- Click here to see our Java infrastructure
- Click here for our Microsoft .Net infrastructure
To back up the above ambitions, we have drawn up a series of company-wide policies on our software development process. The central aim of this focused effort is to ensure that our engineers are equipped with the resources that will most efficiently allow them to produce quality code. DSI has assigned a dedicated Performance Architect to draw up suitable policies for all development staff to ensure the highest standards are in enforced. These standards are demanded by our clients and reinforced by DSI’s investment in the appropriate resources.

The core element of our development process is the Continuous Integration (CI) environment, with 100% of DSI’s Java based projects now built in a Continuous Integration (CI) environment using both Maven2 and Bamboo. The rollout of CI for our Microsoft projects is taking place as we implement the infrastructure needed to support this approach on an incremental basis.
A significant feature of DSI’s development process is that we do not authorize the use of tools or processes that are ad hoc in nature or that do not provide value to our clients. Over a period of many years, DSI has invested significantly in implementing the processes with the supporting infrastructure that ensure our solutions meet the highest quality standards expected, while keeping costs to a minimum. The importance of this cannot be emphasized enough. Listed below, you will find a series of infrastructure tools utilized within our development process, but essential to this is that the use of each is governed by a thorough analysis of alternative solutions, and only those meeting the criteria of adding quality and value are deployed. This systematic approach has provided proven long term benefits. We invite you to view the description below of our development process in the context of a well resourced analytical approach to selecting the most appropriate tooling available.
As mentioned above, we recognize that within software development, Agile is one of those terms that is interpreted very differently. Within DSI, as described in our software development process guide, a process is only deemed Agile if it is;
- Iterative: DSI’s gathers requirements, develops, tests and delivers in tight development cycles of anywhere between two to eight weeks. All projects are broken down into iterations in this way. This approach can be seen as a series of small waterfalls.
- Code Centric: Our primary deliverable is completed operational software solutions, and so our primary focus is on our code. Documentation is important in so much as it helps us to develop the systems our customers ask for, in a reasonable time, and to a high engineering standard.
At DSI we recognize the efficiencies that are brought about by focusing an engineer’s time on those tasks which yield the greatest return. We have implemented within our development process the following tools and techniques we use for both Java and Microsoft development projects. We have standardized on the use of the following development tools in the knowledge that they complement our approach to software development, minimize the time spent relearning and facilitate the sharing of information.
Described below are various infrastructure components put in place by DSI to underpin our development process.
Java Development Infrastructure
- Eclipse is the standard IDE used by the DSI Java development team. Its plugin capabilities promote a flexible approach to our development environment. Its integration points with other components of our development infrastructure allow our projects to move with ease throughout the development process.
- FishEye and Subversion; source code repository that supports our policies on branching, tagging and releasing.
- Adherence to the practice of Continuous Performance Management (CPM) in our Continuous Integration environment, and the CPM Toolkit was developed specifically to support this initiative.
- License checking is facilitated by a Maven2 plugin built specifically for license checking. This integral part of DSI’s Java build process acts as a control gateway to the artifacts that can be used for building applications. This plugin was added with the specific purpose of preventing any artifacts getting included in a software build without first getting its use of licenses checked. This covers both Open Source and commercial software.
- The use of Maven2 as our standard build management tool.
- Bamboo; DSI’s Continuous Integration server that integrates particularly well with JIRA, Fisheye and Crucible. DSI’s entire development process in centred on a Continuous Integration process and Bamboo is the chosen implementation of this.
- We have moved to task-centric development using Mylyn. This step is a good example of how DSI have implemented only those tools that have the capability to deliver genuine improvements in productivity and quality. Our developer’s time is used efficiently as it reduces the information overload and makes multi-tasking easy. It integrates with other tools we utilize such as Eclipse, Crucible and JIRA. This integrated development environment puts only the information our developers require at their fingertips - improving productivity. The focus on task centric development facilitates reusing past efforts and facilitates sharing of expertise.
- Rationale Appscan; all DSI built applications are security scanned in order to ensure our solutions meet the highest integrity and security standards available.
- The use of the Quest Software’s suite of Application Performance Management tools throughout our development lifecycle. Specifically this means using JProbe in conjunction with the aforementioned CPM Toolkit during production, PerformaSure for load testing and performance monitoring in pre-production and production environments, and the use of Foglight 5 (FL5) as the standard enterprise management application for all Java projects.
- JIRA; bug and issue tracking platform used throughout out development process by the entire team.
- GreenHopper is a plug-in for JIRA and specifically deployed for the functionality it provides in agile oriented project management.
- Confluence; wiki used for document and information sharing among teams.
- Crucible; code review tool. Code reviews are seen as a key element in DSI’s express desire to produce quality code. It supports knowledge transfer within our development teams and ensures that all our code is released into production only once it had been through a rigorous quality assessment.
- HP Quick Test Professional; used by the DSI Test team for GUI testing for both Java and .Net projects.
- Visual Studio Team System Test Edition; used by DSI for functional and load testing purposes for cross platform application. This allows for automated testing down to HTTP level.
Microsoft .Net Development Infrastructure
- Team Foundation Server (TFS); DSI’s Gold Certified Microsoft development competency has been an early adopter of the TFS platform which we utilize across our development team from software engineers, database analysts, testing teams and project management. The integrated nature of TFS supports DSI’s closely knit teams of multi-disciplined personnel. We have been to the forefront in deploying the latest development tools from Microsoft. DSI utilizes various components of TFS such as source code control and for centralised continuous builds. Our close working relationship with Microsoft Ireland has greatly aided our capacity and abilities to deliver innovative solutions that meet the highest quality threshold.
- Visual Studio Team System is the integrated IDE platform used by DSI and its wide variety of functionality provided are utilised, such as for coding, code re-factoring and unit testing.
- As with our Java development process, Rational Appscan, HP’s Quick Test Professional and Visual Studio Test Edition are used at the security scanning and integration testing phases.
|
|