Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Jul 07 2020
Jul 07

DrupalCon Global 2020 will feature presenters from around the world on a virtual platform called Hopin (pronounced "Hop in!"). Drupalize.Me trainers Joe Shindelar and Amber Matz will be presenting sessions and participating in the conference. Both Amber and Joe's sessions will be on Thursday. (Times listed are in UTC. Convert to your time zone with this tool.)

I (Amber) will co-present with Gábor Hojtsy Deep dive: state of Drupal 9 on Thursday, July 16, 2020 at 18:15 UTC. We'll dive into details not covered by the Driesnote. You'll learn how new features get into Drupal and how old APIs and libraries get updated in Drupal's release cycle. By the end of the session, you'll better understand what's involved with upgrading to Drupal 9. (And how it's probably not as bad as you might think!)

Joe will present Altering, extending, and enhancing Drupal also on Thursday at 21:15 UTC. There are various ways to extend Drupal without "hacking core" and in this session, you'll get a great overview of what those options are and how to decide which method to use. By the end of the session, you should have a more complete understanding of what the use-cases are for plugins, hooks, services, and events and how (at a high-level) they are implemented.

Osio Labs' (the company that makes Drupalize.Me) sister company Lullabot also has a strong group representing at DrupalCon Global. Check out Lullabots Speaking at DrupalCon Global 2020 to learn more.

Finally, you might be wondering how contribution will work at DrupalCon this year. Contribution groups are being organized at the virtual DrupalCon Global Contributions Room. Browse and join groups or create your own if you'd like to coordinate a sprint for your own Drupal community project. If you'd like to help out with Help Topics (programmers and writers/editors needed), join the Help Topics group. (I am co-maintainer of the core experimental module Help Topics.)

To learn more about the DrupalCon Global platform and attendee experience, we recommend the DrupalCon Global 2020: Attendee Experience Preview.

Register for DrupalCon Global 2020

Jun 24 2020
Jun 24

Layout Builder

Layout Builder, and the related ecosystem of modules, provides a set of powerful tools that allow content creators and site administrators to modify the layout of a page using a drag-and-drop interface. We've published 11 new tutorials to help you Learn Drupal's Layout Builder and create flexible layouts for your Drupal site.

Learn Drupal's Layout Builder

We're working on more tutorials on Layout Builder as well as new tutorials on managing media in Drupal and videos to accompany tutorials in the Views: Create Lists with Drupal series of tutorials.

Happy layout building!

P.S. Drupal 9 has launched! Learn more about the latest major release of Drupal and what it means for tutorial compatibility and your learning journey in our Guide to Drupal 9 video and resources page.

Jun 09 2020
Jun 09

Drupal 9.0 logo On June 3, 2020, Drupal 9.0.0 was released! This is a major version update for Drupal, but the most straightforward update in Drupal's history.

As major version updates in the past have been quite disruptive in bringing new features and APIs, you might be wondering how this update impacts your site and your Drupal learning journey. Will Drupalize.Me Drupal 8 tutorials apply to Drupal 9 sites? Will you have to learn a totally new system with Drupal 9?

Thankfully, there is good news about both those questions. The short answer to the first question is "Yes!" -- the vast majority of our Drupal 8 tutorials will apply to Drupal 9 sites. For the second question, the answer is "No!", you won't have to learn a new system. The exceptions to the question of tutorial compatibility are tutorials which feature APIs that have been removed in Drupal 9, like in SimpleTest for Automated Testing (which we have noted). Also, some contributed modules have updates that we are currently reviewing. They appear in our Search API and Solr tutorial series.

We've put together some resources to get you up to speed with Drupal 9, starting with our Guide to Drupal 9.

What's the deal with Drupal 9?

In this short video, we explain how our Drupal 8 tutorials are compatible with Drupal 9 sites because of the way that Drupal 9 was built inside of Drupal 8.

[embedded content]

Upgrade to Drupal 9

While there's no one-size-fits-all process for upgrading to Drupal 9, by the end of this tutorial you should be able to explain the major differences between Drupal 8 and 9, audit your existing Drupal 8 projects for Drupal 9 readiness, estimate the level of effort involved, and start the process of upgrading.

There's no one-size-fits-all path to upgrade from Drupal 8 to Drupal 9, but there is a set of common tasks that everyone will need to complete.

In this tutorial we'll:

Learn about a key concept in understanding the difference between Drupal 8 and Drupal 9: deprecated code:

Deprecated code is any code flagged for future removal, but which has not yet been removed to ensure that existing code which relies on the to-be-removed code will continue to work. When an API, or feature, becomes deprecated it's a warning to all developers that at some point in the future this thing they are relying on will not exist, and they'll need to update their custom code to a new approach. Preferably before the existing one gets removed.

In this tutorial well:


Tools for checking Drupal 9 readiness

On the blog, we've posted a couple of tutorials to help you check your site for Drupal 9 readiness.

May 4, 2020 - 12:47pm

Upgrade status generates a report that serves as a sort of checklist to help you determine whether or not your site is ready to be upgraded to Drupal 9. It packs a lot of useful information into a single report. It's worth taking the time to install it on a copy of your Drupal 8 site and seeing what it has to say.

April 20, 2020 - 1:36pm

Drupal check, and Drupal rector, are two useful command line tools you can use to help jump start the process of updating your Drupal 8 code to ensure it's compatible with Drupal 9. This post includes some notes about the process I went through while testing them out on some of the Drupalize.Me code base.


Community resources

There are a number of great Drupal 9 resources from the Drupal community at large. Here are a few you might want to check out.

How Drupal 9 is made and what is included (Drupal.org) -- This guide includes documentation about the code deprecation process, 3rd-party library changes, module removals, environment requirements, and other important information about Drupal 9 and its future development.

Drupal 9.0.0 released (dri.es) -- From the blog of Drupal project lead and founder, Dries Buytaert

A new Drupal 9 landing page on drupal.org (Drupal.org) -- Drupal.org has launched a shiny new landing page introducing Drupal 9.

Thank you

A heartfelt thank you to all the contributors who made Drupal 9 happen! And a thank you to the Drupal Association for supporting community infrastructure and events that keep Drupal moving forward.

An Insider's Look at Proposing a Session for DrupalCon

Jan 24 2017
Jan 24
Oct 10 2016
Oct 10

As a Drupal user, developer, and trainer, I have seen and experienced the spirit of a growing and thriving tech community. And while far from a utopian society, the Drupal community has been a personal source of good friends, personal and professional development, career opportunities, and many (many!) teaching and learning opportunities. Part of what brings this community together is the shared appreciation of and opportunities that arise from using Drupal and other Open Source Software.

We have some like-minded neighbors in the Open Hardware community. Last Friday I had the opportunity to attend the Open Hardware Summit 2016, an annual event of the Open Hardware Association, and catch the spirit of Open Source in a fresh way: from the perspective of the Open Hardware community.

What is Open Hardware? As defined by the Open Hardware Association, which just announced a new Open Hardware Certification:

