HOLLYWOOD, Fla.-Just as open source took the software industry by storm, Forrester analyst John Rymer says he believes the industry needs to shift to a new paradigm he calls "lean software," which focuses on simplicity and avoids complexity wherever possible.
"This is something we're predicting will coalesce; right now it's a bunch of individuals doing this on their own, but we expect lean software to catch on," Rymer told the audience of developers here at the annual SpringOne Americas conference for Spring developers. Rymer said his lean software message was particularly relevant for the Spring audience because the Spring Framework represents a prime example of lean software. Spring was developed to combat the complexity and "heaviness" of J2EE (Java 2 Platform, Enterprise Edition) and EJB (Enterprise JavaBeans).
Rymer defined lean software as:
"An approach to building, delivering and running software that values fit-to-purpose, simplicity and time to results above all. Lean approaches minimize complexity, startup time and resource usage, and [avoid] features and methods not essential to fulfilling the application's business purposes. Developers can easily combine Lean software components with others when large systems require more features."
Rymer also listed seven lean software principles for developers to adhere to when going lean. The first is to "use fit-to-purpose tools and platforms." The second is to "employ a lean and agile development process." The third is to "follow standards that enable pluggable components for tools and applications." The fourth lean software principle is to "hire skillful developers." The fifth is to "leverage open source," the sixth is to "optimize deployments" and the seventh is to "rent or outsource context and own core applications."
Discussing pain points developers face, Rymer described how going lean can lead to an "antidote" for several of those pains. For instance, EJB containers require heavy configurations, he said, and the antidote to that is Spring. Another example is that the WS-SOAP (Simple Object Access Protocol)-based specifications are complex to use. The antidote for that is REST (Representational State Transfer). In another example, Rymer said Java EE and .NET development is hard and not fun. The lean software antidote for that is the use of dynamic languages such as Ruby, Perl and Python. Another developer pain point is that projects take too long and too often miss the mark. The antidote for that is agile development methods, which "link developers and users to hit the mark quickly."
In addition, Rymer listed the OSGi (Open Services Gateway Initiative), SAAS (software as a service) and PAAS (platform as a service) as modular and elastic alternatives to heavy solutions.
"There's something going on here and it's bigger than lightweight containers," Rymer said.
However, do not expect going lean to cure all ills, Rymer said. "Lean software shifts complexity, but it doesn't eliminate it," he said. "Lean is a developer lead, but others must be convinced it will work."