Continuing my comments on Mike Gualtieri’s post on the state of software development (which seems to have hit on a real issue, based on the number and quanitity of comments it generated), Mike states that there are 4 pillars needed for a methodology for creating a new paradigm for software development:
- Parallel. Development teams must have the confidence and insight to do parallel streams of development.
- Immersive. Software is a means to an end. That end is to deliver applications that exhibit the seven qualities of great software: user experience, availability, performance, scalability, adaptability, security, and economy.
- Software. That’s what we develop. That’s what we deliver. However, the future software development is experience.
- Studio. Software development is not pure coding, engineering, architecture, management, or design. It is cross-disciplinary. Better yet, it is its own discipline.
These are all good, important points but they ignore the business perspective! I have been a user experience advocate forever – since being the user experience advocate for IBM Research in the late 90s. User experience is a critical perspective for developers to understand, and critical for the success of any software. But I have learned it isn’t enough – software development needs to take into account two more critical business aspects:
- Business Value. Software must deliver business value, and that isn’t always completely aligned with user experience or any of the immersive points Mike lists. A application can have a great user experience but bring no value to the business, which means it will either be killed or die from lack of attention. In most cases business value needs to come first, and foremost.
- Platform. Software (even what ends up as applications software) is either a platform itself, or built on (and used to enrich) a platform. This is both a business and technical decision, and can greatly affect the long term success of any software. See a great rant on the subject here.
So how do BPM platforms stack up as supporting the pillars of software development? Theoretically they stack up pretty well.
- Parallel – the modeling process is a bottleneck, but once completed things can be implemented in parallel
- Immersive – the BPM and its model driven development platform should make it much easier to obtain the immersive aspects too.
- Software – most BPM platforms put no focus on user experience. I have written about this before, but it a real failing of most BPM suites.
- Studio – certainly BPM suites are built to support multi-disciplinary teams (though with great differences in the level of support for different audiences)
- Business value – BPM suites should get high ratings here – since the theory is that the is driven by “the business”
- Platform – A BPMS is by definition a platform, and theoretically every application built on the BPMS could enhance it
The problem is the distance between theory and practice. Most BPM suites try too hard to make themselves of value to the business side, and miss a lot of what is needed on the high-end development side. I really don’t know of any BPM suite that focuses solely on developers and their needs, or positions itself as a better development environment for business applications. BPM suites are sort of a camel, while developers are looking for a better horse. So BPM suites could be part of the answer for the problems in software development, but in practice they aren’t.