Open source hardware is hardware whose design is made publicly available so that anyone can study, modify, distribute, make, and sell the design or hardware based on that design. The hardware's source, the design from which it is made, is available in the preferred format for making modifications to it. Ideally, open source hardware uses readily-available components and materials, standard processes, open infrastructure, unrestricted content, and open-source design tools to maximize the ability of individuals to make and use hardware. Open source hardware gives people the freedom to control their technology while sharing knowledge and encouraging commerce through the open exchange of designs.

--http://www.oshwa.org/definition/

You probably have heard of some examples of open hardware, such as the Arduino Uno/Genuino. If you go to the project page for Arduino Uno/Genuino, you'll find schematics, reference design, and board size information, and anyone is welcome and invited to download this information and design their own versions and sell them.

Open Hardware Summit 2016

This year's Open Hardware Summit took place in Portland, Oregon at the Crystal Ballroom (the same venue for past Write the Docs events in Portland, OR, another most excellent event). The summit primarily took place in the main ballroom, where speakers were each given 15 minutes for their presentations, broken up by coffee and lunch breaks. Lola's Room on the floor below hosted a dozen or so vendor booths, featuring various electronic learning kits, Internet of Things platforms, live 3D printing displays, and other delightful things.

Presentations varied and largely consisted of inspiring project reports, lessons learned, failures and success, live demos, invitations to collaborate and contribute (for both hardware and software developers), and even a personal invitation to the Shenzhen region in China, a renowned location for electronics manufacturing.

My personal interaction with open hardware is from a hobbyist, learner, and teacher's perspective. I've interacted with a variety of boards from various platforms and am utilizing them for personal projects and also for teaching my 10, 12, and 14-year-old nieces programming and physical computing applications such as robotics, wearable electronics, and other embedded systems.

While all of the presentations were interesting in one way or another, here were some of my favorites.

Steve Hodges: micro:bit Open Source Physical Computing Platform for CS Education

In this presentation, Steve presented and demonstrated the micro:bit, an initiative brought to life in the UK by a partnership with the BBC. The micro:bit is designed for use by kids in the classroom. He demo'd a live Scratch-like block programming interface using Blockly, a Javascript framework developed by Google. Kids use the web interface to connect logic, preview their programs, and program their boards. Both the hardware and software components of this program were impressive. I walked away inspired to look into Blockly, and found several examples of Blockly to program an Arduino Uno (both paid and free) that I want to try out and possibly fork to create a Blockly interface to program a Circuit Playground from Adafruit Industries.

Rianne Trujillo: Open Source Hardware in our National Parks

Rianne presented a couple of projects she's been leading about embedded and interactive displays at national parks. One of the displays she works on is a bird/egg matching game. Inside the fabricated birds' eggs was an RFID tag. When placed in the correct bird's dish, the bird's song was played. (If incorrect, a voice said, "Sorry!") I loved hearing about the challenges and goals of the project, including making sure the display was durable, accessible to all, didn't fail if one egg went bad, and was relatively easy for park staff to maintain and replace components.

Jason Krinder: Open vs. Collaborative: Lessons from Linux and Google

This presentation was really a plea for others to contribute to Linux, but what I took away from it was a better understanding of what open hardware is and isn't. I also learned more about a new platform and board that I had only heard of in name, but didn't really know what it was. Jason Krinder is a co-founder of the BeagleBoard.org Foundation, a "US-based non-profit corporation existing to provide education in and promotion of the design and use of open-source software and hardware in embedded computing." I learned that the Raspberry Pi isn't built on open hardware and that there does exist an open hardware alternative to the Raspberry Pi, the BeagleBoard. Through my subsequent research, I learned that the BeagleBone Black is a low-cost board for developers and hobbyists that runs Linux. There is a whole community and library of resources around the BeagleBoards and you can find out more at https://beagleboard.org/.

Final impressions

There was so much to inspire and learn from at the Open Hardware Summit. From 3D printed prosthetic hands, to touch sensors for surgeons in India performing surgery on the pancreas, to nurturing project communities, to makerspaces and entrepreneurship in refugee communities in Beirut, Lebonon--I walked away with so many ideas--and tabs open on my phone and computer. I think it will take all year to process all the things I learned and want to learn more about!

The event was live-streamed and you can watch all the presentations on this UStream channel.

Getting involved in open hardware communities has renewed my sense of appreciation for tech communities like the Drupal community. It is so wonderful to see the amazing things that people can make when they build things together.

Nov 16 2015
Nov 16

Meet Drupal Developer Mike Bell

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

Interested in learning how to become a Drupal developer, too? Check out our role-based learning pathway: Become a Drupal Developer.

Mike Bell

Mike is a senior developer at CTI Digital currently working on rebuilding london.gov.uk. Others look to him to solve complex technical issues for a range of projects. In this interview, Mike shares his perspective on the Drupal developer role, what that entails, some tools that are important to him in his work, and the vital importance of coffee.

Where to find Mike

How do you define the Drupal developer role?

This is a tough question—these days, a developer role takes you all over a site. You can be doing back end development, front end, or more systems work. For me, the role is more traditional; it lies in writing code, and providing solutions for client requirements.

What do you currently do for work?

I’m senior developer on a team working on rebuilding london.gov.uk.

What does your daily routine and work process look like?

  • Morning: Coffee
  • Mid Morning: Coffee and code
  • Lunch: Coffee and code
  • Afternoon: Coffee and code
  • Evening: Whisky and code!

What kind of tasks do you do on a daily basis?

I usually work on quite technical tasks; usually integration tasks, new functionality, or bug fixes. As we’re pushing towards going live I’m working on performance improvements and reducing technical debt.

What do others look to you to do on a project?

I’m often looked at to provide technical solutions for client requests and issues that people are facing on a range of projects. I’ve done a fair bit of work with Vagrant so I manage our project's setup.

What would you say is your strongest skill and how have you honed that skill over the years?

Problem solving. I’ve learnt to analyse a situation before jumping into a problem and quickly became adept at using various tools to debug application level problems.

How did you get started on this career path?

Originally I started out working on custom ASP CMSs. I decided that there had to be a better way, so I began looking at the three major (open source) frameworks: Drupal, Wordpress, and Joomla. I found that Drupal offered everything I needed, and had an amazing community.

What is most challenging about being a Drupal developer?

Keeping up with major core releases (5>6>7>8) in a commercial environment. With new releases of Drupal, I always want to jump on to it and start creating new applications and modules, but it’s difficult when there are commercial implications.

What are your favorite tools and resources to help you do your work?

iterm2 with oh-my-zsh, solarized, bulletline — I spend much of my day in the terminal, so I have to make sure it’s exactly how I want it.

PHPStorm — It goes without saying this is the best IDE out there at the moment.

XDebug — An excellent debugging tool.

Raindrop Keyboard — Hand built 60% keyboard with Gateron Brown switches. Having the perfect keyboard is such an important thing for me. Without it I wouldn’t be as productive, even if my colleagues don’t like how loud it is!
Raindrop Keyboard

