You can view software development as being very similar to any other highly mechanized process designed to build things. Rather like a factory with all of the interrelated processes that go into making the final product.
Like any manufacturing process, the software development life cycle starts with analysis and requirements and then moves on to development and testing. A unit test validates that the code is working; then it’s on to Quality Assurance for a series of standard tests that validate the whole package, including new features. Next step is a go-live scenario where inevitably something goes wrong. The developers are then called in to fix the bugs and, after further testing, the software is ready for release. By all accounts, this is a relatively simple and well-ordered workflow.
However, software development, like any other process, can age over time. In its early phases, a development team can be nimble, flexible, responsive and open to change. But as development teams grow larger and more complex, they began to show their age. They can no longer move and react with the same speed and efficiency they once did, so what they need is to drink from the software developer’s Fountain of Youth – in particular, a heady elixir called “Continuous Delivery.”
Easier said than done – software development after all is a moving target. As the often-quoted Jack Welch, former CEO of GE, commented, “If the rate of change on the outside is happening faster than the rate of change on the inside, the end is in sight.” And today we are in the midst of radical changes: for example, the amount of data being created is doubling every two years; cloud computing now constitutes 57% of data workloads; and there will be 200 billion IoT (Internet of Things) devices by 2020.
Software development’s accelerated rate of change really began with the introduction of Agile development concepts almost 15 years ago.
The whole point of Agile was to speed up the development process. Rather than focusing on up-front planning of detailed requirements – the norm until then – Agile methodologies emphasized continual planning, teamwork, collaboration, design on the fly, early and frequent testing, and the on-going delivery of working software in short, rapid iterations. It was messy, but it worked.
Fast forward 15 years. Agile is still with us in numerous permutations, but the playing field has changed. As “software eats the world”, today’s developers are creating applications that are more intelligent and communicate with one another in real time. Because of the amount of data they are working with and the speed with which that data is being processed, development teams have to be best in class. As companies become even more software-driven, the development tools and processes they are using need to keep pace with this new reality – with the speed of Big Data innovation.
Talend helps these processes flow smoothly and quickly by providing smart integration tools with advanced collaboration capabilities. A good example is the company’s emphasis on Continuous Delivery. Continuous Delivery helps firms become even more innovative and agile, so they can quickly incorporate market changes and user feedback.
Continuous Delivery is a term that many will be familiar with in relation to application integration. For the first time however, Talend is bringing it to Data Integration and in the process providing up to 10x productivity gains. Automated build, test and deployment are the keys to the success with Continuous Delivery.
Continuous Delivery is described as a software development practice where developers integrate code into a shared repository several times a day instead of once a day or every few days. Each check-in is verified by an automated build and test. This allows teams to uncover issues earlier, use the latest code, and realize faster time to production with fewer errors. Large, often costly last minute changes are avoided, and less is lost if developers need to roll-back to a prior bug-free state.
Part of Talend’s approach to Continuous Delivery is automated test creation and the use of in-Studio test runner, which allows developers to run integration tests in a staging environment. Also featured in the latest Talend release is an open source repository called Git, a distributed revision control system with an emphasis on speed, data integrity and support for distributed, non-linear workflows.
By taking an assembly-line approach backed by a variety of collaboration tools and integration capabilities, developers and IT organizations in this post-Agile era are more productive and responsive – just like a startup - and are able to handle more requests while responding quickly to business needs. They have discovered the software developer’s Fountain of Youth.
Or, to paraphrase Jack Welch, the changes on the inside are not only keeping up with the changes on the outside, they are leading the way.