Open source, is a very powerful movement, says Kay. “I think it’s going to continue influencing the way we work and live well into the future,” he says. One great thing about it is how it speeds up change, whether incremental iterations or a massive redirect. There are a lot of smart people thinking hard about the ever-changing needs of the Internet. The fact that Drupal is open source gives it a real edge in this scenario. Innovators from all geographies and disciplines can share their visions for new features and then be directly involved in creating them, thus enabling a virtuous cycle. And because of the size of the community, this can be a really fast moving situation,” he says.
The Drupal community effort is well organized, Kay adds. Developers see a powerful return for their efforts as they participate in this virtuous cycle of creation.
"People also talk increasingly about the security advantage of open source. With code available to read, a much larger pool of people can test for and report issues. Drupal has a well-organized process for fixing security concerns. The rate of adoption among security-minded private and public sector organizations is a testament to its success," he says.
Drupal core is built for a broad set of use cases. You then add modules, some common to the needs of many websites and some very specific. The result over the years has been a range of Drupal-base websites for everything imaginable: higher education, major media outlets, tiny non-profits, inventory management, even bicycle racing clubs... you name it. Drupal lends itself to diverse implementations.
“I think this belief is based on a misconception of how people should learn their craft when they are starting out today,” he answers. He explains that historically a lot of people have started in website development as hobbyists, learning what they can on their own. “The approach of teaching oneself is the yardstick people bring to learning a new web technology. That, in my opinion, is off the mark,” says Kay. “If you need to develop a moderately complex website, it's not reasonable to expect you'll get the skills you need by reading a few books.” Instead you need clarity around the requirements of your own project, a level of specificity you're not likely to find in a book.
This is not to undercut the efforts of people who have learnt in this manner. “The vast majority of existing senior Drupal developers are auto-didacts, but keep in mind that the web has been around as a commercial endeavor for over twenty years now: expectations have risen increasingly rapidly over the last few years.” Drupal enables some of the most advanced sites on the web; these projects are necessarily multi-disciplinary, and working on your own both to learn and deliver a full-featured site is a very tall order, no matter what the platform.
“I'd argue coaching and mentorship are key ingredients in any successful effort,” says Kay. This is true in part because there is no such thing as the homogeneous Drupal professional. Mentors can help people at all levels identify relevant objectives and start down productive learning paths. Since web development is very multi-disciplinary, development teams need to cover a broad range of project requirements. The best situation is for someone learning Drupal to aim for the skills needed by their (future or current) team. Mentors can help people identify and work toward skillsets to which they are well suited, keeping an eye on both the near-term needs of the team and the long-term opportunities of the mentee.
“A disproportionate number of job announcements ask for familiarity in every technology in the Drupal stack,” he says. In fact, the majority of successful Drupal projects don't leverage in-house expertise in Linux, Apache or MySQL, and do only a minor amount of work in PHP. More often, Drupal professionals need communications skills and familiarity with contributed modules to be successful. Drupal teams need people who can listen to customers, understand their users' needs and translate them into a sustainable user experience,” says Kay.
“The Drupal community works together to do the heavy lifting around code, database, security and so on. Project owners are surprised to realize their interests are best met by paying people to use the existing code better, not to write new lines of code.”
Kay has considerable experience in mentoring developers on Drupal. “I love providing mentorship. I learn a lot and get satisfaction from seeing people’s sense of achievement when they take on something new.”
“I look for genuine excitement and enthusiasm about the things they plan to accomplish. They need to drill down to the heart of their personal objectives, to what motivates them, and articulate what their success will look like. Once there, we can explore the specific skills they need to develop, and what additional people and projects might help them get there,” says Kay.
The most important aspect is the communication pattern, Kay says. "Mentors in my view are best suited to helping make decisions. In order to do so, they need to know where a mentee is and what she/he needs to accomplish. Mentees should keep them up to date on progress and challenges, and carefully avoid treating them as tech support. Mentors in turn shouldn't solve problems for them, but give guidance."
"Learners shouldn’t mistake this to mean they have to solve every problem by themselves. The contrary is true. They should use their resources well, and mentors should be counted among these. Case in point: more often than you might think, learners struggle to resolve dead-end problems—the ones where a ready solution exists but they need to unwind several earlier decisions in order to use it. A mentor can make quick work of this situation if they know something of how it developed."
"There are a few concrete techniques for striking a productive balance. Brief entries in an online learning journal can give mentors useful, quick insights into learning progress and current status, enabling them to provide situation-specific recommendations. When learners get stuck, they can spend a pre-determined amount of time working to get themselves unstuck, then use IRC, Google, Stack Overflow and the like to research a quick list of possible ways forward. If none is a clear match, the learner can update their journal with the situation and the list of items from their research, then send the link to their mentor. Recognizing mentors can't always be available, they can then turn to another task, or take another crack at the one that has them blocked and adding any new information to their writeup," he says.
Kay also recommends that mentees have a weekly 30-minute chat with the mentor. A great way to start these is for both mentee and mentor to demo recent work. The chat is probably most productive if discussing coding issues is the exception. Broader conversations covering a variety of topics such as career opportunities, team challenges at work, volunteering are also valuable. “Mentors bring a lot of experience that can help you with your long-term objectives,” he says.
Several frontend developers complain about the lack of modern frontend practices in Drupal. What does Kay think?
Kay says, “There are some difficult limitations in Drupal 6 and 7. Drupal 8 promises to be much more flexible, enabling many more open sources projects to be used both on the front end and the back end. Drupal 8 ships with Twig as its templating engine and includes Backbone.js and Ember.js in core. Other non-Drupal projects are expected to be much easier to integrate, as well.”
So will Drupal still be relevant going forward, we ask. Frontend MV* frameworks such as Angular.js, Ember.js, or Backbone.js are now becoming the norm for web development. With the frontend abstracting away from the backend, what is the scope for Drupal?
“Drupal has a long and healthy future in front end applications. I have no doubt of its ongoing relevance. It's also worth talking a little about its strength as a back end framework, which is far from being fully exploited. For years now it has served as the backend for smartphone apps, and is well suited for serving content to non-Drupal websites and even to solutions that are not websites at all. We can expect this to grow further with Drupal 8,” says Kay.
He continues, “It's also fun to talk about Drupal and the Internet of Things. Things are collecting information and Drupal is often used to store and manipulate it for display on websites or use by other Internet-enabled 'things.' I think Drupal will see more exciting uses ahead because of its strong community, and because of the vastly more open architecture offered by Drupal 8.”