If you were starting out as a Drupal developer all over again, is there anything you would do differently?

I’d look more into Computer Science. With Drupal 8 coming up, I feel that developers will need to have a stronger grounding in object-oriented (OO) programming.

What advice do you have for someone just starting out as a Drupal developer?

Don’t just focus on Drupal, look at other frameworks out there. You can learn a lot of things from Silex/Symfony by just playing around with them and then apply them to Drupal.

Start looking in the issue queue for novice issues, it’s a great way to get used to how the Drupal issue queue works, and it’ll help you keep up to speed with the latest and greatest version of Drupal.

Nov 09 2015
Nov 09

Meet Project Manager Sean Lange

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

Interested in learning more about being a successful project manager? Check out our video series Introduction to Project Management where we interview our sister company Lullabot's managers and technical PMs about all-things project management.

Sean Lange

Sean is an advocate for developers and project manager at Lullabot, a fully distributed digital agency.

Lullabot
Project Manager

Where to find Sean

How do you define the project manager role?

The PM is the Project Advocate, constantly balancing the expectations and goals of the stakeholders with the scope, timeline, and execution of the development team. To accomplish this Project Managers become consensus builders, chief communicators, and process facilitators.

What do you currently do for work? What does your daily routine and work process look like? What kind of tasks do you do on a daily basis?

I’m a big fan of starting early. In our profession, early is relative, so to be specific I get up about 6am. I have two teenage daughters so part of my morning involves checking that they are up and moving; however, then it’s directly to the kitchen for my first cup of coffee (usually have 3-4 a day). I spend about an hour looking through emails and my todo lists in an effort to get an idea of the scope of my day. It’s about an hour later that I log into slack, Skype, and/or any other IM apps needed for the current client work. From there my typical day includes one or two scrum meetings, one or two miscellaneous client meetings, several one-on-one check-ins and/or discussions with project team members, and plenty of time creating, organizing, problem-solving and structuring work for developers.

Because communication is crucial to a project’s success, I am constantly taking notes (Evernote rocks) for use in meetings, phone calls, and follow-ups with the team and the client. While I prefer face-to-face discussion (Google Hangouts, WebEx, Skype) over long emails, I find that weekly summary emails that provide progress updates, detail key successes, and identify potential risk factors provides a great way to "tell the story" of the project throughout its lifecycle.

What do others look to you to do on a project?

I’d say planning, communication, and organization. Taking the lead and being the go-to person for anything not directly related to code. I feel my job is to make it as easy and frictionless as possible for the development team to do their job. As well as being the go-to person for the client to talk about any aspect of the project be it scope and time, or technologies and methodologies.

What would you say is your strongest skill and how have you honed that skill over the years?

Creating unity. I’ve been pretty successful at working with a team. Being a facilitator, a consensus builder, or a strategist when needed. I find that amazing things can be completed when people work together, communicate often, and have a common vision of success. My ability to keep projects on time and on-budget would be a close second.

How did you get started on this career path?

I was a Recreation Supervisor for a Parks and Recreation District (yes, like the TV Show). While I thoroughly enjoyed working with the families, working with the youth, and creating community through activities and programs…it was so slow. I had always been drawn to graphic design; however, I’m not an illustrator and I could only go so far making posters and t-shirts. Through design I stumbled into HTML, taught myself CSS, and eventually discovered Drupal, which allowed me to separate HTML and CSS from back-end code (theoretically). I started doing freelance Drupal work while working full-time for Parks and Rec working way too many hours. I had been working on a site called WallStreetOasis.com, the owner Patrick had become as much a friend as a client. He helped convince me that I had the chops, I had the skills, and that I should follow my passion and be a full-time freelance web developer. I did, and thanks to Patrick—and my wife—I am able to do what I love to this day.

What is most challenging about being a project manager?

For me, it’s writing. There is a lot of writing. It requires focus and patience to take complex issues, discussions, and processes and turn them into clear and valuable written communication. It is a consistent challenge for me. I have become a big fan of using the built-in “speech” tools on my MBP—listening back to what I have written and make adjustments until it’s just right.

What are your favorite tools and resources to help you do your work?

For actual project management (ticketing, assignments, sprints), Jira has proven to be the most robust and complete tool. Use of Google Docs and Sheets is a great resource for collaborative editing and thinking through solutions as a team. My go-to tool is Evernote. I have long notes, short notes, and web clippings, I use it consistently during the day to keep my thoughts organized any my details documented.

If you were starting out as a project manager all over again, is there anything you would do differently?

I don’t think so. I have learned Project Management much the same way I learned development; by doing. I am now in the process of learning Project Management formally via books and videos.

What advice do you have for someone just starting out as a project manager?

Look at where you derive the enjoyment of working on a project. Decide if you can be as motivated by the success of others as you are by completing tickets on your own.

There is a big difference between spending your day working tickets, being able to mark them "complete," and feel a satisfaction at the end of a given task. Project Management does not offer that same reward. For me, the enjoyment of being a Project Manager is providing others with the opportunity be successful. The feeling of satisfaction hopefully coming at the end of a successful project and a happy client…oh, and happy developers, too.

Nov 02 2015
Nov 02

Meet Front-End Dev Helena Zubkow

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

Interested in learning how to become a Drupal themer and front-end developer, too? Check out our role-based learning pathway: Work with Drupal Themes and Front-End.

Helena Zubkow

Helena is a front-end developer at Lullabot, based in Orlando, Florida.

Front-End Developer
Lullabot

Where to find Helena

How do you define the front-end developer role?

Front-end developers use a plethora of coding languages and frameworks to transplant static designs onto complex back-end systems to create a beautiful, living website. In a way, we’re the glue between the art and the science, so we need to be skilled at both. This makes being a front-end developer both an interesting and challenging role.

For me, that’s why it’s such a fun and rewarding career; it takes multiple facets of the mind to do it well. Even though we get designs from the designers, there are a lot of small technical enhancements that can be the difference between “beautiful to look at” and “enjoyable to use”, which require some panache. It’s technologically simple and adherent to the design to make a link change from blue to red, but creatively placing a subtle transition is the difference between ‘working’ and ‘working beautifully’.

As a front-end developer, I’m always integrating an engineering mindset with the user’s perspective. I’m always asking myself, “What’s the lightest, cleanest way to write this code?”, “How can I make this easier or more intuitive for users to interact with?”, and “How can I make this a delightful experience?”

How does being a front-end developer relate to being a Drupal themer and vice versa?

Being a Drupal themer is one of the things that I do while I’m being a front-end developer, but it’s only a part of the whole. When I hear “Drupal Themer”, to me that means simply skinning a Drupal site that an engineer has built by laying CSS or Sass on top of it, but there’s a lot more to front-end development than that. As a front-end developer, I write jQuery scripts that change the way the site interacts with users, I do a decent amount of site building, I install and configure modules, and I take larger concepts such as performance and accessibility into account. Put simply, ‘theming’ mainly refers to decorating what’s been built, while front-end development requires that you take part in the building process.

