Drupal, the Super Cool Community

Events happening in the community are now at Drupal community events on www.drupal.org.
riaan burger's picture

Hello Everyone,

Some times it may sound like people only pay lip service to the greatness of the Drupal community, simply calling it amazing once in a while. There's more to it than that though and once you're participating and integrating, you really feel the support and rewards. For myself, I'm humbled and feel safe and cared for. These are people that care for others, give and help. This week, especially I experienced even more than the amazing help, support and information that the meetups and online interaction sustainably provides:

A couple of weeks ago we took on a new project. It was inherited, having been through the meat grinder with several agencies before our own. There is no way to tell what previous limitations looked like in terms of budget, time available and resources (and their experience) to work on the project, so I will not pass judgement on whether it could have been developed differently. The site that comprised the project receives a decent amount of traffic and it is live, but it's history, with different authors showed.

An initial sprint involving people from Cape Town, Durban and Johannesburg dealt with a code base that haven't seen any recent updates (bring it up to date), custom modules (incomplete and not Drupal standards compliant), test code (heck, there was a form on the public site where anonymous users could mail anyone, the menu routed had TRUE access callbacks that allowed any user to create, edit and publish any content), program logic in the theme layer (in many instances all of this happened in tpl files, massive PHP blocks often not even using the Drupal API) and several themes (the original was the "finger-paint" Omega, with future developers overriding it in hooks to use their own theme because it was so unwieldy).

It's tough to explain to a site owners (CEO and board) that a single week will not be enough to fix all that (and several dozen PHP and structural errors) on the site after they just went through so many previous developers. On top of fixing things, we needed to add business value to the site, start featurising where possible etc. We needed to tackle this sprint, work hard and show value as part of our arguments for a bigger overhaul. So we did.

Too often, you get a CEO that tell you the site is very important to his or her business. You have to fix things, you have to work late, through weekends etc. Then they go fishing or to a family do. That really doesn't communicate critical importance does it. On the opposite side, we were blessed with a CEO that sat with us throughout.

A month later, sprint 1 draws to a close. Not really a sprint any more right ;-) Riddled with manual steps throughout, chronologically sensitive drush fr entries and update hooks, this was bound to be a tough one that will likely not go smoothly.

For several years now we had a policy where we only take on work that we also host. Server configuration can be esoteric things. Nothing like Drupal with it's best practices and coding standards. But after a year of taking on less client work, we're working taking on more work again now and I decided to take this one even though we need to host the site externally. We were about to go live on foreign servers and we all have a sysadmin buddy right, very interesting people ;-)

Sysadmins are cautious creatures. They know few people use Linux (like we do) on their desktops. Mac and Windows users are often of the opinion that "just works" is a great feature of their desktops. Those users and developers often don't dig deeper and sysadmins don't want their "just works" solutions transferring to their servers and making them insecure. So we were presented with a Senegalese sysadmin, new to us, used to dealing with such users. We were not getting access to the live site and I can't blame him. How would he know we had years of experience running super secure high performance Linux servers, a simple statement does not suffice in an industry with no real certifications (and that is a good thing too).

Finally, before our first attempt... keeping in mind we're a very human-friendly company. Five of us, in Cape Town (developer), Durban (developer), Rosebank (site owner, CEO), Fourways (project manager) and Senegal (sysadmin) would make for a higher likelihood of some sort of failure and I failed! I failed to plan well. Checking availability and estimated times with everyone for the steps, we thought going live will take maybe an hour, so safely, two hours. I booked time to go live on a staging site which we could switch with our sysadmin. He ran late and we started 1 hour 30 minutes later just to find out all five of us fist have to wait for the VM to be configured! We received some seriously esoteric and terse access details. That's a sysadmin for you, to the point; I should have sat in the middle of that communication and translated it to useful speak way before this, documenting everything, but he also doesn't work for our company, so I haven't the position to do this.

It took all of another hour and a half for the developers to get on board with the setup. That was followed by another two-odd hours to get git working (again, unique and "interesting" configuration). So after midnight now, we're showing slow progress. Once things move, however slowly and with difficulty, sleepiness disappears form a developer's mind and one can go for days.

Of course, by this time I've very much failed a second time. Way before midnight I should have called things off. But I'm a developer too and while things move, I went with it. We were burning ourselves already. Several times I checked with the team and the amazing people that they are, they held their enthusiasm and wanted to continue. It took until 3am for me to make the call and call everything off. Off to bed we go. Deadline of Monday looming.

