James Governor's Monkchips

“IBM doesn’t want to be your father’s IBM, it wants to be your son’s”: On Simplicity, Sustainability and App Dev

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

zero

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
* Focused on Rich User Interfaces with Javascript
* 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.

That’s sustainability.

old ibm logo

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.

Technorati Tags:

4 comments

  1. James

    I think the stackless stack concept enables business and IT agility; agility is really the key benefit.

    Ian

  2. […] , p7 , partitions , powervm , redmonk , simplicity A couple of things from the “Monkmaster” this morning peaked my interest and deserved a post rather than a comment. First up was […]

  3. James – nice post.

    Regarding the ‘get it done quickly’ requirement versus the ‘last forever’ requirement, I think there is a need for both. Perhaps another dimension is robustness – i.e. ‘good enough to meet the immediate need’, versus ‘bullet proof because we don’t know how this thing will be hammered in the future and from what angle’. I guess you could also throw in the ‘highly optimised because throughput and scalability is critical’ versus ‘quick enough to deal with the business requirement at hand’.

    I guess the point I am trying to make is that there will always be a need for ‘hand crafting’ or ‘precision engineering’, and the trick is to determine when ‘convention’ or ‘configuration’ is appropriate. This is why I am such a big advocate of SOA, because you can more effectively isolate all that hand crafted highly configured detailed stuff, which in my experience is necessary only for a small percentage of the average business system, from the higher level application logic and control, which the majority of developers are (or should be) concerned with.

    Back to your central theme, though, the thing I like about conversations with IBM is that it ‘gets’ the bigger picture. To my mind, it is in a fairly unique position to meet the needs of hard-core systems programming requirements (e.g. the guts of front-office systems in the City) and the much broader business application development requirement that depends on developers not being distracted by technical detail that has bugger-all impact on fitness for purpose of the final solution.

    There is an interesting contrast here between IBM, coming from the serious ‘configuration’ oriented heritage, and Microsoft, coming from the ‘just do it’ (JDI) heritage, that originated with the push with VB many years ago. I was selling highly structured and high value development tools when VB came onto the scene (circa 1996?), and this totally changed the market (from a vendor perspective), and the nature of the development community (from an end user perspective) – almost democratising software development in a way that we had only seem glimpses of previously.

    This is important history that many forget, and the debate around JDI versus ‘serious’ application development was one were having with Steve Mills (head of IBM SW Group, for those who don’t know him) a few weeks ago. The message from the analysts around the table during that meeting was not to dismiss the requirement for JDI, an area in which Microsoft (rightly or wrongly) has traditionally dominated for a long time now (that’s the relevance of the history bit).

    One of the things we discussed during this same session was that JDI, agile development, or whatever else you want to call it, has tended to go hand in hand with the ‘good enough’ mentality in the past.

    Against that background, I would be interested in whether you see this mindset changing, i.e. whether the majority in development community are becoming more discerning about the quality/nature of the frameworks they work with. It is not so much a question of IBM versus Microsoft, but more one of whether the army of JDI oriented developers out there will start to care about the principles underpinning the stuff they are working with.

  4. […] of “reality-based”? It never hurts to have IBM on your side after all – Big Blue is now teaching Rails to college students (and I am pretty sure not recommending […]

Leave a Reply to Appliances, Stacks and software virtual machines « Adventures in systems land Cancel reply

Your email address will not be published. Required fields are marked *