What do you currently do for work? What does your daily routine and work process look like? What kind of tasks do you do on a daily basis?

Currently I work with Syfy as part of the Blastr team. My daily routine is pretty straightforward. I wake up and review my current tickets on GitHub to see what’s been merged, and how current PRs are performing in their test environments. Then I go over to JIRA to see what I’ve done, if anything has come back from QA, and what still needs to be done. If I find anything on the site that needs improvement, I’ll file a ticket for myself or someone else to fix it. I report these findings on scrum, update the team on the status of my tickets, and listen to what everyone else is working on, and then work my way through the day’s priorities.

What do others look to you to do on a project?

As a front-end developer, I do a little bit of almost everything. On the technical side, I help make technical game plans from wireframes, site build, and theme what we build. When what we build breaks, I help troubleshoot to fix the problem. I’m also a web accessibility specialist, so I offer guidance on that topic to my peers and clients and work to configure elements so that they’ll work well with assistive technologies and alternative use scenarios.

On the social side, I consult and collaborate with clients about exciting potential features, explain to our clients how things work and why, and lighten the mood for my coworkers when tensions run high. Working as a front-end developer is never mundane because you have a lot of hats to wear over the course of a project.

What would you say is your strongest skill and how have you honed that skill over the years?

My strongest skill is moxie. Whether it’s picking apart a tricky bug carefully over the course of a few hours, responding to someone who is irate or unreasonable with a smile and calm rationality, or working diligently to learn something new long after frustration has set in, this serves me well for both the technical and social aspects of this career. I largely credit my previous career as a preschool teacher for this skill. My ‘clients’ were a horde of thirty 3- and 4-year olds. I’ve been tempered in toddlers; my moxie is iron.

How did you get started on this career path?

I started building websites when I was eleven years old to proclaim my love for N*Sync and Spider-Man to the world. My other hobby since childhood has been studying medical science. I got my degree in Technology Management with a minor in Psychology with the intent to produce assistive technology (AT) software to make communication easier for individuals with developmental disabilities, primarily coding in Java and C++.

While working on my AT software, I began building websites professionally to keep the money flowing. Since I had the skills and enjoyed doing it, it seemed like a good way to produce income. As time progressed, my interests in web development and AT merged into one as I realized that I could do more good on a larger scale by working to integrate accessibility into the front-end of commercial websites than I could with independent software. I’ve focused on front-end development since, and it’s been a great career choice. I love what I do!

What is most challenging about being a front-end developer/Drupal themer?

Being a front-end developer can be challenging because people don’t always understand how complex the work that we do is. Clients will ask, “Can we just have this one small feature/change?” without fully understanding that a browser isn’t like Photoshop. Something that takes 30 seconds to change on a comp might take quite a few hours or days to change in the code.

Another tricky part is that there are almost always a few ways to do the same thing, and it can be hard deciding which way to implement is the ‘best’ way without being able to see the future.

What are your favorite tools and resources to help you do your work?

I love responsive grids, CSS transitions, and the WAVE Tool. Oh, and (duh) - Drupal!

If you were starting out as a front-end developer/Drupal themer all over again, is there anything you would do differently?

I would have learned Drupal sooner. Once I learned how to build with Drupal I never glanced back. I had been coding websites by hand for a long time when I learned about Drupal, and now I’m sorry that I missed out on the powerful tools and rich community for all of that time. I wish I had been in this community from the beginning.

What advice do you have for someone just starting out as a front-end developer/Drupal themer?

Make work-life balance a priority. Coding can be easy to get absorbed into because it’s engaging and mentally stimulating, and the field can produce serious workaholism. You can easily sit down for five minutes and realize that it’s actually been twelve hours and there’s a Dorito in your hair, but putting your sanity and health first will make you better at your job. Eight hours of thoughtful, well-rested work will produce more high quality code than seventeen hours of caffeine-fueled zombie typing ever will. Go outside. Pet your dog. Hang out with your friends and family. Eat something fresh. Sleep. Then get back online and kick some ass.

Oct 26 2015
Oct 26

Meet Drupal Developer Kate Marshalkina

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

Interested in learning how to become a Drupal developer, too? Check out our role-based learning pathway: Become a Drupal Developer.

Kate Marshalkina

Kate is a senior developer at SystemSeed, based in Moscow, Russia. She understands the importance of community and continuing education to keep her skills sharp coding Drupal modules, maintaining her development environment, and keeping up with the latest technology trends and information.

Senior Drupal Developer
SystemSeed

Where to find Kate

How do you define the Drupal developer role?

It's a tricky question. Instead of working on something alone, I usually first ask the community for help. Fortunately, Blair Wadman wrote a detailed answer to the question “What is a Drupal developer?” In short, a Drupal developer is the one who can write some code if there’s no module for that. At a minimum, this position requires some experience in Drupal 7 module development, and a general understanding of web stack.

What do you currently do for work? What does your daily routine and work process look like? What kind of tasks do you do on a daily basis?

I’ve thought about buying a pair of scientific glasses because most of the time, I do research. Every developer task starts with an investigation of different solutions, reading articles and source code, estimation, and tech concept. After these steps are complete, I start the “real” development. However, in SystemSeed, I'm involved in all processes from DevOps to QA. This approach makes me really excited about my daily routines. It requires continuous self-improvement in wide range of skills, in addition to Drupal development.

What do others look to you to do on a project?

Any technical work; from project architecture and estimation, to development and deployment. Additionally, I'm responsible for female smilies in Slack chat. :)

What would you say is your strongest skill and how have you honed that skill over the years?

Every time I flip through “The Pragmatic Programmer”, I realize I’m the worst programmer in the world. Perhaps that's my strongest skill—to remember that the learning curve never ends.

How did you get started on this career path?

I’ve been addicted to web development for as long as I can remember. However, my experience with Drupal is not as long. The first version I installed was Drupal 7.4. A short time after that, I was hired by a security startup to build internal Drupal distribution and websites for a couple of company products. I was impressed by the amount of free learning resources and the community behind it. At the beginning, I spent a lot of time on Drupal Answers, helping people and learning different aspects of Drupal. Later, I became more involved on Drupal.org, writing patches and working on contrib modules. Of course, it was a long journey, but I personally think the “Drupal learning curve” myth is a bit overstated. Any new technology takes a decent amount of time to learn.

What is most challenging about being a Drupal developer?

To be honest, I’m a very happy Drupal developer. I enjoy new technical challenges, and I’m really excited about the upcoming Drupal 8 release. The most challenging part of my work is to align development and business goals. Solving real-life problems is much more challenging than just delivering a technically perfect piece of code.

What are your favorite tools and resources to help you do your work?

My current local environment seems to be quite complex; virtual machines, a couple of text editors, terminal with tons of utilities and an IDE with a sophisticated hotkeys configuration. I would like to make my dev environment as simple as possible. I don’t think I’ll end up with one huge .vimrc instead of all these tools. I’ll more likely switch to Web IDE some day, so there will be only two applications launched; the browser, and iTunes.

