I'm a Senior Drupal Dev, been working with Drupal since about 2006. I've recently taken a new job with a company that has several Drupal projects being built/managed by multiple dev teams, and until now they have not had any experienced Drupal devs.
To say that the sites are in disarray would be an understatement. So far, I haven't seen any places where site functionality has been added or altered using Drupal's built-in tools.
Example: a dev was having trouble putting a simple filter on a view, so I had them screen share. I said "Show me what you've got so far with the custom view." After a pause, they showed me a gigantic `.module` file that had tons of hooks in it; they were currently working in a `hook_views_query_alter`.
I said "Oh, no no no, let's look at the actual view. Are you logged into the site as an admin?" Silence.
"Do you know how to log in as an admin? Either with a username and password or with `drush uli`?" Silence.
"Have you ever logged into the site, or do you do all of your work in VSCode?" "Um, we all pretty much just work in VSCode." My heart sank and I needed a drink.
I need advice on how to proceed. If the money for this position weren't so good, I would cut my losses and run. But it's a great salary, so...
Has anyone else here ever found themselves in a situation like this? Where do you even start?
Comments
I should have added
So far, I have not gotten the sense that anyone thinks there's anything wrong with what they're doing. I get the impression that the status quo is just fine; they just need a Senior around to help them when they get stuck.
Now... I know... you know... probably every Drupal dev with any experience knows: with every new feature that is added using brute-force methods, the sites are getting closer and closer to being hopelessly broken.
What would you say or do to make this point clear? Maybe a demonstration of some basic Drupal functionality that is being thrown away, such as multilingual, or a11y? Any suggestions are welcome here.
You can suggest to your
You can suggest to your management that they arrange Drupal certification for their employees. To motivate employees, they can offer to increase the salary for those who have passed the certification.
What is the problem? I
What is the problem? I understand the sites are a mess, and that's problem because messy sites suck to work on, but can you be more clear abou specific issues you are facing? Trying to get them to use best practices?
Contact me to contract me for D7 -> D10/11 migrations.
Introduce Drupal best practices
The situation you describe sounds like a typical example of Maslow's hammer:
You say that all "pretty much just work in VSCode". They're probably pretty good at doing exactly that, and they are even capable of producing (some sort of) results, so of course nobody thinks there is anything wrong with what they're doing.
I think you need to approach this situation with extreme caution.
You don't tell us in what sort of capacity you're hired. Are you, for example hired as a manager, to oversee the company's overall "Drupal-strategy" ? Or are you hired as the "Drupal guy" that's on call for providing support on demand when somebody get stuck? If it is the latter, it is probably best to walk away ASAP – because you're not going to come out on top of that setup.
If you are in a position where you are trusted with making strategic decisions, you need to get the developers onboard on understanding how web sites should be built when they are powered by Drupal. That is not going to be easy, because if they're fixated on hacking away in VSCode, you'll have to change that mindset, and install in them some Drupal best practices along the way. To change someone's mindset about how to do something is hard, especially if they think they're being successful.
For instance, Drupal developers seldom start out creating some custom module to solve a problem. They may end up doing it, but usually only after all other means of solving the problem is exhausted. Making use of already existing code scrutinized by thousands of eyeballs is always going to be more secure and more robust than rolling your own.
As a way of getting started, you may introduce them to the powerful built-in site building tools that has a UI that let one create solutions without custom coding. There are too many of these to mention, but Views and Field are fairly simple to grasp and may be a good introduction to this practice. You write that you may want to demonstrate Drupal's Multilingual and Accessibility features, and, yes: These (and many other built-in features) should be taught as well, but I think you need to start with showing them how to use the simple stuff productively.
- gisle
I appreciate your thorough
I appreciate your thorough response.
My position is "Senior Drupal Developer." In the interview process, I did not explicitly ask if I would be given leeway to oversee and modify the dev team's approach to working with Drupal. I also didn't realize (until after my first sprint planning meeting) just how lacking the devs were in their understanding of Drupal. From what I have gathered, the company's main client recently made an abrupt (and enormous) shift from a JavaScript-centric stack to Drupal 10. (Again, this is how the situation has been described to me; I'm sure there is more to it. It sounds absurd to me, but I've been assured that this is a loyal, long-term client who is worth bending over backwards to make happy.) So they handled this by asking their very talented team of FE and BE devs to quickly ramp up on Drupal without giving them any formal guidance on where to go for training. Initially, they brought in a contractor to serve as a Drupal consultant; more of the "Drupal guy" you mentioned. But pretty soon after that, they began a search for an in-house Senior, and that's where I came in.
From conversations I have had in my first week, I believe my role is not fully defined yet. I already have some previous experience with teaching devs who have never touched Drupal, so I kinda know what to expect. The main hurdle I had to overcome with the previous team was convincing them that using a GUI to do a lot of the routine stuff that they consider to be middleware or backend is, in fact, the life of a Drupal dev.
I think first you want to get
I think first you want to get that part of your role clarified in writing. Can you insist on changes to how the team works? Do you manage the team, or are you effectively an in-house consultant?
Maybe pick something where they are maintaining a lot of code, fix it, show them how much less code they'll probably have to maintain if they do it properly. And how much less ugly that code probably is.
Great suggestions, thank you.
Great suggestions, thank you.
I wish I had known a little more about the dev team when I was interviewing. But who thinks to ask "Do your Drupal devs actually know Drupal?" Maybe others would, but it's a detail that I never considered.
I don't even know where to begin, tbh. So far I've been stuck doing mostly orientation and onboarding tasks that aren't related to the sites but I'm in the dev Slack channel and I've seen discussions about deployment processes that take an entire day, a discussion about someone's failed attempt to integrate some Ruby code...
Part of me wants to just cut bait and run, but the money is about 30% more than my last job so I'm going to try to make it work.