Laura's posts appearing on Planet Drupal
Laura Scott's posts that appear on Planet Drupal.
For those who don't know: I served on the DA Board in 2010-2011, and was on the Governance Committee that developed the new structures. Before that I was in the General Assembly. I'm currently on the Advisory Board.
But I share my opinions here as a long-time member of the Drupal community who cares about the future of Drupal.
Criteria: more than good intentions
Last year, the Nominating Committee (on which I served) considered many aspects when evaluating potential candidates for the Drupal Association Board, including (in no particular order):
- Skill sets. (We needed people with diverse areas of expertise, be it financial, legal, organizational....)
- Competence in their field. (We wanted A players.)
- Industry. (We did not want to have a Board comprised of mostly Drupal consultants, for example. Given that consultants as a whole tend to be more active in Drupal than others, this is an issue we will always face. Even so, the perspectives of various sectors are valuable — government, publishing, education, not-for-profit, corporate, etc.)
- Company. (We had a rule that we didn't want any one company represented by more than one Board member. This eliminated a handful of otherwise very qualified candidates. We made an "exception" with Angie Byron, because of her fabulous community leadership and because Dries, under the Bylaws, automatically has a seat on the Board.)
- Geographic diversity. (We knew we had to reach out worldwide. This made for a challenge, because of the greater travel requirements that come from having Board members scattered across the globe, but considered it worth trying.)
- Drupal Ecosystem. (We wanted the various perspectives of the members of our community: volunteers, small shops, large shops, large integrators, in-house teams, designers, end-users, etc.)
- Outside perspectives. (We needed to reach outside of our own Drupal echo chamber so we could draw upon knowledge and expertise from, e.g., other FOSS organizations who faced similar challenges already.)
I am looking at the same things when considering the nominees who have put up their names for at-large Board members in 2013, but here are a few criteria that, for me, weigh higher than the others this year:
- Skill sets and expertise. And in this, I mean awesome track record, not impressive resumes. Whether elected by the community or recruited through the Nominating Committee process, all of our Board members need to be A-players, not well-meaning B- or C-players. We should expect nothing but excellence from our elected Directors.
- Geographic diversity. The DA is clearly still very heavily weighted towards a North American perspective. To me, the long-term viability of the Drupal Association depends upon geographic diversity of its decision makers, and right now I feel non-North American voices are needed. We're a global community, but how that's reflected in the DA Board is ... incomplete. I'm looking at non-North American candidates first.
However, with all that said, criteria for selection are only half of the equation. It behooves us all to consider....
The business of the Drupal Association
I feel it's best if those of us voting consider what the Drupal Association is doing, and what very real challenges the Board faces, before weighing the candidates to the above criteria (or whatever criteria you bring to bear). Here are just a few items.
DrupalCons are the bulk of the "business" of the DA
Just look at the financials to understand how the DA lives and dies by the financial success of DrupalCons. All of the other things the DA does, such as supporting the Drupal.org infrastructure, migrating project repositories from ancient and crappy CVS to Git, and the ongoing improvements of our tools available on Drupal.org... all of these are dependent on DrupalCons' ongoing success.
How to make DrupalCons more successful is an open question. But consider:
- The rapid growth of DrupalCons has been a huge challenge for what has been a grassroots community event. Look at the History of the DA to understand something of how we got here. The huge popularity of DrupalCons is a great problem to have, but it's still a problem – a very real problem.
- The DA has put on only 2 DrupalCons a year, and because of size, each event effectively puts the entire organization at risk. With 7-figure budgets, risk can't be avoided. This means that an imperative must be put on institutional knowledge, best practices, very sound financial management, and always keeping an eye on protecting the DA. If there were a major failure of a DrupalCon, suddenly the resources earmarked for the next DrupalCon would be compromised, money to back Drupal.org improvements is put at risk, and the resources the DA brings to all of its endeavors are threatened.
- Adding a third DrupalCon represents roughly a 50% increase in activity, risk, challenges. Things didn't come together for São Paolo (and why is an open and valid question worth examination to find lessons to learn), but seem to be coming together for Sydney. The DA is obviously striving to expand the geographic diversity of major events, but that's not easy. Simply wanting more DrupalCons on more continents isn't enough. One conversation questioning how DrupalCons happen has started but that's not enough. For any such dialog to yield results, it needs to involve the Board, the Advisory Board, a lot of community members, sponsors, attendees.... And there's much to weigh in consideration.
- Large-scale Drupal events require significant financial commitment — much more than what your average local community group can afford. Balancing community initiative and organization against DA financial resources and risk management is always going to be a challenge on the big events.
- Finding ways the DA can support regional summits and DrupalCamps has been on the agenda for the Board and the Executive Director for some time now. There have been pilot programs, but there's more that can be explored. And all of these involve more than simply providing a "rubber stamp of approval".
Diversifying revenue is a gradual process
Growing other components of the DA's revenue sources, such as through DA memberships, is an imperative, but these things take time. The DA started as a way to manage DrupalCons, but our mission grew to broader support of the Drupal community. And yet, right now, DrupalCons demand the majority of DA resources and vast bulk of the DA Board's and staff's attention. DrupalCons are the tail wagging the dog. This means the great pressure on the success of DrupalCons is not going away soon. How do we grow other revenue streams to counterbalance revenues from the insanely popular DrupalCons? How do we do it without compromising the values of the Drupal community?
The DA is young — very young
Although the DA has been in existence for many years, it is very young in terms of the new governance rules. What has happened so far should not be indicative of a mature policy developed over several years. We're just getting started!
This means that whoever gets elected will be joining a small group of people who have a very heavy workload. When I was on the Board, there was always too much to fit on meeting agendas. I think it's fair to assume that has not changed at all.
Governance does not mean doing
The time for marching orders is past. The whole restructuring to the new governance model was to get away from the volunteer-doer-Board-member paradigm, because that was simply too inefficient. There's a staff of paid professionals and committed volunteers to lead implementation. What we need on the Board are people who think outside of the box, who are thought leaders, who can build consensus, who can see the big picture, who can collaborate, who can herd cats — and who have a track record being awesome at it.
That's all. No, I'm not going to be publicly endorsing anyone. You can decide for yourself. So have you voted yet?
You theme with the mark-up you have, not the mark-up you'd like to have.
That's the essential truth that designers and front-end developers new to Drupal need to understand. You don't get to construct your pages from scratch, building out essentials, never a wasted div, never an extraneous class. No, you have to flip the entire process around. With Drupal you're getting markup shot at you from a firehose, and as a themer you need to sop it all up and make it pretty. Don't spill a drop.
What this means is that, by default, you're spending a lot of time debugging the theme you're building so that it handles all the different configurations, content types, page structures, etc. that the Drupal site is throwing at you.
You have to be braced for it. It can be overwhelming. You can feel like you're drowning. Don't worry. You'll get used to it after a few months. Mostly.
Make friends with Firebug.
But wait, can't this situation be changed?
Well, kind of. You can intervene in the mark-up. You can write your own page templates. Your own fields templates. Your own views templates. Your own search templates. Your own node templates. Your own comment templates. But be warned: You're going to be working against a ton of mark-up. And you'll need to know some PHP to add your own variables — mighty powerful and nifty, but your Dreamweaver chops aren't going to help much.
You see, Drupal aims to be flexible, and it does that by throwing a zillion divs, spans and classes into the output. That means if you're not expert at CSS, you're going to be lost adrift in a sea of markup, and if you are expert at CSS, you have to learn how to see through the clutter — because when you have four or five nested divs to contain one single element, it's not necessarily obvious which one to target with your CSS. Especially if there's some nefarious Drupal core CSS already at work.
There are endeavors to make Drupal mark-up better, including in the HTML5 Initiative. But that's a slow process, and it sometimes meets heavy resistance.
Meanwhile, to get sites themed now, you may have to change how you work. Change how you view the web “page”. Get used to being the html sponge, absorbing and directing the firehose, using only the drops you want and letting the rest by without touching a thing. Let go of the idea that you're building from scratch, and get used to the mindset of diagnosing what's already there.
That's the price of power. Drupal is incredibly powerful. You need to flex your theming muscles to match what Drupal throws at you. Work through the complexity. Trust in Firebug. And don't despair. In the end, the resulting webapp is orders of magnitude bigger and badder and more kick-ass than what you could have done on your own, having 100% control but going it alone.
...What should go is the habit of hardcoding content into the theme. #separationplease #drupalwtf
"Content"? Hmmm. This got me pondering: Is a logo "content" per se? My immediate response was in the negative. But upon further consideration, I don't think it's all that clear cut; I'm definitely less certain today than I was yesterday.
This post is a bit of thinking out loud on this question. Comments welcome! (But no need to shout #wtf, okay?)
Content or architecture
To me, "content" in a Drupal site is the content, as in nodes, comments, image uploads, embeds, etc. The content is the information. Come back to an article on kitten care a year from now and the content will be the same (or at least it should be).
The logo, on the other hand, is a graphic component of the user interface as well as the branding. The logo is the visual representation of the site identity. It may change and evolve, as logos do, as user interfaces do.
But functionally the logo in the web application is really a part of the site's architecture. The logo is "home." Redesign the site, revamp the logo, change its colors, replace it altogether — it is still "home" in terms of the functionality of the application. In that sense, it is fundamental architecture.
When planning, designing and developing a custom website, the theme is custom, a part of the entire design that includes architecture. (At least, this is the assumption I'm working from.) One typically does not move a logo around on a page willy nilly. One typically does not swap out the logo for another — not unless you're also changing the theme as well, as part of an entire redesign. The logo is a part of the whole user interface, the whole user experience, the whole compositional balance of the page. Conceptually it's hard for me to split out the logo as represented on the page itself as somehow apart. Logos have their own separate life, yes, but in a user interface context matters. One might even argue that the entire user interface is all a part of the branding, with the logo just playing one part. One might....
One of the advantages of a Drupal site is that a site administrator can actually manipulate the site architecture without touching code. This helps site building happen much quicker than it would otherwise. This admin control over architecture also can be handy for site owners, even if used only once or twice in a year. And it constitutes configuration stored in the database.
But does that make architecture "content"?
Drupal is very good at blurring the lines between functionality and presentation because of this paradigm. In puritanical (small "p") terms, it's undesirable, this blurring the lines. But in terms of usability and convenience for site owners, it ends up being empowering. Site menus can be modified, added to, deleted from. Blocks can be repositioned. The user interface, in other words, ends up being extremely malleable and subject to the whims of any user with the appropriate administrative permissions.
But is it content? I guess it depends upon what you mean by content. In terms of interaction design, I tend to view the site logo as a component of the entire user interface design, as part of the architecture in terms of functionality.
In Drupal, by default the logo can be uploaded from within the Drupal admin interface, and in that regard it's something like the other architectural elements that are exposed in the Drupal back-end. But the logo's purpose is locked in Drupal core. It links to the website "home page." The administrative control of the logo is restricted to determining what graphic will be presented as the logo. In other words, the logo ends up being merely the visible face of core Drupal functionality, the site architecture.
However, in terms of design, the logo is ideally integrated in the entire page design, and ideally is not simply a drop-in graphic, swappable at a whim. What's more, how that logo appears — i.e., what that logo's graphic image might be — depends upon the site design, which in turn is greatly affected by the device for which the theme implementation is intended. For example, if handheld compatibility is being addressed, the logo on a site viewed in a desktop browser will almost certainly be different from the logo used for users viewing on a handheld device. This makes Drupal core's logo upload functionality too limited and requiring either alteration or bypassing, because when the logo is uploaded into Drupal, you just get the one logo per theme. To swap out the logo for different platforms and devices, you'll need to do some fancy theme coding to load a different image (not easy for most), use simple CSS to force-resize the image (not considered best practice), or load a completely different theme (which is often not desired).
One way to avoid this is to skip Drupal's logo upload paradigm and load the logo's graphic as a background image. This way the logo can be easily swapped through use of @media queries in CSS for different sizes and aspect ratios, to complement responsive theming for tablets and handhelds. Incorporating site logos into web design via background images using CSS is a common practice for many web designers and developers. It certainly makes it easy to do things like :hover states and other user-feedback goodness.
But maybe that's not the best approach. For one thing, it clearly treats the logo graphic as not content. What if it is?
In terms semantic
There's some interesting debate on this.
Keith on Shubox ponders the question, considers the possibility that the site logo can be considered content. He argues that for SEO reasons a logo loaded as an image can have an alt value. This doesn't convince me because the link tag that can be displayed with a background image (the logo itself) can have alt values, too.
Stack Overflow bats around the question with some very nice discussion.
One assertion that comes up is that the logo is content semantically. Again here I'm not entirely convinced — not when it comes to interaction design (for the reasons I describe above). However, I do see the site name, which may or may not even be printed on the visible page, as semantically critical. But the logo? Not necessarily. In many ways, the semantic web is not much interested in graphic logos, but rather the identities the logos represent. —Especially if you consider that logo on the same site at the same URL may be different depending upon the device you're viewing it with.
Still, the Stack Overflow discussion and other Google hits leave me questioning my assumptions. (Oh, and Google itself loads its logo in an
<img> tag as content.) I'm open to convincing on this score. However...
In terms practical
In another tweet in our brief exchange, Jen noted that if the logo is loaded on a website as a background image, "nothing will print."
It's a good point: A logo set as a background image will not print if the browser is not set to print background images, and there's no guarantee that it will. And whether you offer printer-friendly alternative pages or try to remedy the matter in print.css, it's a challenge that wild and wooly browser-world does not make easy to solve.
In other words, the background-image approach for logo placement may well serve easy adaptability to a wide variety of devices, platforms and resolutions, it risks a #fail when it comes to presenting the logo on dead trees.
(And if the logo is missing, it will be missed, which again raises the notion that logos may indeed be content after all.)
So in terms of Drupal theming, maybe the logo refrain is: don't worry, print $logo, be happy.
Yesterday, we had a Drupal Association Board Meeting to discuss upcoming DrupalCons. The meeting ran very long as we discussed and debated what criteria we should consider in selecting cities for DrupalCons in 2012, 2013 and beyond. Passions ran hot at times as we hashed out our thoughts on our evolving process for making these decisions.
- What is the purpose of DrupalCon?
- What components make for a great DrupalCon?
- What factors play into selecting a city for throwing a majorly successful DrupalCon?
In the end, I feel that we made a lot of progress in this meeting. This post is not a debrief of this meeting, though, but rather is a collection of some of my own thoughts about DrupalCon, shared as a member of the Drupal community.
Growing presents challenges
As Drupal continues to grow so quickly, the Drupal Association has been working hard to adapt. The community is many times larger than when I joined it over 6 years ago, even since when the Drupal Association launched in 2006.
- Members on Drupal.org are now
over 1 million515784. [I stand corrected. User id's are over 1000000, but many accounts have withered, were never used after registration, or turned out to be spammers who were blocked. And since about uid 600000 the uid numbers have been incremented by 52, not 1. Even so, that's a lot more than when I first joined.]
- There are more Drupal Meetups happening around the world ... and many meetups are growing in size.
- Drupal Camps in various cities are proliferating and growing. Many are now bigger than DrupalCons were just a few years ago.
No question: People want their Drupal, and they want their Drupal events.
Worldwide there are all kinds of Drupal community events of all sizes. For the Drupal Association, we've decided to focus our attention (for now) just on DrupalCons, as they are the most challenging to pull off, most expensive to produce, and are the only Drupal events that are primarily international in nature. Who else but the Drupal Association is in a position to produce DrupalCons?
(We've been testing ways to support regional Drupal Camps, and are looking for ways to help support Drupal Meetups, code sprints, hackathons, and other smaller community events that help people get better at Drupal and get more involved in the Drupal community. More on that in 2011....)
On the Drupal Association Board, I think we're all in general agreement that DrupalCon is about serving the Drupal community. But what that phrase "serving the Drupal Community" actually means can differ, depending upon whom you ask. Each of us on the Board has his or her own idea. This is what we ended up discussing in great depth — or as much as could be covered in 6 hours.
But difference of opinion about DrupalCon mirrors the diversity of the greater Drupal community. Indeed, yesterday, as word of our discussion got out, some people began tweeting thoughts and attitudes about DrupalCons. (I'm not going to try to characterize those tweets, or the thoughts of anyone else. We all have our own ideas. Perhaps you will share your own thoughts in comments below?)
It's about the community
Drupal is fabulously powerful software, no question. The ways it can be used to build quickly all kinds of powerful websites and web apps that otherwise would require potentially tens of thousands of programming hours to get off the ground make Drupal extremely appealing to businesses and individuals alike. I'm simply thrilled by the success Drupal has enjoyed in the online world, and delight being able to draw upon Drupal for solutions to challenges I face every day at work at PINGV Creative.
But to me, what makes Drupal a powerful force in the web design and development marketplace is the community.
When I go to DrupalCons, it's like getting a contact high. The collective energy of all these people, who are all there to learn about Drupal, get better at Drupal, meet people to work with on Drupal, hire people to work on Drupal, share what they're working on in Drupal, and just connect with other people in "real" life that they otherwise see only online, is invigorating. Code sprints, documentation sprints, theming sprints, keynotes that make you think, sessions that feed your brain, parties that help you wind down — DrupalCon is an experience in full.
As the community grows, how can DrupalCon adapt? So far, we've been making DrupalCons larger to accommodate demand. Naturally that's going to change the character of things. It takes more work to produce a DrupalCon now. A lot more work. It takes real money as well to secure the venue(s), buy the food, establish wifi for one of the most network-resource-demanding crowds of any conference per capita, build and maintain the website, handle ticket sales, staff the event, work with sponsors, and the list goes on and on.
This leaves us with a choice: Make DrupalCons small, and lock out thousands of people who want to come; or let DrupalCons grow, and find ways to underwrite the expense and effort it takes to throw a major event in a different city twice each year.
We've obviously gone the latter way, and for my part this is a good thing. The more people can get exposed to Drupal through DrupalCon, the better for Drupal. And yet it's not just about numbers. We want this to be about the community.
One commitment the Board made early on was to keep the ticket price affordable. People may differ on what's "affordable," but for me it means keeping it under about $100 per day. We want to make it easy for people curious about Drupal to drop by. We want it to be accessible to your average person living on a budget. And we have a scholarship program to provide free passes to people in particular financial need.
In short, if the event is too expensive, only the true believers who have the wherewithal to come will come, and we won't grow the community through this event. And that would be a failure, in my opionion.
But there are other ways DrupalCons can serve the community:
- Offer quality sessions that share knowledge. This has been a touchstone for every DrupalCon ever, but this doesn't mean other kinds of sessions don't slip through. I'm not all that thrilled about brag sessions, for example, where presenters show off something, but don't really share the how or what so that the attendees actually learn something more than "Joe certainly thinks very highly of himself." Or sessions where the presenter has 10 minutes of material, and then just fields questions (if there are any). I prefer sessions I can sink my teeth into. These are the kinds of sessions I try to create when I'm presenting.
- Provide ways for people to get involved. The code sprints are great, but lately they've had the image of being just for the elite developers — which is an essential part of DrupalCon, because when else will so many core developers be able to get in the same room for uninterrupted hours of collaboration? But also important are the quiet "coder rooms" we've had lately, where people can hunker down and get their hands dirty. And the birds-of-a-feather rooms where people can gather on a smaller scale to workshop or discuss whatever interests them.
- Revealing all kinds of things you didn't know you didn't know. It's also exciting to see what others are doing. The community is quite huge. There's so much going on that duplication of efforts can be a real problem. DrupalCon provides a great way to connect people across continents, and expose people to all kinds of things other people are doing, including oodles of things you never even knew was happening. That is exciting, and I feel provides a rush for many of us attending. Many, if not most, of us leave DrupalCon fired up to do more. You don't get that from a forum or IRC chat.
Community is the foundation. All else comes from that — the code, the business, the cool websites….
Clients follow the community, not the other way around
To me, this is how open source works. I'm sure many won't agree with me on this point. But the Drupal community came to be before the Drupal ecosphere. Today it may be hard to discern, because clients are such a huge part of the Drupal community. Professional paid Drupal work is a major driving force in Drupal development, and we definitely want to keep that paradigm going. Drupal can't thrive if it's only a hobbyist's technology.
And yet, my view is that the clients are there not simply because Drupal is the bee's knees. Drupal is a powerful technology, no question, but it's the community that makes Drupal's technological power credible. The thousands upon thousands of people all collaborating on the commons that is Drupal are really why Drupal is so great ... or at least a hugely major reason. In choosing any open source project, the savvy client looks at the strength of the community behind it. Drupal wins because of all of us thousands of people behind it, working ot make it better. Take the Drupal code as it stands today, and back it with a community of 100 people only, and you'll see usage of Drupal flatten and eventually drop.
Nobody wants to adopt an open source technology with weak community support.
By extension, I see DrupalCon as best benefiting the professional Drupal consulting ecosphere by focusing on building and strengthening the community, rather than focusing on making an event optimized for finding clients and making deals. I say this because if we do the former, the latter follows.
Someone has to pay for it
And this gets us back to cost, because if we can't keep DrupalCons affordable to people, the events will not be doing all they can to help build and strengthen the community.
Over the years, there have been complaints about how DrupalCon sponsors have become increasingly visible. Some have asserted that the Drupal Association focuses too much attention on sponsors.
Here's the thing: When events cost hundreds of thousands of dollars to produce, someone has to pay. If we keep the ticket costs down to make them affordable to a lot of people, the balance of cost has to be picked up by the sponsors. We want sponsors. We need sponsors. Otherwise we don't have events. Or we have ticket prices 2x, 3x, 4x more expensive.
And yet I also see sponsors as community members. We don't want to use up sponsors as if they're bamboo forests, expendable and replenishable. Our sponsors are part of our community. Most of the sponsors are in fact Drupal shops that comprise an important part of our community code, design and documentation efforts. DrupalCon sponsorships are not just revenue sources, they're also a major means for these companies and organizations to engage with and contribute to the community.
Sponsorship rates have gone up as the costs of events have gone up – and (very important) as attendance has gone up. My feeling is that we want to continue to offer a very diverse range of sponsorship opportunities, so that Fortune 500 companies can pony up big money for a big presence, while smaller shops can engage at lower financial levels. Over the various DrupalCons of recent years, there's been variable success at achieving this, and we're always looking for ways to do better.
What do you think?
I'm going to wrap up this rambling post here. What do you think? What makes a great DrupalCon? What would you like to see? What are DrupalCons getting right? How would you like DrupalCons to improve? What were your favorite DrupalCons of the past? And why?
Certifications in software make me sneeze. Or roll my eyes. Or shrug. Yes, I'm a skeptic of certifications, and leery of motives of people pushing them. To me, certifications are a way to make money not from clients but from peers. It's like a tax. Do not pass Go. Do not collect $200. Instead, pay thousands to some firm so you can get that seal of approval. And in the end, does it mean anything?
And yet there is this obsession with measuring people. It's a way of gatekeeping, of creating scarcity, of one-upsmanship. I don't think such things are a measure of quality. They're typically market tools employed to help one group of people compete over another group. It's part of a "there oughta be a law" approach to life.
Goodness knows there are a lot of people out there who have no business building websites, yet do. Rare is the experienced Drupal developer/themer/site-builder who hasn't been shown some unsightly mess of an implementation that hardly works, if it does at all, with unmaintainable hacked code and untold violations of best practices. But color me an unbeliever when it comes to the salvation offered by some certification system. Certifications don't measure the things that are crucial to effectiveness. They don't measure ability to solve problems. They don't measure those intangible qualities that make people worth working with.
And they can't measure the unknown. Certifications look backwards, and tend to reduce the beautiful and complex to the dry and limited. Are certifications what we want? Really?
Is "Rockstar" measured in inches or decibels?
Certified to Rock attempts to bypass certifications by disrupting them using a mysterious automagical formula. The Certified to Rock algorithm is secret. That's purportedly not a flaw but a feature — presumably because if the algorithms were known, they could be gamed. The blithe response is "if you continue to rock it, your score will increase."
Of course, all this depends upon what you consider a "rockstar". Forget Ozzy and Rod and Moon and Mr Mojorisin. Unlike old-school rock stars, who burned guitars, wrecked hotel rooms, drove cars into swimming pools, bit heads off of doves and passed out on stage, and were paid millions for it, Drupal "rockstars" participate and engage in more socially constructive ways. Yes, baby boomers, the rockstar is the new square. But is your notion in alignment with the notions behind the secret CTR algorithm? Who can say?
I confess that when I first saw Certified to Rock, I thought it was a joke — a kind of frivolous, er, let's say extraordinariness meter for geeks to see how they measured up — "frivolous" because it claims to distill what is ultimately so vague and diverse and multidisciplinary and, well, human that applying a single scale is like comparing apples and cinnamon rolls. And machines are not good at vague and human.
This challenge is not unique to Drupal. Just last week this challenge of defining and measuring qualifications arose at a data science unconference:
One of the best sessions I attended focused on issues related to teaching data science, which inevitably led to a discussion on the skills needed to be a fully competent data scientist.
As I have said before, I think the term “data science” is a bit of a misnomer, but I was very hopeful after this discussion; mostly because of the utter lack of agreement on what a curriculum on this subject would look like. The difficulty in defining these skills is that the split between substance and methodology is ambiguous, and as such it is unclear how to distinguish among hackers, statisticians, subject matter experts, their overlaps and where data science fits.
What is clear, however, is that one needs to learn a lot as they aspire to become a fully competent data scientist. Unfortunately, simply enumerating texts and tutorials does not untangle the knots.
[The author, Drew Conway, offers up a Venn diagram of his own in an attempt to illustrate the complexity of the challenge. If you're interested in data science, data visualization or other big data challenges, the linked posts above are highly recommended.]
Give a computer a task that can be crisply defined — win at chess, predict the weather — and the machine bests humans nearly every time. Yet when problems are nuanced or ambiguous, or require combining varied sources of information, computers are no match for human intelligence.
Few challenges in computing loom larger than unraveling semantics, understanding the meaning of language. One reason is that the meaning of words and phrases hinges not only on their context, but also on background knowledge that humans learn over years, day after day.
Knowing that CTR is likely not even a mapreduce kind of app, more of a simple query kind of app, one can only ponder its validity in the wild and wooly world of open source interaction development. But the concept has stuck around. And people are starting to cite CTR measurement as a gating criterion for hiring consideration. So there it is. And by that measure, it's worth a closer look.
How does Certified to Rock square that semi-amorphous blob that is a Drupal individual?
The validity of something like CTR is impossible to check, except by anecdote. Like Diebold voting machines, you cannot review the code. Unlike in Drupal, or any open source software, there's no real accountability through openness. You just have to trust it, trust the people behind it, and hope their notions of "rockstar" make some sort of objective sense, their ideas of how to measure those attributes are sound, the metrics they choose to incorporate actually have relevance, the algorithmic factors and quotients employed are properly balanced, and the people behind the curtain stick to high values, integrity and selfless standards despite the obvious and apparent temptations to tip the scales or otherwise succumb to the conflicts of interest inherent in building a system that rates not only your peers but your business competitors.
Even ruling out the last part — and knowing and having worked with Greg, Ezra and Ben, I have no reason to doubt their sincerity or integrity with regard to CTR — that still leaves a lot of unknowns, a lot of uncertainties, a lot of fuzz out of which a single scale of numbers appears — numbers that, despite their vague provenance, are being embraced by some as qualifiers for hire.
So how does it work? The site itself lays out some general parameters:
- It must be easy to automate. There are about 500,000 people on drupal.org and more every day. We can't add something to the system that is going to require much manual work. Certainly nothing that requires us to manually do a task more than a few dozen times. So, we could make a list of everyone who organized a DrupalCon and have the algorithm system use that because that's only a few dozen people (we don't currently do that and may never). But we aren't going to go through github, launchpad, and gitorious and associate people's ID on those systems with their drupal.org user ID and then have the system give credit to people who send lots of e-mails. That's not scalable. Pro tip: keep your work on drupal.org itself - if you don't like the way it looks/functions/whatever then help the redesign.
- It must not encourage anything that is harmful to the community. This is somewhat tricky. If, for example, the system gave points to people who have a lot of projects on drupal.org then that would encourage the creation of lots of projects including a lot of really bad ones. That makes it harder for new users to find projects. Which is really bad. So, we don't use any metrics like that!
- It must be balanced. One of the things we're really trying hard to do is measure skill and knowledge of Drupal in a way that is fair to people with different skill sets. Someone who is an awesome site builder (can't code much, can't design, but really can choose modules and configure them) should be on equal footing with someone who can design or who can code. This is...hard. In particular it is hard to measure the skill/contributions of designers/ux/ia people and site builders. So, if you have ideas on metrics that measure their skills, please share those ideas!
This last point is the hitch. It's the part that gets into the fuzzy logic of AI. How indeed do you compare apples with cinnamon rolls on a single scale? First thing, it seems, is to simply define the scope of what in fact is being measured. What makes a rockin' Drupalist (for lack of a better word)? Programming ability counts, but not if you don't appreciate the foundations of open source. Database fu is great, but is limited if you can't generate decent markup. Theming talent is fabulous, but it's only so much help if you can't build the site to theme. And none of this touches on the intangibles like professionalism, organization, collaborative skills, communication ability, sensitivity to project goals (vs nifty solutions), general mental health, etc. that are critical to effectiveness in a Drupal project.
And yet the machine measures something. What could it be?
Some objective metrics that might be incorporated into a certification algorithm for Drupal
Here are a few ideas (total guesswork on my part), any one of which would be of little use but could possibly be combined into some formula to measure a "rockstar" quotient. Note: These are in no particular order.
Simple numerical measurements readily at hand.
- Drupal UID [lower is better] — Some assumption of some degree of familiarity or knowledge could be applied based upon duration of membership in the Drupal community. On the other hand, plenty of people joined the community ages ago but haven't been very active. Or maybe you joined in 2003, tried Drupal and moved to Mambo.
- Drupal.org number of posts [higher is better] — Because participation is good. But maybe you're a help vampire or offer not-very-helpful input.
- Drupal.org number of comments [higher is better] — Because engaging in existing conversations shows interest in what the community is doing. But how many comments actually contribute to the conversation?
- Drupal.org number of Issues [higher is better] — Because one can assume that people participating in the issue queues are more engaged in improving Drupal. However, if you're posting a bunch of duplicate issues or build-this-for-me tickets, maybe that's not helping so much.
- Groups.Drupal.org number of posts [higher is better] — Because this shows engagement in more focused subject or regional areas. But if it's a bunch of job spam, who cares?
- Groups.Drupal.org number of comments [higher is better] — Because commenting on existing discussions shows engagement with the community. On the other hand, chatty comments are common on g.d.o and do they make the "rockstar"?
- Drupal.org number of documentation posts [higher is better] — Because if you can teach it, you probably know something. That is, if you do know something and aren't just adding cruft.
- Drupal.org number of documentation revisions [higher is better] — Because making documentation better reflects some understanding of that Drupal subject. But some revisions are (sometimes incorrect) typo or grammar corrections, which speak to one's writing skills but not one's Drupal-fu.
- Drupal.org number of Projects [higher is better, to a point] — Because maintaining a module, theme, feature or profile demonstrates a willingness to contribute, which is an important part of being a Drupal "rockstar". On the other hand, let's face it, there's a lot of crap contributed to CVS.
- Drupal.org number of patches [higher is better] — Because if you're offering patches, your nose is not only in code, it's sniffing out actual solutions to make things better (hopefully). But if your patches are no good, or get ignored because someone can't be bothered, then what does number of patches prove?
- Drupal.org number of core patches [higher is better] — Because if you're working in Drupal core, you're paying attention to the heart of things. There's no knocking this (Drupal core developers are my heroes), but there's a very great oodles more to Drupal than core code, so many are missed by this measure.
- Drupal.org number of core patches in current and impending releases [higher is better] — Because working in the real world of today and tomorrow probably carries more relevance than working on the real world of five years ago or three years from now. Of course, this doesn't mean they're good patches … and the same concern above applies here.
- Drupal.org number of commits by you [higher is better] — Because your projects are actively maintained, which shows engagement and desire to make things better. On the other hand, split out your projects into a bunch of files and you have more commits, and does that make you better, by definition?
- Drupal.org number of commits by others of your patches [higher is better] — Because if others find your patches helpful, all the better. Undoubtedly this is cool, but narrowness of applicability is an issue.
- Recency of all of the above [higher is better] — Because Drupal knowledge can grow stale fairly quickly. On the other hand, if you're really new to this, odds are you have a lot still to learn. (Don't we all!)
Reductive and Social Metrics
These are metrics that would need to be gleaned from some data mining more involved than your basic query. Quantifying these things is what is known as "hard to do":
- Groups.Drupal.org up-ratings of posts [higher is better] — What do others think of your posts? Probably only of low value, as the more pointed remarks generally get the upratings, and this may not reflect any particularly deep Drupal knowledge or engagement at all.
- Drupal.org and Groups.Drupal.org mentions of "thanks" and similar words with your username [higher the better] — This would take some Big Data-type parsing, but could yield some helpful social metrics.
- Drupal.org and Groups.Drupal.org "+1" to posts and patches — This could be difficult to figure, though, as sometimes the +1 is for someone else's comment.
- IRC "karma" points — Although this skews very heavily to the in-crowd, the inner circle talking to the inner circle, as many, if not most, people on IRC don't know about "username++", especially in #drupal-support and #drupal-themes.
- Twitter tweets about Drupal — Because you are probably working with it if you're tweeting about it.
- Blog posts about Drupal — Same deal.
Those Intangibles that Defy Measurement
- How effectively the designer leverages affordances provided by the Drupal UI.
- How well the architect matches Drupal solutions to project challenges.
- How appropriately the themer uses clean html and semantic markup.
- How scalable the developer's solution is in a high-demand application.
- How efficiently the project manager directs resources towards needs in a Drupal project.
And these don't even touch the non-Drupal-specific intangibles that apply in every Drupal project:
- How collaborative a person is.
- How professional a person is.
- How hard-working a person is.
- How responsible a person is.
- How intelligent a person is.
- A person's work ethic.
- A person's attention to detail.
- A person's adaptivity to change.
- A person's poise under pressure.
- A person's values and empathy towards others.
- Critical thinking.
And so on.
How many is a flower?
I don't know the answer to that. Is orange greater than salty? Is platinum better than mitochondria? Yes. No. Maybe.
Get occasional email updates on what I'm doing (and not blogging about).