As far as learning resources, Drupal Planet is the best place for me. I usually look through it in my spare time and go back to read the details if I work on something similar.

If you were starting out as a Drupal developer all over again, is there anything you would do differently?

I would write more blog posts. It’s a great way to learn the topic thoroughly, and make new contacts in the community.

What advice do you have for someone just starting out as a Drupal developer?

  1. Read code—core, modules, patches, plugins, whatever you are working with.
  2. Write code. Go to issue queues, and help with patches and reviews. Share your modules on Drupal.org or Github to get code reviews “for free”.

If you remove the word “code” from the items listed above, you’ll get very general advice for everything: “read and write”! :)

Oct 19 2015
Oct 19

Meet Project Manager Jeanne Cost

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

Jeanne Cost

As project managers do, Jeanne wears many hats in her role as project manager and intermediary between clients and developers. She is an enthusiastic problem solver, educator, and communicator who skillfully juggles many projects at once.

Sr. Project Manager
Fuse IQ (based in Seattle)

Where to find Jeanne

How do you define the project manager role?

We are the glue that holds it all together! We are responsible for the project from beginning to end. We have the responsibility to balance the desired features against resources and budget.

What do you currently do for work? What does your daily routine and work process look like? What kind of tasks do you do on a daily basis?

Every day is a bit different, depending on where my projects are in the lifecycle. Generally, I answer emails, assign and monitor tasks, write requirements, and participate in meetings. I constantly manage all the small details, while keeping an eye on the big picture. Even after a project is launched, I answer questions from clients on how to do something on their current site, or talk to them about implementing new functionality.

What do others look to you to do on a project?

For clients, I translate their vision into dev speak, and the requirements. I’m the educator of all things Drupal, so they can make decisions that help them stick to their budget and get their desired outcome. I am their trainer, to make sure they can maintain their site going forward. For the development team, I am the gatekeeper, making sure they have the requirements they need, and are not randomized by client requests.

What would you say is your strongest skill and how have you honed that skill over the years?

Problem Solving! I approach each project with the knowledge that “I don’t know what I don’t know” and I always peel through the layers to define the real requirement or issue. Every project has problems to solve, such as how you’re going to implement a certain feature or meet a timeline, so I always use this skill. I’ve honed this skill through years of working as a Web PM in both big and small companies, and dealing with a lot of challenges. I actually learned Drupal because I wanted to solve problems quickly and didn’t always want to wait for the developer.

How did you get started on this career path?

I was a business major, and got my start in technology doing end user support, which included helping people with issues, digging into problems, and finding solutions. That evolved into doing process improvement and managing implementations. It was something I found came naturally to me, and I took classes and training to expand on my skills.

What is most challenging about being a project manager?

As a PM, I juggle many projects at once. That means working with different clients, different developers, different requirements, and I shift gears all the time.

What are your favorite tools and resources to help you do your work?

At Fuse IQ, we use Asana for task management, and Google Docs for documentation. It’s changed the way we work and makes it so much easier to collaborate with the client and development team.

If you were starting out as a project manager all over again, is there anything you would do differently?

Honestly, I can’t think of anything I’d do differently. I’ve always been very self-motivated, and found the training I needed, or dove into learning something new. I sometimes consider getting a PMP certification, but don’t think that would fit the situation I’m in, or the way I like to work.

What advice do you have for someone just starting out as a project manager?

Find some projects to manage. Classes are helpful, but hands on is better. If you aren’t in an environment where there are other PMs, volunteer and make your own projects. If you are part of a project team, observe what the PM does and see if they can mentor you. Even as a PM, you should keep learning. I go to meetings for our local Seattle Users Group and DrupalCon. I take webinars through Drupalize.Me or other sources. I always like to learn what other project managers are doing.

Oct 13 2015
Oct 13

Drupal 8 tutorial

Developers familiar with Drupal 7 will also be familiar with watchdog(), an API function that allows you to create a log message that appears on the Reports page in the Drupal administrative UI. Implementing D7’s hook_watchdog allows module developers to customize the destination of these log messages. In Drupal 8, both functions are replaced by a PSR-3-compatible logging interface (change notice).

In this tutorial, you’ll learn how to create the D8 equivalent of D7’s watchdog() function: creating a log message that appears on the Reports administrative page. In a future tutorial, we’ll cover how to create your own logger, and use it in your custom module. However, I've left you some hints and pointers at the end of this tutorial if you care to dive in before then.

Before and after

There is a straight-up D8 procedural equivalent of D7’s watchdog function, as we learn from the change notice:

Drupal 7 watchdog()

<?php
// Logs a notice
watchdog('my_module', $message, array());
// Logs an error
watchdog('my_module', $message, array(), WATCHDOG_ERROR);
?>

Drupal 8 logger class

<?php
// Logs a notice
\Drupal::logger('my_module')->notice($message);
// Logs an error
\Drupal::logger('my_module')->error($message);
?>

Learn from Examples

I downloaded the Examples for Developers module (version 8.x-1.x, but please consult the project page for the latest version) and looked for an example of this in action. I found a good one in the content_entity_example module within the Examples project.

After downloading Examples, open the project in your code editor or IDE of choice. (With Drupal 8’s object-oriented framework, I highly recommend using an IDE such as PHPStorm, simply because it makes navigating classes, methods, and their implementations so much easier. If you’re new to PHPStorm, we have a nice set of their how-to videos available on Drupalize.Me.)

Let’s take a look at the ContactDeleteForm class in examples/content_entity_example.

In your code editor, navigate to:
examples/content_entity_example/src/Form/ContactDeleteForm.php

If you have Examples downloaded to a Drupal 8 installation, that path is:
DRUPALROOT/modules/examples/content_entity_example/src/Form/ContactDeleteForm.php

In the submitform() method, we see the following:

public function submitForm(array &$form, FormStateInterface $form_state) {
    $entity = $this->getEntity();
    $entity->delete();

    \Drupal::logger('content_entity_example')->notice('@type: deleted %title.',
        array(
            '@type' => $this->entity->bundle(),
            '%title' => $this->entity->label(),
        ));
    $form_state->setRedirect('entity.content_entity_example_contact.collection');
}

Let’s break this down.

Annotated logger

a. \Drupal::

In this example, the submitForm method relies on the Drupal service container wrapper, a class which smoothes the transition from procedural to object-oriented code in the Drupal code base. The double colon means that we’re accessing a class from “elsewhere,” or outside of the class that it’s called from. It’s kind of like using an absolute path instead of relative one.

b. logger

A helper method that quickly creates a copy of the logger service.

In core/lib/Drupal.php, we find:


public static function logger($channel) {
    return static::getContainer()->get('logger.factory')->get($channel);
  }

So, from this, it looks like the logger method is way to kick-start the logger factory and get a copy of the logger to use in our code.

c. module name

The name of the module, in this case “content_entity_example.”

d. severity-level method

