Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Sam Aaron and Obie Fernandez on May 07, 2007
Today at Sun’s CommunityOne conference, ThoughtWorks Studios' announced that their upcoming Agile IT project management application, Mingle, will be the world’s first commercial application to run on JRuby. Actually, it may be the first commercially distributed Ruby on Rails-based product.
According to ThoughtWorks, there were a number of motivations for launching Mingle on JRuby. First of all, it streamlined the deployment process across their target platforms. Mingle is a web-based application that will be available as an external hosted application (ASP model), but it will also be licensed commercially and distributed as an installable package.
In particular, the deployment story for Ruby on Rails applications is still significantly more complex than it should be. This is fine for a hosted application where the deployment platform is in full control of a single company, but Mingle isn't going to be just hosted. Not only is it going to need to scale ‘up’ to the sizes of Twitter (okay, that's wishful thinking and maybe it won't need to scale that much) but it's also going to need to scale ‘down’ to maybe a simple Windows XP machine with just a gig of RAM. On top of that, it's going to be installed by someone who doesn't understand anything about Ruby on Rails deployment and, well, possibly not much about deployment either.
The downloadable version of Mingle will be distributed as a simple installer for Windows, a simple .app (drag, drop, double-click) file for Mac, and an .rpm/.tgz for ‘generic’ Unix. Enterprise customers will have the option of deploying Mingle to their existing production systems:
Mingle 1.1 released a few months later will also be delivered as a .war file that can be deployed on any of the popular Java EE application servers and using any of the popular database servers. This is required by our larger customers.
Sheer innovation also had something to do with the decision. According to Chad Wathington, VP of Product Management at ThoughtWorks Studios, "Obviously ThoughtWorks likes to push technical boundaries and there's also the coolness factor." As far as anyone can tell, Mingle is definitely pushing the boundaries of commercial applicability of JRuby.
Mingle represents ThoughtWorks' first foray into commercial product development for the masses. It was built using Ruby on Rails by a small, focused development team based in Sydney, Australia, led by senior ThoughtWorks technologists David Rice and Jon Tirsen. Everyone involved has been very vocal about the benefits of using Rails:
“Ruby on Rails allows us to be incredibly productive and deal with complexity to a completely different degree than would have been otherwise possible. In the long term, this will allow us to deliver better features with a lower price, conclusively benefiting our customer.”
Internally, Mingle uses Java technologies for both the web server (Jetty) and database (Derby). Performance has not been a major concern. The current runtime easily supports hundreds of concurrent users with a simple cluster, and JRuby performance has been getting faster all the time. According to the team, experimental deployments have included 10 JRuby interpreters running in a single JVM process.
JRuby core developer Ola Bini is due to start working full-time for ThoughtWorks in June, where he will continue to work on JRuby and support internal ThoughtWorks JRuby-related initiatives, such as Mingle.
ThoughtWorks feels strongly that they are paving the way for many JRuby applications to come. Mingle certainly acts as strong supporting evidence to the following claim, made by Jon Tirsen in a moment of (perhaps some degree of) hyperbole:
“JRuby is ready for prime time!”
Agile Maturity Model Applied to Building and Releasing Software
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
Fair Trade Software Licensing - A Guide to Neo4j Licensing Options
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
No comments
Watch Thread Reply