Offering regional and national programs, CIO (and CSO) events bring together some of the most respected names and thought leaders in information technology and security. Presented by CIOs and other senior level executives, these invitation-only programs offer timely topics and strong networking. Learn More »
Develop Your External Leadership Skills
A collection of essays from CIO Executive Council members on understanding and developing the external-facing leadership competencies of "customer focus," "commercial orientation" and "market knowledge." CIOs from Best Buy, Universal Orlando Resort, Direct Energy and others describe how they have learned to anticipate customer needs, become market savvy and identify and enable commercial opportunities.
The CIO Paradox: Is IT Set Up to Fail? - FREE Webcast Jan. 19th
CIOs run what may well be the toughest function in the business, with end-to-end responsibilities across multiple levels of infrastructure, data management, processes and people. Yet you spend inordinate amounts of time justifying your existence. Join your fellow CIOs in this town-hall-style CIO Executive Council teleconference on rethinking IT governance, re-educating CEOs on IT value and enabling the profession to attack and defeat this "CIO Paradox."
Characteristics of Transformational Leaders - FREE Webcast Jan. 7th
Leaders come in all shapes, sizes and personalities. However, most great leaders share key traits which allow them to transform their organizations. Learn about some of these traits, how they manifest themselves in the workplace and how you can work towards adding them to your repertoire. Our seminar leader is Larry Bonfante, CIO of the U.S. Tennis Association.
Learn more about the CIO Executive Council »July 25, 2007 — CIO —
A minor phenomenon has swept the Web world in the last few years. Like many things in the realm of software, it was overhyped. I'm talking about the open-source Web development framework called Ruby on Rails.
Few things live up to their hype. But certainly Rails has at least come close to doing so, and the things that come close are the case studies worth examination.
Not long ago, people were asking whether Rails would succeed. I maintain we're now past the point of asking that question. It has succeeded. Now let's ask: Why?
Born from Real-World Needs
Ruby on Rails had its first public release in July 2004. It's now slightly past the toddler stage. And like a human toddler, it was incredibly active and hard to keep up with. By 2005, David Heinemeier Hansson had won the "Hacker of the Year" award for this software package. In 2006, Rails won the 2006 Jolt Award for best Web development tool. So how did this happen? What did Rails do right, and what did Hansson himself do right?
I should point out here that Ruby and Ruby on Rails are not the same thing. The insiders all know this, but the outsiders and newbies may not. Ruby itself is a language, comparable to Perl or Python, dating back ultimately to 1993. Ruby on Rails, of course, is a Web framework written in Ruby (dating back to 2003 or so).
The first "secret weapon" Rails had was that it was extracted from a real-world application. Rails was not the original goal. The goal was a Web application called Basecamp. As Hansson and others worked on the application, they found out—for the hundredth time—that Web development is painful, time-consuming, repetitive and detail-oriented. This made it a good candidate for coding in Ruby.
In the process of writing this high-level, condensed Ruby code, Hansson started to abstract away the essentials of the interface, and the result became Ruby on Rails. It was born from real-world needs, from working code and from the everyday experiences of developers.
Rails also benefited from what I call the "Write It Twice" principle (which unfortunately lacks a cool acronym). In the process of building a system—especially a large one—a developer learns new information, finds unforeseen issues and problems, and introduces workarounds. Every experienced developer has occasionally thought, "If I wrote this again, I could do it much better." The rewrite is always clearer, cleaner and better code. It's not better just in the academic sense, but also more maintainable, more extensible, more powerful, sometimes even faster. The technique of "write it once, throw it away, write it again" is an incredibly powerful tool, but one that is rarely used because of the time and expense. But that is essentially what happened with Rails; it was written once as the "guts" of an application, and then the rewrite was an abstraction that could be used for any Web application.