What are leading development organizations doing to increase innovation, agility and embrace new technologies? The answer: Distributed multi-source development
Large software projects that are late. Missed schedules. Budget over-runs.
These aren’t pleasant challenges to manage, yet they are hallmarks of traditional waterfall software development methodologies. This common approach to creating software is yielding to two powerful approaches to development: distributed development using Agile methodologies, and multi-source development, combining closed source with free and open source components.
The IT industry has moved from silo’d and location-centric teams building applications to web-centric, globally distributed teams collaborating on applications. At the same time the increased use of free and open source software, virtualization, outsourcing, mobile development, and cloud computing are changing market dynamics in a way that many would determine “game-changing.” And the pressure on ISVs and enterprise IT organizations’ development cycles, costs, and the need to innovate has never been greater.
Acquisitions have also changed the face of IT. For example, no one would have imagined five years ago that Oracle would acquire Sun to get into the server and storage business. Or that relatively new players like VMware would be able to go after Microsoft via virtually unknown, small players like SpringSource.
The level and velocity of change brings challenges. Developers and their development managers need more tools, more automation, and more policy and process to manage through the application lifecycle to stay ahead of the competition while managing cost, complexity and compressed development cycles. Let’s look at today’s development challenges and explore how free and open source and Agile application lifecycle management (ALM) methodologies work hand in hand to drive change and increasing quality, reduce time to solution and create new opportunities for collaboration.
Development Process Challenges
From a business agility perspective, waterfall development cycles took (and still take) much too long -- from quarters to even years -- to bring new software to market. Worse, the practice is unresponsive to changing user requirements, leaving development managers with software products that fail to meet user and market needs.Whether these users are internal IT users or external customers the result is the same - loss of competitive advantage. This is especially true if competitors are using more modern and responsive development techniques to achieve faster development cycles and higher quality software.
Even with solid requirements and structured development management practices, it’s difficult to trace requirements accurately through the application development lifecycle - and to further tie those requirements to each of the downstream software development data, tools, and team members.This traceability is further compromised by geographically distributed teams. In addition, code is increasingly finding its way into the development process through a variety of internal and external sources – including partner-developed code, free and open source, and third-party software from other development teams.
The result is that without the use of appropriate tools, mixed code use risks can include security violations, license rights and restrictions issues, loss of intellectual property, and injunctions.In the software development lifecycle, geographically-dispersed team members may work with different tools as a function of their tasks, creating a lack of collaboration. Add a lack of user involvement in the development process, and the result is a mismatch of user expectations and the product that ultimately gets released.
Clearly, lack of business agility, lifecycle traceability, and team collaboration results in a lack of productivity and organizational competiveness.
At same time, componentization, service-based architectures, and code-specific search capabilities associated with the use of open source have made rapid prototyping and application assembly feasible. The combination of the use of advanced distributed and cloud-based Agile ALM tools plus multi-source development using open source software can result in reduced product cycles, increased productivity and higher quality software releases.
The role of open source
The economics of OSS use/re-use are compelling. With open source developers can:
- Accelerate innovation, even in a tough budget cycle, by focusing scarce development resources on value-added features
- Make use of a large pool of proven, re-usable software
- Take advantage of ~300,000 projects with the equivalent of two million person-person years of development time,