I received a call from Chris Kanaracus, an IDG reporter I enjoy working with, the other day. He was researching a story on IBM and its new academic program working with students on environments including Ruby on Rails. Investing in students is always a solid strategic option for any tech company. Catch them early and they will stick with you for the long haul. Its not that different from Big Tobacco. 😉
I was intrigued the the program was built around IBM’s Project Zero, which is still very much an incubator at IBM rather than a recognizable revenue stream. But of course IBM in investing in the future, not the past or present. Of course IBM also invests heavily and increasingly successfully in other student programs-such as its mainframe program, which is graduating some cool kids. Mainframe = Youth.
On of the students on the program, Jeffrey Tan is quoted:
“I just interviewed for a job, and almost all I talked about are these major Web 2.0 technologies. Basically, Web 2.0 is replacing the old Web.”
Indeed it is. But not necessarily in the ways you’d expect. I was struck by what NCSU Professor Munindar Singh, who runs one of the courses, had to say about the IBM technology in question:
Project Zero’s rapid development framework has helped students focus on higher-level issues around application development, rather than trudge at length through the deep weeds.
“Spending a lot of time just trying to configure an application server to do stuff for them is such a waste of time,” he said. “That’s something the tool should be doing for them. … The higher up they are in the food chain, the more creative they’re going to be.”
Singh’s comments match some broad structural changes we’re seeing in the world of application development. Web development frameworks are increasingly adopting principles similar to the opinionated approach of Ruby On Rail’s, which favors convention over configuration. That is – rather than having the freedom to tweak absolutely everything, from choice of database to how data fields are handled on the page – Ruby On Rails embeds best principles in the framework infrastructure itself. You do things the Rails way. Freedom is attained from working within constraints. Its the freedom to develop code, rather than to tinker with configuration settings.
The same kind of thinking is also effectively applied to enterprise middleware – thus Spring has been widely adopted by Java Enterprise Edition shops because it simplifies Java programming by encouraging developers to code to application programming interfaces rather than classes. It simplifies Java Database Connectivity (JDBC), which is ultra-configurable but can be a beast to use.
IBM then is responding to an industry-wide transition from configuration to convention. Changes within the firm are not accidental. When I first met Jerry Cuomo, WebSphere’s chief technology officer last year I was immediately struck by his honesty about IBM SWG’s failures, and his clarity about how to address them. At IBM classic the default is complexity, the convention is configurability, the status quo is a revenue stream.
But simplicity is not some bauble you can just hang on to the complexity tree. It is something you need to work on. It needs to be the root of the work you do, not the branch. Simplicity is a first principle. As is lightweight. IF I read Professor Singh right he thinks that’s where creativity comes from. Cuomo is determined to respond to that. He is working from a blank slate, deploying to a stackless stack (or see another explanation of the stackless stack, very relevant in this context).
I must admit I was pleased with how enthusiastically Cuomo embraced my own thinking on the emerging RASA (REST Agile Scripting ATOM) development approaches.
I think Agility is the key word here. It’s about needing to get the job done by “next Tuesday” versus getting it done in a way that will make it “last forever”. Hence an Agile platform is optimized for “time”. Heck, if we can bring a little of the endurance characteristic along the way without introducing complexity, perhaps using conventions over configuration, then bring it on.
When I look at such Agile stacks – RoR, the many PHP frameworks including Zend, Cake, the Python-based Django project, or heck yours truly – I see several common threads:
* *Scripting* based programming methodology
* Constrained around simple web protocols, data formats and SQL
* App server is natural extension of the Web Server
To govern such attributes, a looser style of management would most likely fit best (especially to start) because of the diverse nature of the technologies in question.
Finally I want to dwell a little on the title of this piece, which is a marker for the IBM resurgence. A story I am fond of telling people is that I got the IBM beat as a junior reporter in 1995 because the company was considered “dead”. The death has been somewhat long and drawn out. So much so that IBM is dominating markets once again. But its not enough to have a place in today’s economy. You have to have a place in tomorrow’s. Its not enough for the company to be your father or brother’s IBM, it needs to be your son’s.
disclosure: IBM is a client, as is Covalent, which was recently acquired by SpringSource. Apologies to Robert Persig for my comment on simplicity – its borrowed from a quote on quality in Zen and The Art of Motorcycle Maintenance.