This is the fourth post in a series that will offer our management team's reflections on DCG's 20th anniversary and the state of the software industry. Previous posts here, here and here.
In the world of software development, software enhancement and software maintenance, only one adage has remained true for the past twenty years. Simply put, “If you are currently doing work the same way you were last year, you are out of date.” Processes, techniques, methods and even languages are in a continuous state of change. In order for anyone involved in this industry to stay relevant, they need to continually learn, adapt and adopt the new techniques that deliver value (and not all of them do).
Of course, change in software development is not as simple as flipping over an etch-a-sketch, shaking and starting again. Each successive wave of change, regardless of the speed at which it happens, leaves at least a little of its essence behind for the next wave to build upon. Examples abound; consider the pedigree of the lean/Agile movement, which can be traced to the design pattern movement in the 90’s, to the continuous process improvement and quality movements of the 80’s, to the works of Dr. Deming and beyond. Just as volcanos build islands, waves of change within software development build on each other.
In addition to “change as a constant,” a few other core software principles have not changed:
- Software development is an important enabler for most organizations. Software is everywhere, used in almost every job imaginable. Even my local garbage collector uses software automation on its trucks.
- Software development needs to be managed as a profit or cost center. Pick one, although unless you are selling your software, it will tend to be the latter. Regardless of which you choose, the impact on the corporate bottom line requires IT (in general) and software development (specifically) to be managed as a business.
- Software development is a mixture of engineering and art. The culture war between the engineering camp and the craftsperson camp has not totally died out; however, mature software development organizations have found a way to merge both points of view. Frameworks such as Agile are a reflection of the two camps blending together . . . albeit noisily.
- Software development can and should be measured. Whether you use IFPUG or COSMIC function points, SNAP (non-functional size) or you count stories, the techniques that exist to measure productivity, velocity and delivery rate should be used. The questions of “When can I have that project?,” “How much will it cost?” and/or “What will I get?” are not going away. Whether you are a parametric estimator or you adhere to the #NoEstimates thought processes, you need to measure something.
- Software development is a people business. The raw material of software development (at least currently) is human thought. Without IT professionals and end users that feel they are appreciated and belong, very little good software is delivered.
So, what will software development be like in 20 years? Will these trends persist? Humans are notoriously poor predictors of the future. What can be said with certainty about how we develop, enhance and support software-centric projects is that the way we work today will not be how we work tomorrow. Will techniques like Agile or architectures like cloud be more prominent? They will likely run through a lifecycle to be replaced by a new tool, a new process or a new architecture that will build on the changes delivered. Software does not stay stagnant.
Where will DCG be in twenty years? The answer is probably very similar to where software development will be. One general observation I can make, as someone that came to DCG from the outside (corporate and consulting) in the relatively recent past, is that everyone at DCG is a voracious learner and has a passion to be involved in the industry. One of the reasons I joined DCG was to be pushed and that has happened. Therefore, if I were to predict the future, I would say that in twenty years we at DCG will be discussing where software development will be in 2054. That said, has anyone seen my COBOL manual and coding sheet?
VP of Consulting & Agile Practice Lead