Drupal 8 is an opportunity to learn
DrupalCon Prague has just finished. One of the major topics this conference was the unrest about the incipient Drupal 8 release in the Drupal community. Only recently Drupal was forked into Backdrop. "Drupal 8 is too complex" seems to be the main argument to fork. As a response core developers, and stakeholders within the community did their utmost at DrupalCon to alter the public opinion about the D8 learning curve and developer experience. We've heard promises of an improved DX, better documentation and tutorials, possible adoption of PSR-4 and improved community involvement. And while D8 is stated to aim at attracting a higher tier* of developer, some community members are feeling left behind. I concur that the concerns about the D7 to D8 upgrade path are valid**. I even acknowledge the rationale behind Backdrop is legitimate. I can understand and support the motives behind setting a new and more conservative trail. However… I am surprised that an important argument is missing from the discussion:
The changes in Drupal 8 are not a threat for the individual developer to be left behind, these changes are an opportunity to learn.
There's a sea of new skills and techniques to be learned. And I for one am eager to dive in. Yes, it might be a lot to take in. But I'm excited to get working on Symphony 2, modern Object Oriented PHP, Twig templating, REST services, and all the new APIs, just to name a few. Let me tell you why I'm not scared.
A career of learning
Being a web developer is a peculiar profession. If you've worked in this business for 10 years, your experience spans about half the life time of the world wide web itself. Compare that to say, a farmer or an architect, and you'll easily recognise that web development is quite different. Whereas agriculture or architecture had 100s if not 1000s of years to establish stable forms of practice, web development is still in its infancy. It's safe to say that this profession will be changing rapidly for the foreseeable future. Perhaps it will vanish completely if web technology becomes ubiquitous. So our outlook as developers is one of change. In my opinion, embracing this change is the wisest career planning. I have some points to I'd like to make about the contentious discourse surrounding Drupal 8.
- The first problem in the discussion is the unjustified static model we use of Drupal developers. Despite all the pushes for better tutorials and documentation, there is a consistent view of stagnancy that permeates the discussion. It supposes that amateurs are, and always will be amateurs. And professionally trained devs are professionals. The tutorials are there mainly to get people with sufficient skills up to speed rather than breaking new ground for the unskilled. There is a wide gap between the initiated and the uninitiated and I believe other Open Source CMS's, despite their other shortcomings, are more welcoming to new devs than Drupal is. I'm also convinced that this is mostly where the proverbially steep learning curve of Drupal stems. But developers themselves also evolve during their career. Amateurs can become higher tier developers. Professionals can neglect their knowledge to the point where it becomes outdated. Rather than think of developers as locked inside a set role within the community I'd propose concentrating on their capacity to adapt. We should really focus on how amateur developers can be professionalised. And we should strive to do this is a way that is welcoming, friendly, patient and polite.
- Of course not everybody has the same talents. So what if the amateur devs can't hop on the 8-train? Primarily we should give any dev sufficient time to master a new skill set in their own pace. However if a developer hits a technical ceiling I'd advise them to adopt another role. Being a professional is not just about technical skills, it's also about communicative skills, and even simple stuff like being timely, coming through on promised deadlines, documenting your code or finishing an assignment properly. Additionally, there is always a need for professionals in softer, less tech savvy roles such as: testers, documentation writers, community gatekeepers or forum moderators. An alternative route for potential drop outs would be to retrain their skill set to something more specific like front-end expert or seo wizard. The more specific one gets, the more value his/her skills have. It would be a shame to lose all this talent to the Drupal community just because there are no clearly defined alternative roles besides hardcore dev or click monkey site builder.
- Regardless of all the changes coming to Drupal each and every one of us community members should set individual learning goals. The discontent about Drupal 8's complexity really is only a symptom of people's fear to be outpaced by a release cycle, with no plan how to cope. Just to remain up to date developers have to be flexible enough to adapt to new frameworks and new paradigms. It's not enough to just employ an acquired skill and repeat this trick over and over again. If you've mastered Drupal somewhere in your past, I'm convinced you can take this next step in it's evolution.
- Each developer, no matter how talented, should plan ahead and set some goals for structured self-development. Because even outside of Planet Drupal change is constant, and accelerating. We have to learn new skills just to keep up to the pace of the web. And it seems these new technologies just keep coming faster and faster. While the infant web is rapidly becoming more complex, so are the involved technologies. And it's also becoming more differentiated. There are many more specialisations today than 10 years ago. Today you can make a living optimising reverse proxies or implementing your search engine marketing expertise. These job descriptions where completely absent a decade ago. Imagine what this landscape will be like in another 10 years. Maybe it's just me getting old. But that's just the point. Everybody's getting old. If you are a web developer, can you picture yourself doing the same stuff 10, 20 or maybe 30 years from now? Perhaps you do, but how will you remain relevant the next decades? Every one working in the internet industry should develop a clear vision of where the internet is going and what their role in it will be. A very valid conclusion may be that you are moving to a different industry completely. As it will be harder and harder to distinguish the wired world from the non-wired world.
- One of the advantages of Drupal 8 being so technically ambitious is that choices are made for you. "How is that an advantage?" you may ask. Well, setting individual learning goals, as mentioned earlier, is hard work. How does one go about selecting the best technologies to learn? There are so many PHP frameworks, JavaScript libraries and coding standards out there that it can become a day job just to check everything out. All the libraries adopted by Drupal have been selected under the credo: "proudly found elsewhere". More knowledgeable souls than each of us individually have been busy selecting these libraries. And they saved you the effort of selecting the best ones to learn next. You don't have to agree on all these choices. Of course there is hot debate about these incorporations. Remember the WYSIWYG in core discussion? Or the one about ckeditor vs aloha? That got really nasty. Sure, you can be very well informed about a specific JS library. But are you really knowledgeable about all of them? They are selected by the collective mind that is the Drupal community. It's the nature of open source. They are handed to us on a plate and all we, as developers, have to do is be open and learn them.
The practical consequences
Now there are always consequences. The short list below outlines the practical consequences of Drupal 8's complexity. And rather than tell you what I think is best, I'd like to summarise them for you to discuss. This is what the Drupal 8 skills discussion should be about. The most fruitful is usually the operational discussion, not the philosophical one. Let's talk about business, planning and costs. Not about the pros and cons of a fork.
- Time constraints / when to learn? With the shortage of well trained Drupalistas out there I bet you're quite busy, as am I. Time constraints are always a problem. How will we find the time to learn all this new stuff while doing magic with the old stuff?
- Timing / when to move? If the toil of migrating to the last major version was hard, this time it might even be harder. Will all the highly used contrib modules be ready? What will I do with all my custom code? Is it wiser to be an early adopter or step on board a bit later when D8 has matured a bit and more compatible contrib modules and themes are available?
- Consequences for clients / who will pay for all this? Time is money. At some point you will be forced to learn some new skills while working a project for a client. Following from the previous 2 points you might struggle finding the time to migrate your clients websites, starting new ones based on D8 and timing the moment of adopting the new standard just right. For all this, there is a percentage that the client pays for. We as a Drupal community should discuss how much we can afford to make clients share in the progressive stance we take to new technologies. After all the discussion, DrupalCons and forks, we might agree as developers. But wouldn't it be interesting what the client thinks of this?
- Consequences for clients / availability? Of course, if you made it all the way down here to the very end of this long article, you will be as keen as I to start learning Drupal 8 now. However, there are a lot of clients out there who are searching for Drupal devs right now. While we are going through a transition of a major release there will be further constraints on the already narrow Drupal developer market. We, as a community, should discuss how to manage this. We should have some clear answers on what to advise clients who are asking if this is the right time to start working on that Drupal 8 site, not from a technical standpoint, but from an availability standpoint. Are there enough well trained Drupal 8 developers available to create a site which needs to be released in say, a year from now? The client will want to launch based on a major version that is relevant when the site goes live. When will be the tipping point where the investment in the new release outweighs the investment in a possible future upgrade?
Next year, when DrupalCon is coming to Amsterdam, I'm betting we're either very close to Drupal 8's first stable release, or it'll already be released by then. So we have a year still to learn as much about D8 as we can and to start thinking about what next. Because inevitably we will have a similar discussion with the advent of Drupal 9.
* There is some discussion on the phrase higher tier of developer. This is a paraphrase by Backdrop's Jennifer Lampton citing this article in which Dries Buytaert distinguishes self-taught developers vs professionally trained developers.
** An integrated migrate tool in Drupal 8 has been announced which should alleviate some of these concerns. See point 2 of this Amazee labs blog post.