In the "gold rush" days of the internet (circa the last few years of the 90s) it was not an uncommon occurrence to be accosted by young guns pressing business cards into your palm. You did not even have to read the cards, they were so predictable: a kitschy name with a play on "e," the guy's name and - emblazoned proudly below it - "President & CEO."
Obviously there were some bright stars in that milieu, but the vast majority fell evenly into one of two categories: extremely talented programmers fresh out of school and desktop publishing & design wonks capitalizing on this open territory. Neither had a clue about delivering successful software solutions.
The resulting "trail of tears" of failed or massively over-budget web software projects drove many back to the monolithic development strategies and methodologies of the "Big 5" consulting firms.
Ultimately, this failed too. Long, expensive development cycles focusing solely on business value could not adapt to the astoundingly steep curve of users' expectations.
Matching methodology with progress
Methods for building today's software solutions require the "heads-up," nimble adaptability that can account for heightened user expectations, rapidly changing technology, and diverse - even cosmopolitan - teams. In the previous article "From Functionality to Usability" we explored the need to revisit - and often reinvent - software solutions due to the confluence of huge changes in users' expectations and the proliferation of technologies to satisfy them. Retrofitting older applications simply isn't enough anymore.
But neither a firm decision to build an application or a stable vision of a world-class solution ensures success. One must still design and build it. Unfortunately, like the paradigm change of functionality to usability, development methodologies haven't kept pace with the changing needs imposed by the newer technologies and savvier users. Most methodologies are too top-heavy with process (making longer, more expensive development efforts) or they assume a siloed approach to development; cross-functional, multi-disciplinary teams have had to find other ways of getting the job done.
Software methodologies have rapidly succeeded one another, with each new approach promising to fill the gap left by its predecessor. Object-oriented programming and rapid application development have given way to newer methodologies like Extreme Programming, Rational Unified Process and Agile. This chain of superseding methodologies testifies to the market's changing needs spurred by the onslaught of end-user centered technologies. The newer approaches to building software assume from the outset that business value alone cannot ensure success - software solutions must envision and incorporate user value from the earliest planning stages.
Rather than a one-size-fits-all, "designed up front" succession of steps, milestones and deliverables, modern methodology should seamlessly marry design and development with solution context and value proposition. Together these elements form a complementary balance allowing the integration of differing methodologies and the multi-disciplinary teams who execute them. With the skills needed for world-class user experience and software design becoming more difficult to find and retain, organizations are forced to look outside for expertise. This situation encourages them to consider more contractually friendly methodologies. Most successful solutions are created by a blend of vendors with vertical expertise (e.g., UI, web-based software, widget-x, etc.) and in-house domain and delivery expertise. But such a dynamic mix of specialized knowledge and its attendant communication needs stress most methodologies to a breaking point.
The New Methodology: Balancing Vision and Execution
The major blind spot of methodologies is that they assume a clear vision of what is to be delivered. They are great for managing the tactical execution for delivering software, but they tend to "etch in stone" a solution design that is often woefully out-of-phase with changes in business context. Iterative, just-in-time development methodologies have tried to address this gap, but these tend to build and deliver software without ever vetting solution design against a fully formed value proposition. These approaches often produce software solutions that are either feature impoverished or hopelessly overdesigned.
Emerging best practices focus on decoupling concept development, which is driven by vision, from product design, which is derived from the envisioned concept. But bridging this gap is never easy. Companies now realize they need a specialized approach or methodology to shepherd the process of solution design so that it accurately conceptualizes a vision balanced against business context. The methodology would also take "lessons learned" from the design's implementation (where classic methodologies are used) and feed them back into improving the solution by clarifying the context and value proposition.
This approach - known for years by highly specialized consulting and development firms - is only now gaining ground in the mainstream. Open frameworks such as Scrum address the need in highly generic terms, but unmistakably are intended to bridge this gap between traditional methodologies.
There is growing recognition that successful delivery cannot simply rely on the rigor of a methodology's steps to produce software that matches users' expectations. Companies now must focus on ways to achieve predictable outcomes in the software development lifecycle so that strategic vision and tactical execution can complement one another. The end result will produce better software solutions: features that meet or exceed user expectations, functionality that is in lockstep with current business context, and a clear "fix" for a recognized business need.
Author Jason Webster serves as technical consultant at Eureka Software Solutions. Please contact us by phone at 512-459-9292 if you have any questions about this news article or questions about our custom software service offerings.