The name of the method in the \Drupal::logger service (in this case “alert”), which will correspond to a severity level, i.e. debug, info, notice, warning, error, critical, alert, emergency. These can be also found in the \PSR\Log\LoggerInterface in the file DRUPALROOT/vendor/psr/log/Psr/Log/LoggerInterface.php

e. log message

This can be a simple quoted PHP string, or a string that utilizes placeholders. In the latter case, pass in an associative array of specially formatted placeholder keys and values into the second parameter.

f. placeholders (array)

An array of placeholder keys and values. The key is the placeholder name with the appropriate prefix (see below for explanation), and the value is what should be used as a value. In this case, a method is called that supplies the value. Placeholders are provided so that values from context may be provided in the message. The logger will transform any placeholder messages to a safe format for output to HTML. For more information, see:

Placeholder types

@variable — Use this style of placeholder for most use-cases. Special characters in the text will be converted to HTML entities.

%variable — Use this style of placeholder to pass text through drupal_placeholder() which will result in HTML escaped text, then wrapped with <em> tags.

:variable — Use this style of placeholder when substituting the value of an href attribute. Values will be HTML escaped, and filtered for dangerous protocols.

How to view log messages as administrator

Log messages created with the \Drupal::logger service can be viewed and filtered on the Reports page of the administrative UI. In the Administrative menu, go to Reports > Recent log messages. On this page is a list of recent log messages which you can filter by type and severity.

Recent log messages page

Why log messages?

Why would you want to use logging in your modules? You know how debug messages are really valuable during development? Well, when a site is in production and debug messages are no longer an option on a public site, log messages are a way to keep tabs on important things that are happening on your site—from notices about users signing in, to major errors that signal a problem that needs immediate attention. They can help you troubleshoot problems and find errors—both large and small—that need attention.

What should I be logging?

You can and should log anything that will help you keep tabs on what your users are doing, how the system is performing, and behind-the-scenes, automatic notifications, which can help you troubleshoot various errors. Things like:

  • Actions performed by users
  • Recoverable errors
  • "Recurly notification processed"

As a developer, visit your Reports page often to learn about notices and recoverable errors that can let you know about places in your code that need attention. They may not be bringing down the system, but they are having some kind of impact and may point to one or more bugs.

Exercise: Implement your own logger

In Drupal 7, you could implement hook_watchdog in your module if you wanted to log messages to custom locations. In Drupal 8, hook_watchdog has been removed, and you now register your logger as a service in your module’s MODULENAME.services.yml, and then in your logger class, implement the \Psr\Log\LoggerInterface and customize the logging destinations as you wish.

Several examples and variations of this can be found in core; for example, in contact, aggregator, and syslog core modules.

In a future tutorial, we’ll walk you through how to implement your own custom logger. For now, start using Drupal 8's logger to create log messages in your fresh new Drupal 8 modules and keep an eye on that Reports page!

Happy logging!

Oct 12 2015
Oct 12

Meet Front-End Developer Tiffany Tse

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

Self-employed
Coldfront Labs Inc., Algonquin College, Ladies Learning Code
Creative Director, Professor, Ottawa Chapter Co-lead

Where to find Tiffany:

How do you define the front-end developer role?

I define the front-end developer role as mainly dealing with HTML, CSS and Javascript—basically the main components an end-user interacts with on any given site or application. A modern front-end developer wears so many different hats that it’s more difficult to define a list of specific duties. With regard to Drupal, I think the role primarily focuses on modern web standards, semantic markup, accessibility, PHP development, JavaScript and its various incarnations (jQuery, Node.js, AngularJS), as well as modern automation tools (Grunt, Gulp, etc.). This means they’re responsible for the markup (HTML), building website pages, views, widgets, forms, and understanding how the styling (CSS, Sass) works with the interactions that bring an application to life.

How does being a front-end developer relate to being a Drupal themer and vice versa?

I think the roles are very much intertwined, and the skills for each inform one another. As a front-end developer, you need to have a good understanding of modern front-end technologies—which includes a clear understanding of CSS and CSS pre-processors (Sass, Less, Stylus). A good Drupal Themer has an eye for graphic design, and knows how to bring a static design to life in-browser, with Drupal. Understanding PHP development and JavaScript are key tools that a Drupal Themer needs. This facilitates working in tandem with front-end developers to get the final application or website up and running. I’ve also encountered Drupal Themers who would consider themselves front-end developers, and vice-versa.

What do you currently do for work? What does your daily routine and work process look like? What kind of tasks do you do on a daily basis?

I currently work as the Creative Director for Coldfront Labs Inc., and I oversee all design and front-end development for client projects. This includes art direction, style guides, and product development. I’m also responsible for the UX strategic direction for the company, and teaching insight regarding our corporate training programs. A typical day starts with a standup, discussing ongoing projects and upcoming tasks for the day and week. Depending on which clients we’re working with, I’ll do a variety of things, such as designing prototypes, workflows, UI components, mockups and graphics, to implementing an existing design and theming a site or interface. I also conduct client meetings, review existing designs and markup, research new development/design techniques, or create curricula for our training courses.

In addition to working with Coldfront Labs Inc., I also teach web development, usability, and motion graphics at Algonquin College in the Graphic Design diploma program and Interactive Multimedia diploma program. I’m passionate about inspiring young designers and developers, and serve as the Ottawa chapter co-lead for Ladies Learning Code. These workshops act as a resource for women and youth, helping them to become passionate builders of technology—not just consumers—by teaching technical skills in a hands-on, social, collaborative way.

What do others look to you to do on a project?

My team looks to me to “make things pretty," but I think my contribution reaches further than that. I believe that I do a lot to drive the direction of projects, in terms of how an application works with a user, and what the actual design of that application will be. Working with clients and being able to express our expertise while maintaining their vision isn’t easy, but it’s something we do every day. I move us through this process, and help to build beautiful websites and applications.

What would you say is your strongest skill and how have you honed that skill over the years?

I would say my strongest skill is my leadership expertise. It represents how I design, develop, and build applications with my team, and how I approach my career. Being able to drive the direction of a project, clearly expressing ideas, and inspiring others is an invaluable skill. For me, being a leader comes quite naturally. I like being in control of a project and knowing all the moving parts so I can make informed design decisions. Over the years, I’ve watched mentors, teachers—people who are smarter than me—and learned from them. I looked at what they did well and figured out how they did them.

How did you get started on this career path?

I have always loved art, design, and problem solving. In high school, I remember playing in Photoshop, building websites (with geocities!) or customizing the look of my LiveJournal or MySpace page. I went to University for Fine Arts and when I finished my bachelor’s degree, I went to college for an Interactive Multimedia post graduate certificate. It was there where I really learned how to code, and understand how I could put my interests together.

What is most challenging about being a front-end developer/Drupal themer?

I think the most challenging part of the job is staying up-to-date with all the new technologies, such as new JavaScript frameworks, task runners, plugins or pre-processors. The best way to stay up-to-date is following a bunch of really smart people on Twitter, going to design/development meetups, and just chatting with people. I usually find new resources as I start research on a specific problem, talk, or course. I end up down an internet rabbit-hole, and come out the other side with a big list of things I need to learn more about.

