X
Business

Redefining software development

Commentary--Nothing is static in the world of software development, and very few other industries move at the same rapid pace. Borland Software CTO Patrick Kerpan tells how to keep up.
Written by Patrick Kerpan, Contributor
Patrick Kerpan
Patrick Kerpan, CTO
Borland Software
Commentary--Nothing is static in the world of software development, and very few other industries move at the same rapid pace. Perhaps the way that we define "software development" and the technology we use to enable the art of development should evolve at a similar pace?

Looking at some of the emerging trends in information technology, it seems that many of the terms we have traditionally used to define software development need to be rethought.

Take the words Development, Developer, Code or Coder for example. When someone in business or IT management says "developers," they almost always mean "coders." Even when we say “talk to the development team,” there seems to be a “coding” bias. But aren't the requirements analysts, business analysts, modelers, architects, change managers, testers and build managers all part of development, too?

Applications and systems, for the most part, get created by teams, not lone programmers. Therefore, the term “developer” really refers to every member of the team in the development process, not just those who write code. Even the term “coder” becomes outmoded when ASCII text in an editor ceases to be the primary interface to the system being built. What happens when text stops being the expression of choice for “coders”?

Even the term “development” has evolved--referring not just to the creation of software, but also its planning, design, deployment and maintenance. After all, the successful delivery of software and its ongoing alignment with business objectives is just as important as its creation.

In the past decade software development has made a number of important transitions, driven by technology innovation, globalization and the growing importance of software to our daily lives. We have entered a new era of development that is now defined by terms like team collaboration, process optimization and model-driven development. And the tools and skills that are required for this new era look a lot different than they did ten years ago.

From individual coder to team developer
The evolution of team-centric development is an acknowledgement that no “developer” (read requirements analyst, modeler, tester, etc.) stands alone; and that teamwork is more than shared version control check-in and check-out.

It is all of the capabilities of configuration management fully accessible from the developer tool. It is all of the capabilities of workflow-driven change management directly accessible via the developer tool, including task-level refinement integrated to organizational project plans, as well as linkages that tie specific revisions of code to specific change requests. It is key pieces of requirements data and project data projected into the developer tool so that developers have direct access to system users' expectations. It is topic-based messaging directly in the developer tool so context can be tracked along with specific requirements. And it is real-time search services across all the requirements, models, code, change and configuration assets so that the tedious process of “find-in-files” goes by the wayside. In short, it is the connection of the developer to the numerous other roles and activities in the development process which they influence or are influenced by.

The growing importance of “process”
As development teams expand and diversify, the consequences of software failure are becoming more dramatic. For this reason, in addition to an increasing number of regulations and compliance requirements, IT is facing strict scrutiny and oversight. Enterprises are beginning to pay closer attention to the “auditability” of their software and to see that instilling process into software development is no longer a luxury – it's a must.

Process optimization and process-centric development can make software development much more manageable, predictable and efficient. Process-centric development incorporates workflow-driven change management and extends it beyond typical applications such as defect tracking to instantiate the “process work items” that need to be understood by any team engaged in software development.

These process-enabled frameworks provide guidance that enables organizations to reach certifiable levels of measurable benchmarks and a higher-level of auditability. For example, many organizations are currently looking to achieve a benchmark comparable to CMMI 2 or higher, which can bring dramatic improvements in cost savings, time-to-market and software quality.

The move to modeling
One of the most interesting changes happening in the creation of software is the move to model-centric development, especially when it’s in the hands of “coders.” Modeling is not only gaining traction as the tool of choice for business analysts and architects, it is becoming the domain of “code-centric” developers who use modeling techniques to create large, complex, distributed computing applications.

There is an emerging generation of developers who live in the model artifacts and only drop down to the code in an implementation editor when absolutely necessary. The comparable behavior from the past was how programmers used to drop out of the IDE, or code-centric mode, to code up routines in assembly language, invariably using command-line tools. But as a rule, the programmers lived in the higher level code.

Watching this new wave of “coders” develop and collaborate in a model-centric framework that combines teamwork and process, it’s clear that a critical shift is happening. It’s a shift that maximizes the performance of each contributor so the overall team has more time and attention to engage in projects that better meet the business needs of the overall organization.

Sounds great, but where do you get it? Not surprisingly, the companies that have long been known for driving innovation in software and making development a more efficient and accessible art form are driving this transition.

Tooling platforms, such as Eclipse and Microsoft’s Visual Studio, are providing more and more of the basic functions needed by “coders,” which has freed the open source and vendor community to drive new innovations that can bring software into this new era. This new era will not only redefine how we develop software, it will be an era where software drives the business rather than just supports it.

biography
Patrick Kerpan is the chief technology officer for Borland Software Corporation. He is responsible for the company's technology strategy, overseeing the Borland team of chief scientists.

Editorial standards