Serena Software is known for its ‘orchestrated’ application lifecycle management (ALM) and process management (PM) products. It has emerged from a brief hiatus over the last few years during which it reinvented (Serena would probably prefer “refined”) its technology proposition. Serena now sits in what is arguably a comparatively well-informed position to comment on software code optimisation. BCW caught up with Serena’s senior VP or worldwide marketing, David Hurwitz, to talk about application development.

Are we getting better, faster and more efficient with application delivery?

The initial answer to this is yes with a “but”. Application development is getting quicker, but a lot of this is not really due to improvements in process. There are small percentage gains here and there, but these don’t add up to what feels like an improvement.

For example, employing the use of faster hardware will generally make an application run faster and that includes during the build phase. It does not improve how that app was actually put together—and it does not translate into a marked difference in performance.

Optimisation of code is something that has to be considered as part of a long-term process and methods like Agile do make this approach something that is easier to take up. The barrier here for businesses wanting to take up Agile software development methodologies is that while it benefits the development team, it’s hard to quantify what benefits it will deliver to the wider business.

While happier coders and continuous improvement of the quality of software that is delivered should add up to a business return, it’s very hard to put a figure on.

Looking at the whole process is the most important thing—from where demand for application development comes within the organisation, through how the required software is put together, and then into how this is pushed out once it’s ready.

This means having a more orchestrated approach to how everything is put together. Without this complete overview of the process, any speed gains are essentially swallowed up as the business wants services and updates delivered faster.

Where are our bottlenecks?

The biggest problems come when you have manual processes in place between individuals and between parts of the process. Look at release management: you can provide the nicest piece of software that ticks all the boxes that are required, but if the release of that software out to the organisation goes wrong, then the whole project is viewed as a failure.

The three sections of the application development process are demand, development and deployment. Analysing the hand-over process between each section can show you where you are relying on a manual point of management and then how to either cut this down or automate where possible.

Some organisations still require tracking and audit around their change management processes and that sign-off is critical. Taking an approach like Agile and applying that will help the development team, but it then has an impact on how you run your software change and configuration management, and your release management.

If you are increasing the number of releases that will be coming out, then you have to factor this into your planning at the start. Moving from one large release over to multiple smaller releases in the same time frame means there will be more work both for the release team and for those within the business responsible for signing off the development work. As long as this is made clear at the beginning, it can work very well.

On the tools side of things, individual pieces of IT will have to be brought together so that the process side of things can be managed more efficiently. This involves linking up tools so that all the necessary information flows through from individuals.

Taking this approach speeds up the whole process for developing applications, from initial demand within the business through development and approvals and into deployment and production. Without this joined-up thinking, materials and processes either take longer or get stuck between steps for longer than they should.

How do you see “devops” developing?

BCW definition: devops is generally considered to be defined as the set of communication, collaboration and integration methods used between the software application development and programming teams and the IT team that looks after administration and infrastructure.

Devops is a proposition where the time is right. I think the future for devops will be around getting greater recognition within the application development side for issues such as release management. Currently, this sits outside the application development team at a lot of the customers that I speak to, yet it fundamentally affects the success of application development projects. This is especially important for the business side, as they only care that things are in place and being used successfully.

I also think we’ll see greater development of devops processes, to the stage where we start to get Agile-style movements being taken up and practices getting more established. At the same time, we should see some of the best practices established by devops teams and professionals being fed into the management approach for application development, both within the software development team and in the wider business.

Will the move of apps to the cloud have an impact on app development? 

Cloud does have one impact on release management—rather than having to think about multiple platforms for deployment to the end-user, services tend to be delivered via a web browser, which masks a lot of complexity for them. However, for the internal team responsible for that application, the fact that it now lives “in the cloud” should not really impact too much on their approach.

Where it will make a change is in how the business views application development in general. IT executives and business level employees are getting used to IT that comes through a browser and ‘just works’ and they will start to expect the same experience from their internal IT resources. What this means is that the speed at which they expect development work to deliver value is increasing.

In this situation, the speed of delivery becomes critical alongside the quality of the application development work. If you are not taking an orchestrated approach to how you manage the lifecycle of these applications, then you are missing out.