Open Source Development: Quality Assurance or Community?

Can we have both?

Open Source projects are built on the notion that a bunch of programmers who don’t know each other (at least initially) can work together to build software that will potentially be useful for as many people as possible (consider apache, samba, ubuntu and smtp). Open Source projects are usually made up of dedicated volunteers who want to change the world. So where does, “we want to change the world” move to “we want to change the world but only if certain criteria is met”.

Open Source projects are a lot like neighborhood play when I was a young (oh so long ago).

consider this scenario:

It’s Saturday, all the neighborhood kids are outside trying to find something fun to do.

David (the leader) says, “OK we are going to build a fort!”
Everyone jumps up and down and yells, ‘Yeah! Yeah! let’s build a fort!”
David decides, with agreement from the group, “OK this fort will be 2 stories high and…”
George pipes up and says, “I don’t think any of the trees can hold a 2 story high fort, daaavid” and rolls his eyes
“Fine, 1 story fort then” David says slightly dejected.

A slight pause and then with renewed excitement David yells, “ok? OK!! So Tommy you go get the sticks, Susie go get some sheets from your mom’s closet and Chris didn’t you have like tools or something in your garage? I’m sure your dad won’t mind!”

Just as the kids were about to rush off to get materials Billie, David’s very best friend, strolls over to the group.
“Uh oh” Susie whispers to George
“Yeah remember last time he helped us! He fell down and broke the fort, we had to start all over!” remarked George
“yeah but when we rebuilt it we had a tv and fridge and stuff in there that Billie setup, it was the coolest fort ever” Susie whispered.

So what did we do when the kid who ‘ruined’ everything came by? We patted him on the back and welcomed him to the project and then made sure his shoelaces were tied. We had the coolest forts ever.

Open Source projects attract all types of people, from the end-user who downloads and uses the software but doesn’t say anything at all to the world-changing rock star of a programmer who can take a project from so-so to irresistible. Then there are those of us who fall in the middle. We download the software and use it. We like it so much we figure out how to do really neat things with it. We tell other people about the project and they go download it and do stuff with it and talk to you about what they’ve done. These are not core developers but what I like to call “integrators”, people who really appreciate what the project has to offer. People who are not involved in the creation of the software but who take the core functionality and adapt it fit our requirements, whether it’s for a client business process or for our own project.

Then we want to contribute. We spend our free time creating an add-on product or writing documentation or creating screencasts to help the project and the community “grows”. After all we want as many people as possible to know about our project. We hold events to promote the project and feel like we are part of this community even if we don’t actually write the code that makes it work. We contribute in our own ways.

The world is changing on an hourly basis now, not daily. The way we did something last week is no longer applicable this week.

How do we ensure that the project stays “current” and keep the community strong by encouraging contribution? Or is that even possible?

Those of us who “integrate” feel trapped between the desire to help the project and further the community and the speed at which the project is developing, leaving us gasping for air as we try to keep up with changes.

Which is more important for an Open Source project, the strength of it’s community or the quality of the project?

Why does Plone theming hurt so good

It’s Wednesday morning and I haven’t even had my coffee yet and the second thought in my mind is my Plone filled day ahead (the first thought being is there anymore Frosted Flakes left and did the kids eat it all).

There are days, like today, where I wonder to myself why, after nearly 9 years, I’m still building Plone sites. Plone is still hard, but it is getting easier, or so I’m told. Am I a masochist maybe? Is the strength and pull of the Plone community so strong that even though my common sense says run, run far away and never look back, I still sit here day after day creating Plone themes? Maybe it IS Stockholm syndrome after all. I’ve been at the mercy of Plone’s multiple changes and increasingly more difficult theming story for a long time. Granted, I stay on top of “what is coming next” and know much of this ‘pain’ will go away with Plone 4. Or will it?

After all I am a designer, not a programmer. And yet I spend 99% of my time in code. Don’t even get me started on viewlet modification! Plone has so many awesome features, my clients love Plone because I love Plone. My clients see through my eyes, voice and actions that Plone is the right tool for their project. It is, really. Why does it hurt so much to make it pretty! Why do I love that it hurts so much? What am I going to do with myself when Plone has reached the point where theming is easy!? I can’t bear the thought.

I have tried to leave, to pull myself away from this project that has such a hold on me. It’s not easy. Plone is just so charming when you do what it tells you to do. Cross Plone and you’ll see, it can throw a nasty little traceback at you without giving it a second thought. Oh Plone what shall I do, I know I should leave you but I can’t. Plone you make me crazy, but you know what, I wouldn’t have it any other way.

/* heading to the kitchen for coffee and mumbling something about interfaces and zcml */

C2E Training:Creating Plone 3 skins and custom views

Recognizing the need for training in customizing the look & feel of Plone, C Squared (C2E) will start hosting quarterly training sessions focused on the “art of theming”.  Our first 3 day session is scheduled for  March 18 – March 20, 2009 and will focus on creating a Plone 3 theme product.

Trainees will be able to convert a photoshop file to an installable Plone 3 theme product. Training will include comprehensive css training (with more focus on Plone specific css), making sense of viewlets and portlets, adding your own css and javascript files, understanding generic setup profiles (making your changes in the zmi and exporting) and best practices for theming Plone sites.

Knowledge of Python is not necessary but basic knowledge of *nix or windows command line and comfort with working on the filesystem is suggested.