What are your favorite tools and resources to help you do your work?

I would say Google is probably my best friend when it comes to everyday work. The moment I don’t understand something, forget programming syntax, or have a question, I Google it. Outside of being able to teach yourself how to do something, Grunt coupled with guard-livereload and Sass are the cornerstone of my day-to-day workflow. When we are looking to create quick prototypes, we use http://uxpin.com. Adobe CC with the plugin GuideGuide for Photoshop is also really useful.

If you were starting out as a front-end developer/Drupal themer all over again, is there anything you would do differently?

I think I would try making more for-fun projects, like small applications that do some specific task, or small websites that would help me to learn a specific language or front-end development tool. That, and I wish I would have blogged more about what I was learning while I was learning it.

What advice do you have for someone just starting out as a front-end developer/Drupal themer?

My advice would be to get into the community of developers (wherever you are) as soon as you can. Find a meetup group, look for a coding club, or join a co-working space, so you can connect with other developers and designers quickly, and build your professional network. It’s important to connect with people you can ask questions when you are starting out. Building a solid network of people that you trust, that you like being around and that are super smart, is a great way to push yourself to keep learning and create the potential for opportunity.

Oct 05 2015
Oct 05

Meet Site Builder Scott Wilkinson

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

HaloFX
Self-employed — HaloFX Media
Problem Solver

Where to find Scott:

How do you define the Drupal site builder role?

Everything that doesn’t include coding. I don’t like the term "site builder”—it doesn’t make sense. Everyone who is involved in the creation of a site is actively involved in building the site. It’s also picked up a stigma of being a “lesser than” role.

What do you currently do for work? What does your daily routine and work process look like? What kind of tasks do you do on a daily basis?

I am a hopeless generalist. I love the web and Drupal, it’s the core of my business, but I get bored easily. So I also still do print work, photography, and general consulting. I recently resurrected my interest in hand lettering, and have even done woodworking and welding for clients! Every day is different. The only constant is that I don’t sleep much.

What do others look to you to do on a project?

Everything! As an independent freelancer, I’m usually the only one with contact to the client. It’s typically my responsibility to pull in others to help cover tasks I may not be best suited for, such as copywriting, illustration, or custom code.

What would you say is your strongest skill and how have you honed that skill over the years?

Adaption.

Lyza Gardner recently summed it up in her Responsive Day Out talk “The virtuoso generalist”: "Generalists are the people you hand off work to, knowing they don’t know how to do it, and knowing they’re going to get it done anyway."

I suppose I hone that skill by always seeking out interesting, new things to learn.

How did you get started on this career path?

Nerd from Day One! I destroyed all my toys, because I had to know how things worked—then I learned to create more than I destroyed. I learned Basic at age 10, in a college night course. I taught my teachers to use an Apple 2e, and discovered the Internet through a VAX terminal in 1991. I was at Art School when the web showed up, and was hooked the first time I did a “view source” in 1993, on Windows 3.1 and the Cello browser! I realized “I can do this!” and never looked back!

What is most challenging about being a Drupal site builder?

Keeping up. New modules, methods, frameworks, things not working, chasing the issue queue… Finding balance between “should I use these 3 modules, or have something custom coded?” Since I work mostly on my own, I tend to pick the 3 modules, which don’t always work as advertised. Often something is broken, or backed up for months or years in an issue queue. Sometimes there is a patch that I will try. Sometimes there’s some obscure line of code mentioned, but not enough info on where or how it should be used. Often, there is just nothing.

I like making things, but realized quite a while ago that I don’t like writing code like javascript or PHP. It just wasn’t fun. It required too much time staying current on a language, and not enough time exploring and creating.

What are your favorite tools and resources to help you do your work?

Favorite general tool for almost all disciplines is a pencil, and a Moleskin notebook.

Resources specific to Drupal: I read a lot of Drupal Planet, I understand about half of it. Listen to a lot of podcasts: A List Apart, Five Simple Steps, Modules Unraveled.

Tools Related to Drupal: Drush, Sublime, a desktop computer with 4 - 24” monitors so I can spread out all the browsers windows, email, file folders, notes, editors, terminal windows and such required to just build a Drupal site, none of which is really coding related, with the exception of simple theming—mostly just Sass.

The local Drupal Meetup and camps have proven invaluable to staying plugged in. I have been to two Drupalcons (Denver and Austin), and while it’s nice to be around other Drupal folks, I find it not that beneficial for non-coders. However, I did really enjoy the sprints.

If you were starting out as a Drupal site builder all over again, is there anything you would do differently?

Hard to say. I think the nature of Drupal requires you to flounder a bit as you find your footing. I learn best this way. It would have been nice if there had been a local group and camps I could have attended at the very beginning.

What advice do you have for someone just starting out as a Drupal site builder?

Don’t work in a vacuum. Surround yourself with other Drupal folks, and ask the stupid questions. The odds are everyone else asked the same stupid question once, also. Don’t be afraid to read the stuff that doesn’t make sense. Even if I have absolutely no interest in coding anything with Composer, it’s still helpful to have a 1000 ft. overview of the big picture.

Sep 28 2015
Sep 28

Meet Project Manager Alice Jensen

This interview is part of an ongoing series where we talk with a variety of people in the Drupal community about the work they do. Each interview focuses on a particular Drupal role, and asks the individuals about their work, tools they use, and advice for others starting in that role. You can read all of these interviews under this list of Drupal roles posts.

Copenhagen-based Project Manager (PM) Alice Jensen has been working with Drupal since 2012. Her coworkers describe her with affection, using words such as "fearless", "calm", and "passionate".

Reload
Project Manager

Where to find Alice:

How do you define the project manager role?

At my job, I wear a number of hats. In addition to working as a project manager, I handle sales, client management, and general communication.

Focusing on the project management aspect, we do agile development based on the scrum framework, and using scrum terminology. I see my role as being the scrum master, but I also need to be a product co-owner, as the people who know about the product and the business around it aren’t necessarily trained in web development processes.

To simplify it a bit, I guess I could say that I have three main areas of focus:

One is expectation management. All our efforts don't matter if we don't meet clients' expectations. This is particularly important to master in an agile project where requirements aren't nearly as fleshed out as in a fixed scope project. Most of our projects are so complex that it's impossible to outline up front precisely what to expect of the outcome. This is an ongoing process, along with monitoring progress.

The second main focus is to help scope the solution along the way, mediating between technical possibilities and constraints, and business/user perspectives.

And lastly, I need to continuously report scope changes, and progress vs. budget.

What do you currently do for work? What does your daily routine and work process look like? What kind of tasks do you do on a daily basis?

I'm a Project Manager at Reload, in Denmark. I think project management is all about people skills; cracking jokes, and making sure that my team is having fun, that they feel motivated and comfortable enough to speak up if I make mistakes, or let me know if they're stuck. I check on people several times a day, just to make sure everything is running smoothly.

