My stay at Drupalcon Chicago
Here is a summary of my activities at Drupalcon 2011 in Chicago. I mostly got involved around the aegir project, but also attended and participated in a few sessions and BOFs.
Aegir activities
See also: http://community.aegirproject.org/node/455
We had a significant presence as 'Aegir' at Drupalcon, participating in three presentations and a code sprint.
Intimate aegir
The first presentation was "Intimate Aegir", intended to be a relaxed training with beer with Dave Hall and Morten. They apparently had issues with the projector. I heard this through people I talked to after the session, because I arrived late (after using my only "free" day in Chicago to visit the Aquarium and Millennium park with Jenny, Matt and Chris).
I regret coming in late because I feel I could have helped more with the session. In fact, people explicitly told me that after my arrival I was able to give the answers participants were looking for, which is a good thing.
Aegir 101
The second session was all about helping new people get into Aegir. I focused (maybe too closely) on installing Aegir, and so missed the opportunity to go around the room as I usually do to make sure that people were keeping up. Most people didn't really get through installing Aegir during the session, but they could see the system in action and diagnose simple issues. We had a good Q&A session at the end that helped a good few people in clarifying where things stand with the project, what works and what doesn't.
Aegir roadmap discussions
This third session was the real treat. Matt already wrote up a good summary here:
http://community.aegirproject.org/node/488
I really enjoyed talking directly with the community and I think this is a session we need to engage in at every Drupalcon (if not more often), as it helps answer common questions directly and clarify who we are and where we're going. It gives people hope and reassurance that we have a good handle on the project. It also provides us with direct sales opportunities as top-level Aegir consultants. We pushed out the idea of Koumbit offering support to people that provide Aegir support; it would be more practical to "train the trainers" than to provide support for everybody out there...
The code sprint
We also spent the totality of Friday working on coding, documenting and reviewing patches for the 1.0-rc2 release, which we *almost* got out the door during the code sprint. Three people showed up to contribute during the code sprint, plus me and Chris (we spent the whole day there). Most notably, Alex from Evolving Web banged his head on the especially hard issue of refactoring the site form. We discussed the possibility of hosting Aegir code sprints at Koumbit for Evolving Web workers to get familiar with the process itself and contribute to Aegir, which seemed to be a mutually advantageous opportunity.
I also lobbied everybody I could to get involved in the project. I think we have at least two or three new people to help in the queue and documentation--if not to directly review and submit patches or become outright developers.
People met in aegir sessions
* emjayess (Matt Sorenson) - potential developer
* darthsteven - potential developer, wrote patches, getting familiar with the funky multiserver stuff and wrote backup garbage collection contrib module
* shrop - potential issue queue janitor and all around nice guy
* ghankstef - potential helper with docs and issue queue
* eclipseGC - nice guy and potential porter to D7, runs a Drupal hosting shop with his father, whhom I also met
* Bryan Hirsch - coder? i forgot :)
* cash williams - coder, themer, helper
* probably others I've forgotten
Attended sessions
I made a point of attending at least a few sessions during this Drupalcon. I usually focus more on talking with people and recruiting helpers to resolve specific issues, but I did take some time to attend key sessions.
Aphorisms of API design
http://chicago2011.drupal.org/sessions/aphorisms-api-design
This was an excellent session, one I recommend to any module builder that wants to keep code interoperable and functional in the long term.
A few examples I sent to identica:
* @crell's API aphorism #3: Play by your own rules - use your own APIs, at least 3 implementations, don't use undocumented APIs
* @crell's API aphorism #4: A UI is not an API - have 3 implementations: simpletest, drush, web-basedmforms
* @crell's API aphorism #5: The best API is the API you didn't have to write
The whole thing was just great. A humbling demonstration of how to do things "the right way" (most of the time) by a great presentator. Adding anything else here wouldn't do it justice - just go and watch the video already.
A word on the "core conversations" track
The "core conversations" is one of the best things that happened at this drupalcon. In previous years, the "core" stuff was kept away from the "regular people" - you had to present "something" to attend. That forced people to make up silly presentations just to be there, and the model just wasn't scaling. This year they opened up the rooms to everybody and allowed anybody to participate, and which was very nice. Since they were called "core conversations", you were also spared some of the more formal "here are my slides and funny comments then any questions" approach - the sessions were highly participative and interactive.
Configuration/exportables management in D8
http://chicago2011.drupal.org/coreconv/why-our-approach-deployment-probl...
http://chicago2011.drupal.org/coreconv/configuration-management-drupal-8
http://chicago2011.drupal.org/coreconv/unifying-drupal-configuration
My big takeaway from the first session: everything should be exportable - content vs configuration seperation is mostly irrelevant. A key quote: "if it can be saved, it should be exportable" - i.e. if you can save a
node, you should be able to export it out of the site in a standard format. Also: node_save(node_load($x)) should be a no-op.
Overall, this was a great approach. Even though it lacked actual implementation direction, in theory it is the "Right Way" of going forward.
I unfortunately missed the "unifying Drupal configuration" session, so I can't comment on that. But the second session ("Configuration management in Drupal 8", by David Strauss) was really interesting, as it took the principles of Configuration Management that sysadmins are already familiar with through cfengine/puppet/bcfg2 and applied them to Drupal's configuration system.
The idea is that configuration, instead of being stored in a PHP file (settings.php) *and* the database (variables, views, etc. tables) would be stored in JSON flat files and *cached* in the database. Each "object" (a view, the variables table, a module's settings, whatnot) would be stored in a separate file to avoid locking issues and scalability problems, an issue I raised in a question to David.
I really like the idea that configuration and 'features' should be declarative, i.e.: describe the desired state rather than "try to get to the desired state", which is the way things are currently done in hook_update() and similar tools...
Show me the money
http://chicago2011.drupal.org/sessions/show-me-money
A good discussion, between Eric Gundersen (dev seed), James Walker (independent, Bryght founder) and Matt Westgate (Lullabot), animated by Liza Kindred (Lullabot), about the rates and business models of Drupal shops. It was based on data Lullabot collected in a survey of an (arguably) small sample (10) of (hand-picked) Drupal shops.
The results are fascinating: nobody charges below 100$/h, "credible shops" usually charge 150$ and above, and tops at 250$/h for the "best shops".
I really enjoyed the presentors' openness in stating clearly how much they were charging in front of a 300+ audience of potential competitors. One could say, however, that those shops are in another market altogether than that of the audience (not everybody builds sites for the UN, the Grammys or MTV...). Still, they are giving away, completely for free, a potential competitive advantage (the secrecy of their prices).
I observed that the shops on the stand were all the "cool" shops, backed by hardcore opensource-minded people (Gunderson, Liza, and Walker come to mind here). Other, more "venture capitalism"-style shops were
obviously not part of the discussion (Acquia, Phase 2, Palantir, Zivtek, etc). In fact, one could say that there were only two shops in that discussion: Lullabot and Devseed, since Walker is very close to Lullabot...So while I feel that the conversation was really healthy, I find it unfortunate that it didn't engage with a wider range of organisations. For me, this reflects the current culture of low appropriation of the free software principles on the organisational level of the Drupal business community. Apart from a few exceptions, it's business as usual, with just a different product.
However, an important takeaway from this is that we still don't charge enough. As Liza said in her introduction: "When I arrived at Lullabot, the first thing I did was to double the rates. Then the next thing I did was to double them again." Just guessing, this could mean they were charging 50$/h 4 years ago, and are now charging 200$/h. The logic behind this is that a higher rate lets you choose your clients: Lullabot will
always have people knocking on their door (if not knocking *down* their door) because they are a reputable, established Drupal shop. (If not one of the first to sell Drupal services, they've been doing it a long time.)
Koumbit is in a similar space: we have some of the oldest Drupal developers on the payroll, and were one of the very first shops to do business around Drupal. We do *not* charge accordingly. We should charge more. Period. This shouldn't keep us from giving stuff away or reducing our rates, but our corporate base rate should be at the very least 150$/h. There no reason why our for-profit clients should be charged less.
Tsunami - or "love will tear us apart"
http://chicago2011.drupal.org/coreconv/love-will-tear-us-apart-balancing...
Jeff Eaton (Lullabot) tried to create some vibe around a new "product" to be shipped with Drupal 8: "tsunami". Tsunami aims to be a simple profile demonstrating what you can do with "just Drupal", out of the box. While this seemed to be a potentially highly controversial topic, people appeared to agree that we need *something* better than just the "standard" installer...
A common allegory is that Drupal is a huge box of LEGOs. Jeff is suggesting we build a car with it. Not a plane, not a motorcycle or a lightbulb, but "a freaking car" - something simple...
We still have to see where this goes, I think this session was really about testing the waters to see how the product would be received.
Drupal framework vs Drupal platform
http://chicago2011.drupal.org/sessions/drupal-framework-vs-drupal-platform
This discussion was just plain strange - Eric Gunderson (head of Development Seed) animated a conversation between Iralki Nadareishvili (Phase 2, that aquired devseed's distributions), Jeff Eaton (Lullabot) and Moshe Weitzman (Cyrve). I felt that the people there were all mostly on the side of "small core": Eaton stated on Twitter beforehand that he would yell "smallcoooore!" during the session, while Irakli and Moshe are also de facto supporters of the idea. In other words, there was not much diversity of perspective for the discussion to go on.
All in all, this seems like an old debate being beaten to death again: "Dries said so" wins over all, and we're going to do both a framework and a product...
LDAP Birds Of a Feather
I went to the LDAP BOF, which was really interesting because I had the opportunity to talk to one developer of the new LDAP module. The module focuses on extensibility and clean code (and drupal 7). It still needs some work before we can use it (apart from porting our sites to Drupal 7...): binding is not possible now, but should be easy to configure. In general, "authentication" (checking your password and logging you in) should be fairly complete, while "authorization" (are you in the right group to do this?) is still in development. The API side of things in general is also in development.
Overall
This was (again) a crazy Drupalcon. Lots of people. Still a lot of suits. Some worry that we're in a bubble that's going to burst. Forbidden keywords: "paradigm" and "app store" (whenever you would say one of those words, conversation would cease and people would disperse with an excuse).