Please register for the course here

C2E Training offers a variety of Plone specific training sessions including sessions for content managers, integrators and designers. If you are in need of training for your organization please feel free to contact us at (408)866-1300

Comparing Plone to WebGui

We are moving one of our Plone clients to WebGui. After extensive evaluation of all the other CMS’s out there, WebGui scored the highest based on the clients requirements and plans for expansion. WebGui is as “big” as Plone in that it’s definitely overkill for your standard brochure-ware site.

I am tasked with creating the “theme” for this new WebGui website. After some initial reading and talking to the WebGui guys I’m left with the feeling that we (Plone) are making skinning sites way too difficult. The primary culprit? Viewlets. When one of our star programmers has to create a third-party product (GloWorm) just to allow designers to change a footer or header in the site we need to rethink the way we are approaching this whole theming scenario. Deliverance is great, but really guys, how many of you really believe someone who is focused on the “visual” aspect of a site is going to learn xslt? It’s easier, but it still isn’t easy enough to attract more designers. We have less than a dozen individuals in our community of over 400 (guessing here) who actually can take a .psd and convert it to a Plone 3 theme (and most of us are still struggling, I’m not the only one). Look at our paltry offering of themes available now,? The OOTB theming group is working really hard to get as many out as possible.  We need to step up theme creation but that is not going to happen if there is not a dramatic change to the process of theming. It’s too painful. I do have to say though that buildout and eggs rock! I just hate viewlets (ok there I said it). As someone who works directly with clients in determining their requirements, there hasn’t been a single theme that we’ve done that didn’t require extensive changes to the viewlets (including different banners on inside sections and changes to drop downs in horizontal nav based on where you are located, etc etc). The fact that we have to turn off viewlets first, then add the new one and have to change at least 4 files to do that?? configure.zcml, viewlets.xml, viewlets.py and umm there was one more.

Now back to the WebGui theming. I’m just getting started and I’ve already ran into one thing that Plone really does right. Filesystem skin development rocks. WebGui does not offer filesystem skin development, yet. All “theming” has to be done in the browser (or offline in Dreamweaver and then pasted into the browser). They are working on this but as someone who has been doing file system development for a few years now, it’s something I’ll miss.

I have a large Plone project starting next week along with this WebGui project. I will write about the difference, what I really like and what bugs the heck out of me.

26,926 blog posts in the blogosphere within the last day for Google Chrom

26,926 blog posts in the blogosphere within the last day for Google Chrome.

I have fallen prey to the phenomena that is “Google Chrome” blogging day. Although I’m usually so much more strong willed, today I’ve lost all of my ability to not jump off that proverbial bridge. I downloaded Chrome, and am playing with it along with everyone else.

First impressions:

Damn it’s clean and at first blush it seems really, really fast

Although only 1/2 the functionality of Firebug at the moment the “inspect this element” tool is slick, slick, slick! (right click on the browser page and select “inspect this element”)

I added gmail as an “Create an Application Shortcut” and it’s sexy and accessible from my desktop. Not that that matters as much to me as it does to my 65 yo mother who likes shortcuts on her desktop to her “ahem” Yahoo! mail.  I’m absorbing as much as I can in the blogosphere about this new tool (you find out more from your peers than you do from documentation, I’ll tell you that much!)

An interesting post from Mozilla CEO John Lily

http://john.jubjubs.net/2008/09/01/thoughts-on-chrome-more/

Want to know why? Read Google’s Comic Book

http://www.google.com/googlebooks/chrome/index.html

(warning: the comic book is excellent but 36 + pages so get a cup of coffee and maybe call a geek to explain it, I just happen to live with a geek so I know more about browsers than I ever thought I wanted to know, go me)

I ran a few tests and I’m still poking at the “Chrome” but it’s looking like it’s going to be an awesome browser. I love FF3 and am writing this post in FF3 with Yoono and all my little rss feeds, twittering in my Yoono panel and admiring my colorful tabs so whether I’ll switch browsers anytime soon remains to be seen.

As a xhtml/css/template designer I spend way too much time in the browser worrying about this pixel and that pixel and swearing that non-standard browsers should be totally and completely scrapped I’m glad to see that Google is listening and improving our experience.

Google is so right when they say that our experience with the browser has changed. So many of us spend our day streaming video (watching the news online instead of on the television like we used to). Talking to our kids who have left the nest through chat of some sort (gtalk anyone?). Ordering groceries and holding online conferences and/or training sessions (I did that more this past year than I ever have in the past).  The requirements of the average user has changed.

As far as the accusations that Google is trying to monopolize the web. Who cares? If they do something better than anyone else, don’t they deserve it? They’ve worked hard to get here so why take that away?

Google has done their homework, let them revel in the ice cream sundae they earned and let’s get back to helping them build us the best browser ever (even if it turns out to be Firefox 4 – using all the cool technologies Google has developed and is willing to share). Monopolization implies the unwillingness to “share”, how can Google monopolize the web when they’ve Open  Sourced the code generated after months and months of  blood, sweat and gears (yes it’s a pun ;-P)

Kudos Google, keep up the good work.

As for me, I’ll continue to use FF3 for web developer type work and Chrome for browsing and checking email! (at least for now)

(btw the amount of blog posts has probably increased since I started this particular post!)