Normally, I run one or two large projects at a time. Typically, I have a short status meeting (daily scrum) with the team, and once a week I have at least one longer meeting per project. Every other week, we have a workshop to clarify the next bit of a given solution, where information architecture, graphic design, and sometimes technical proof of concept and so on can be completed. On alternate weeks, the meeting focuses on ending the current sprint, and starting a new sprint. Here we demo the “sprint delivery” for the client, and talk about progress and process.

Then we continue to plan a new sprint, and re-estimate the tasks in scope, to see if the clarification of the previous week's meeting and design delivery generated changes to the original estimates.

Finally, I create a sprint report per project, once every other week. This is to communicate items such as scope changes, risks, progress, and finances to the client, as well as the steering committee.

example chart for managing projects

What do others look to you to do on a project?

My team expects me to have an overview, and be a step ahead. I'm expected to ensure that requirements are sensible, clarified, and prioritized. They expect me to be the go-to person for any problem they may have. If I can’t solve the problem, I need to figure out who can. And again, I need to make sure that on all levels, expectations are managed!

What would you say is your strongest skill, and how have you honed that skill over the years?

When clients say “jump”, I ask “why?” I believe my strongest, most important skill is to keep an eye on why we're building what we're building. I must have a good understanding of the business goals and the stakeholders in a project.

In this way, we're empowered to advise the client about scope, and suggest different ways forward. An important aspect of working in open source development is that you can often get 80% of your requirements quite inexpensively, but the last specific tweaks can be disproportionately expensive.

I guess asking why all the time always came naturally to me (just ask my teachers in school), though it does take some experience and confidence to actually begin a discussion with clients about what they really need, as opposed to what they say they need.

How did you get started on this career path?

During my master's studies I had a part-time job, working primarily with IA/UX on a Human Resources system for a small company. The PM left, and I took over—without much knowledge about project management. Looking back, I actually worked in a very agile way, without knowing a lot about the theory behind it. When it was time to move on, a friend pitched this very flexible CMS that was based on a “content pool” concept that I really liked, as opposed to a more fixed hierarchical content structure. I then started working as a PM in a Drupal shop (NodeOne Denmark), and learned more about scrum and agile development. I was able to get feedback from my Scandinavian PM peers, and expanded my network of clever Drupal people, PMs, and agilists.

I chose to work at Reload because of their profound dedication to agile development—I get great feedback, daily, on working with agile methodologies and complex projects.

What is most challenging about being a project manager?

The most challenging part is probably that you have the overall responsibility for something, where you can be totally dependent on other people to get the job done. It can also be very challenging to manage expectations—especially when dealing with clients who've already done many fixed price/fixed scope projects. They need more reassurance that we're all in the same boat.

What are your favorite tools and resources to help you do your work?

As I've mentioned, I like an all-agile approach to project management.

I'm also a fan of:

  • Scrum/kanban methodologies
  • Jira agile (ticket system by Atlassian)
  • Impact mapping (Impact Mapping)
  • Burn down charts for visualizing progress

If you were starting out as a project manager all over again, is there anything you would do differently?

I would aim to get a job/network/mentor that would provide good feedback on a regular basis, to avoid learning so much the hard way.

What advice do you have for someone just starting out as a project manager?

In general, you need to have four perspectives in play when scoping a project:

  1. The business goal perspective — why are we doing this solution, and the value of it.
  2. The user perspective (UX/IA/design) — how are people interacting with this solution
  3. The technical perspective — what technical constraints and possibilities do we have?
  4. The data/content perspective — what data is in scope, where does it come from, and how does it relate to other data.

Lastly, it can’t be said enough; expectation management is key!

Jul 16 2015
Jul 16

In this podcast, hostess Amber Matz talks with Andrew Wilson, Senior Account Manager at Drupalize.Me about SEO, and gathering and analyzing customer data. Learn about how structured data and rich snippets can enhance search results, along with some important things to know about how Google works. We talk about some hard SEO lessons learned here at Drupalize.Me.  We also discuss the aggregated data in Google Analytics versus user-specific data and tracking provided by services like Kissmetrics and Intercom.io, and how, as a business, you can learn more about your customers through gathering and analyzing site visitor data with an ultimate goal of serving your customers and clients (potential and present) more effectively.

Jun 18 2015
Jun 18

Access professional Drupal training at Drupalize.Me

A product of Lullabot, Drupalize.Me is a membership-based instructional video library. It can be supplemented with on-site training workshops, custom built for any organization.

Go to Drupalize.Me
Jun 05 2015
Jun 05

Join Amber Matz as she chats with web accessibility aficionados Mike Gifford, Chris Albrecht, and Helena Zubkow about what web developers and Drupalistas can do to build more accessible web sites. How has web accessibility changed over the years? Who is being left behind? What are some common gotchas? What are some easy ways to get started testing for accessibility? All these questions and more are discussed in today's podcast. Don't forget to check out the links and resources in the show notes for all sorts of useful things mentioned in our discussion.

Apr 24 2015
Apr 24

Design work is a lot of show-and-tell. It can be challenging to effectively communicate and collaborate on a distributed team. Join hostess Amber Matz, Lullabot Creative Director Jared Ponchot, Lullabot UX Designer Jen Witkowski, and Justin Harrell, Interactive Designer for Drupalize.Me, as they talk about the unique challenges, processes, and tools they use as part of a distributed team.

Feb 27 2015
Feb 27

Access professional Drupal training at Drupalize.Me

A product of Lullabot, Drupalize.Me is a membership-based instructional video library. It can be supplemented with on-site training workshops, custom built for any organization.

Go to Drupalize.Me
Dec 23 2014
Dec 23

Access professional Drupal training at Drupalize.Me

A product of Lullabot, Drupalize.Me is a membership-based instructional video library. It can be supplemented with on-site training workshops, custom built for any organization.

Go to Drupalize.Me
Dec 12 2014
Dec 12

In this episode, Amber Matz and her guests Eric Schneider and Matthew Tift talk about the successes and challenges on how parents and school officials worked together to get coding into the curriculum in Minnetonka Schools. Eric Schneider is the Assistant Superintendent for Instruction, Minnetonka Public Schools and Matthew Tift is a Senior Developer at Lullabot and a Minnetonka parent.

Oct 17 2014
Oct 17

In this episode, Joshua Mitchell, CTO at the Drupal Association talks with Amber Matz about the exciting initiatives in the works for drupal.org and associated sites. We also talk about how the community, including the D.A. Board, working groups, and volunteers are utilized to determine priorities and work on infrastructure improvements. There's exciting changes in the works on drupal.org regarding automated testing, git, deployment, the issue queue, localize.drupal.org, and groups.drupal.org.

Sep 04 2014
Sep 04

The next issue of Drupal Watchdog features articles about Drupal as a Services Platform. Several authors in the issue and the executive editor will be sharing various perspectives on web services in Drupal and in the wider world. With hostess Amber Himes Matz and her guests Peta Hoyes, Scott Hooker, Lin Clark, and Larry Garfield.

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web