Personal note: 2:30am my granddaughter decided it's time to get up and baby-talk. She went till 4:30am ;-)

Now, I've worked in some other big companies before; Burning people like this can break a team, can really tap them dry. It was still essential to get this done though, so best call everyone separately the next morning to check how bad things were.

Durban first (we go back decades, even to the olden days when I ran nigh-clubs and the internet was not in the country yet). Durban sounded rough, like two cases of Black Label (beer) rough, but alive. I know he can take a hammering, I've seen it ;-) Rough, and ready. Cape Town was next (also a muso with character and creativity). He sounded bruised, but he survived too. Between us we quickly identified the biggest problems and a plan to address them.

This now became the story of the amazing Drupal community in small, the people we tend to work with in the Drupal community. Our fellow developers... and... next call to the CEO (yes, also part of the community). It feels like a certain, caring, humane but very capable person gravitate towards Drupal. It makes it a pleasure to give one's very best, even to the last, one more effort, one more go, everything always appreciated, every human need still recognised.

CEO phoned our Senegalese sysadmin with our plans: Sysadmin will prepare a new environment right away, early day time now, then only when he is done will he notify us to proceed. We will no longer use the esoteric git setup, but rather our own GitHub (yes, I know we should move to GitLab, we will, promise) account. That saved us four or more hours from the work-flow of the night before. Cape Town and Durban will communicate alone, directly with each other for optimal performance, but sysadmin and myself will be on standby throughout.

I'll get back to this later.

Next, I was the listed speaker at the Drupal user group in Pretoria / Centurion this evening and had a meeting before that, also in Pretoria for a massive new multi-site, multi-app project integrating Drupal with a huge graph database for government. The user group is also new, it's the first one at this venue... and I couldn't go any more.

Now I'll switch to names. I'll also give names to the earlier Cape Town, Durban, CEO and sysadmin once I get their permissions, but the work that Drupal Association South Africa does is public, so I can use names right off the bat.

Pretoria / Centurion is led by two people: Renate is the organiser of the event and Stuart the host. I tried Stuart, but he was busy, Renate and she was immediately understanding and supportive. Jumping right in with solutions. Lance, luckily, was also listed as a speaker with a very good talk. Pretoria attendance and speaker stickers were with me, but she quickly organised with Greg to come though, stand in for me a bit and also swing past to pick up the stickers. Lee of DASA also went through and Andre, ever the supporter, swung by me to also then go to the meetup. By all accounts the questions and answers and general meetup presentation and information was well supported by existing meetup members.

Only with many people always ready to stand in, support and work in their free time to build a community like this can one simply drop off the schedule and an event turns out so super successful. I'll leave the reporting of the event to those who were there, this was an amazing new community event. Congratulations guys and gals! Thank you very much for the telephone accounts of the event too Greg and Renate.

So, back to the day's work. We started in the morning, but in the end, we once again completed only in the early morning hours; This time successfully. Of course, we'll never do a "sprint" like this again. Much of the site still needs to be converted to best practices and standards compliance and many huge things need to be fixed: Most of the custom code still sits in the theme layer, there's no Sass, display modes, panels and few features, no way to performance tune the site until we fix all those things. From now, then, we'll run two branches, one for HIIT sprints (short, limited to less than a week, ideally one or two days, never over a weekend (I picked up the HIIT (High Intensity Interval Training) terminology from my daughter's early years as a personal trainer)) and one for LSD sprints (never take two, one will be enough; longer sprints addressing structural changes; we'll merge the HIIT sprints into thins branch constantly (LSD is for... long slow distance, another sort of endurance training)).

We'll also try to build a better, more trusting relationship with our sysadmin and I hope we proved our dedication and have lend enough trust to the CEO and board so that we can more easily convince them of the need for structural changes. Once we have the site's foundations sorted, we can also rely on Drupal's amazing performance and scaling solutions to seriously speed this site up.

Now for a weekend, we sure worked hard for it ;-) Thanks you to everyone involved. A community like this will go so very far. 2016 will be a heck of a year of growth.

Long post hey ;-)

Originally wrote it on Friday, but wanted to give the CEO a chance to veto publication. I absolutely love my life working with such great people in such an amazing community.

Cheers,
Sleepy Riaan

Comments

Durban...

riaan burger's picture

Durban in the message is Daniel Bornman ;-)

Cape Town...

riaan burger's picture

Cape Town in the message is Charles Tanton ;-)

South Africa

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: