Published: Jul 14, 2020
taking a practical approach to distributed development
Taking a practical approach to distributed development
In today’s digital world, most organisations have embraced the use of technology to deliver business value. From developing IT solutions’ perspective, there is a need to deliver these applications in the shortest possible time so that businesses can quickly reap the benefits of technology and get a head start over their competitors.
To develop these applications, multiple groups have to work together. The development process involves the conceptualisation of the end product, building minimum viable product and finally through iterative process, to develop the product. To reduce the cost of development, organisations often adopt offshoring practices and product principles to guide and assist them in their review of the development.
Developers, product owners and other partners thus have to come together and collaborate across multiple geographical locations and time zones. For such a collaboration to deliver objectives within tight schedules, IT organisations will need to adopt standardised delivery processes and use efficient platform that will help accelerate the development.
The role of development platforms
Platforms play an important role in enabling collaborative development. They provide a practical approach to address the challenges involved in development:
- Support for a highly-collaborative environment
Product owners, business systems analysts and UI/UX designers need to collaborate to detail user stories and visualise the end-products. They may be working in a separate geographical location from the developers and product principals who will be building and delivering these products. Development platforms provides tools for effective visualisation of the thought processes, facilitating the discussion (brainstorming) and recording the outcomes.
In current circumstances, such platforms will be even more important as they provide secure collaborative environments for teams that may not be able to meet up physically, even though they may be in the same geographical location.
- Pre-built dashboards to provide development insights
Pre-built dashboards can help address the management challenges involved in a distributed development scenario where software may be developed in one country, hardware built in another, and testing carried out in a third.
Such dashboards will enable teams to track work progress across the different locations and generate the relevant reports. For example, they can help project managers to monitor the progress across different development zones, while programme managers can monitor the overall programme status across different geographies.
Effective dashboard provides:
* Overall status of the programme
* Status of specific projects and the development status
* Ability to zoom into development activities within specific projects to look at sprint level
information
* Ability to understand the status of user stories and the dependencies, and the impact to
project schedules
- Automated infrastructure provisioning
Development platforms should have the capability to spin off development environments based on customer’s choice of cloud provider. Automated management of infrastructure includes provisioning, patch management, and hardening to customers’ specific standards and product requirements.
- Adopt DevSecOps practices and tools
The use of tools in application development leads to quality outcomes because they enforce standardisation. Adoption of DevSecOps tools will pave the way for:
* An effective and standardised branching strategy for the applications that are being developed
* Automated deployment of codes to the provisioned environment
* Effective tracking of deliverables and recording of issues that are reported
* Gamification to introduce a competitive element into the developer community
* Identification of code quality issues early in the development process
* Secure coding by incorporating best practices in DAST, SAST, IAST
- A smart platform
With a project that is distributed and managed across multiple locations, the ability to understand project data and make timely management decision is of paramount importance. This will help avoid schedule and cost overruns.
It is therefore important for the development platform to be smart. This means having the capability to get data from multiple touchpoints to enable
* Effective work assignments
* Timely escalation with information on corrective actions
* Correlation of data points to provide insights into event dependencies and possible alternatives
* Identification of project risks using data points collected from the DevSecOps tools
Development platforms provide a practical approach to addressing the challenges of distributed development and ensuring successful project delivery. They help ensure that projects are completed on time, whilst meeting the requirements of application quality and stability. This is achieved by supporting collaboration amongst stakeholders; ensuring standardisation through the use of tools; enabling rapid deployment of development environments with the capability to manage and monitor them; and increasing productivity through the adoption of tools, best practices and gamification.