Evangelizing Grails
6 mars 2008

Let’s say you’re an architect or a team leader. You want your team to use the best tools and frameworks available. You’ve obviously chosen Grails for web application development. But now that you’ve made a nice presentation and everyone’s amazed by the fact that you made a blog in 3 minutes 42 seconds, you must get your team started. How do you do that?
Step 1 - Get everyone excited
Distribute to each of your teammate a copy of the free PDF by Jason Rudolph Getting Started with Grails. It’s only 130 pages, structured as a big tutorial, very well written, straight to the point, no nonsense. A good developer can go through it in a day’s work, playing with the framework, while building a complete working application.
NOTE: I can’t overemphasize how important this book is for beginners. I strongly suggest people sponsoring this kind of effort to support the writing of a new up-to-date release of this book. And wouldn’t it be great to have a follow-up, cleverly titled after Jason’s 2GX presentation, Going Further With Grails? I believe so.
Also, I recommend ordering a copy of Groovy Recipes for every code writer in your team. When you’re in the business of delivering projects fast, you don’t want to read through big chapters explaining the theory and concepts of programming languages through time. You just want to find out how to parse that damn XML and render it as JSON. Well, Scott’s book is exactly what the title says: a bunch of useful recipes you will use often in your everyday developments.
Step 2 - Bring your people in
Next, set up a workshop. Pick a room and tell everybody to bring their laptop (make sure you have power bars and network jacks in sufficient numbers). This workshop will be about doing stuff together in Grails, trying things we’re not sure about, asking questions, and finding answers. To sum up, getting used to work with the framework as a team.
Organize the workshop for at least a full day: presentations and demos in the morning, hands-on exercises in the afternoon.
I would also take another half-day teaching Groovy, preferably before doing the Grails stuff, so that you don’t get basic turn-off questions while showing a GORM dynamite features.
Step 3 - Showtime!
Start with a small project, where you — the one bringing the technology — participate heavily in all aspects of the project, especially code writing. Share what you’re doing at every step. Tell the sysadmins how you set CI, how you build the war; show the developers the nice code snippets you crafted; supervise the integrators’ work, watching how they’re doing with the Grails view layer.
Step 4 - Aftermath
Share your initial success. Tell management how productive it was working with Grails, how much fun it was, and how much the team liked it. Pay attention to metrics showing how you were more productive with Grails than with your old development stack. Watch for leaders of the pack, those who will hold the flame without you being involved.
I guess you can say you’ve achieved something when a new Grails project starts, and you’re not tied to it in any way.
This is how I plan to do things. Getting my company to adopt Grails to efficiently build web applications is my absolute goal for 2008.
How would you have done it?
JS.
6 mars 2008 à 22:03
I’m surprise to read you in english. Maybe Grails users don’t understand french. I guess you want their answer that’s why you write to them in their language. Hope for you they will answer you back. (I’m so pride of you)
7 mars 2008 à 12:18
Please continue writing in English (at least about Grails)
8 mars 2008 à 11:47
Nice post dude.
agree with Dmitriy.
10 mars 2008 à 12:46
I could write the answer in French, actually, but since the post is in English… here you go…
One interesting thing I discovered a while back was that if your demos only show / use the scaffolding, people will go away after the meeting thinking that Grails is only able to do CRUD applications. So something I’d recommend is to make sure that people really understand Grails is able to do any kind of Web application beyond those CRUD apps, and to do so, it’s good to show something a bit more involved than just the usual create/show/update/list scenario.