![](https://www.linuxinsider.com/wp-content/uploads/sites/2/2021/05/2009-developer-5.jpg)
In 2010, application developers will continue to be asked to do more with less. During the global financial meltdown of the past year, the amount of work didn’t change while resources were dramatically pared back. The result was that new projects suffered. Talking with application development leaders today, there is more optimism.
While new projects are moving ahead, the lessons of 2009 have not been forgotten. The focus on getting more done with less and the demand for fast ROIs remains.
Based on what I’ve heard over the last few months, here are seven things I think will be top of mind in 2010.
The Road Ahead
- Software infrastructure will become as important as the software being developed.
In 2010, savvy app dev leaders will acknowledge that their software production infrastructure requires as much attention and planning as the software they write. As software becomes more complex, so do the tools, the processes, and the systems needed to support the application lifecycle. The number of moving parts in the build/test/release factory will start to rival the complexity of the applications being built. This will strain the relationship between development and IT, and with many IT staffing levels frozen, drive the need for automated resource provisioning as well as process automation across the board. Managing these resources, tools, and processes by hand will simply not scale.
- More of your app lifecycle will move into the cloud.
2010 will see increased traction of cloud computing in mainstream IT, primarily in support of software development. Within your organization, cloud technology means you can invest in centralized, scalable systems (private clouds) that utilize physical and virtual machine resources to maximize efficiency. Adding in resources from a public cloud, the elasticity benefits get even better. You only need to pay-by-the-drink and you’re absolved of power, network, and rack space duties.
The benefits of cloud computing to the software production process will be exploited even more in the coming year. While many enterprises will not or can not move entire applications into the cloud due to security concerns, some parts of the application development process are ideal for the cloud. Specifically, these are build and test processes, which are inherently “bursty” in their demand for compute resources. Shops that invest in systems that can deliver the fine-grained control they get with local machines to cloud environments will enjoy the best of both worlds.
- Continued adoption of Agile development techniques will have three implications in 2010.
Application development leaders have discovered that Agile development delivers real cost savings and time-to-market benefits. In 2010, these specific Agile issues will be top of mind:
Incremental builds are dead. Long live incremental builds! Edit, compile, debug. It’s still not fast enough. This forces an ugly choice for developers: Do it the slow and safe way (full builds) or the fast and dangerous way (incremental builds). The time is ripe for a smart new innovation in build avoidance and acceleration technology for developers to keep the coffee breaks brief. When staff levels are frozen, you need to make each developer as productive as possible.
Open source Continuous Integration (CI) tools will buckle in big shops. At the start of 2010, most organizations have a CI tool of some sort — many of them using open source. These tools will fall out of favor in enterprise development shops. By definition, open source projects evolve based on the feature needs of the individual contributors to the project. Enterprise architecture requirements such as scalability, flexibility, security and cross-platform support are rarely high priority features for open source contributors. This leaves sophisticated IT shops with the choice of starting from scratch and writing their own or migrating to an enterprise solution. The migration to the enterprise solutions will accelerate in 2010.
Continuous Testing (CT) will eclipse Continuous Integration (CI) in importance. Green builds are nice, but green tests are gold. As teams automate more and more of their tests, running them early and efficiently will become the overriding goal. Basic CI will become table stakes, and teams will place a greater importance on testing, beginning at the developer’s desktop.
- Distributed software configuration management tools (like Git) will cross the chasm.
These tools are not just for open source projects anymore — they are gaining adoption in enterprise shops. In most application development organizations, the number of lines of code is huge, distances are far, and disk space is cheap. Distributed SCM keeps a disconnected team connected without having to pay for team cohesiveness with a two-hour checkout.
- Developers will change their homepage to the new project dashboard.
A new breed of tools is raising the bar on the content, the presentation, and the frequency of project health metrics. Picture a continuously accessible, interactive console that’s watching movement on all axes of the application lifecycle, from requirements to change request to check-in to build to test. Intelligent interactivity means seamlessly exploring the underlying data silos to answer the important operational questions: You click on the red project to tell you which component failed last night’s integration test, click again to see the issue QA already filed, once more to see who’s working on it, and now you see their test build churning away, with a green light this time. These new super-reports are the heartbeat of development, and users will redesign their workflows around them in 2010.
Mike Maciag is CEO of Electric Cloud, which offers a complete solution for software production management (build, test, deploy).
Good article, and I have to agree with your points on application development in the Cloud and the need for enterprise software life cycle management tools, like IBM Jazz or Genuitec Pulse. One thing I don’t understand is your term "green build, green test;" what does that mean exactly?
Term is taken from ideas in the Agile Manifesto and, more commonly ,Test Driven Development methodologies. "Green" just means that an automated build or test has completed without errors; "red" indicates a problem. Some shops have even connected physical lava lamps to their build servers to make the visual physically concrete: http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi
Great article. We believe that as we shake off the meltdown of ’09, we will see some new life in the app market.
Happy New Year
The NewAppIdea.com Team
NewAppIdea | Turning App Ideas Into Reality