Silos and How They Impede Productivity
Tags: career, productivity, devops, webdev
Published: 2020-08-13 21:32:10

---
title: Silos and How They Impede Productivity
published: true
date: 2020-08-13 21:15:21 UTC
tags: career, productivity, devops, webdev
canonical_url: https://shriker.ca/silos-how-they-impede-productivity/
---

 ![Silos and How They Impede Productivity](https://images.unsplash.com/photo-1597305526414-f2f172412ed1?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=2000&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ)

Have you ever started a new job and there were tickets waiting for you? I'm talking eight month old issues in the backlog that have multiple comments that increase in frustration, and then end with, "On hold until we hire a SME (Subject Matter Expert) to figure this stupid shit out."

I've walked into a pile of these, but this is one of my favourites. I'd been hired to manage some relationships, work on new initiatives, and do some infrastructure migrations. One particular ticket was for PHP and it throwing a WSOD (White Screen of Death). The engineers couldn't figure it out despite multiple attempts. They're smart folk, but they felt it was outside of their expertise. So this issue sat around and became stagnant.

Until I came along. I looked at the issue and replicated the steps. I got the same WSOD that they had been encountering. I was expecting that. The issue wasn't with PHP though. Given the locked down nature of the box, I could not access all of the logs that I needed to diagnose... but I had a suspicion.

I did the unthinkable: I talked to the folks in DevOps and Infrastructure. I asked them my nagging question, "Those environments you set up... are they also running a newer version of Apache?" (For my newcomers, Apache is a type of web server.)

"Yes."

_Bingo bongo._

Access control for Apache changed between version 2.2 and 2.4.

- **Apache 2.2** uses the `authz_host_module` to control access using directives like `Deny`, `Allow`, and `Order`.
- **Apache 2.4** also uses the `authz_host_module` for access control, but adds the `authz_core_module`, which gave us the `Require` directive.

To summarize the issue: if you're trying to use Apache 2.2 access rules for an Apache 2.4+ server, you might have a bad time.

The solution was editing the `.htaccess` file so that it was in 2.4 format instead of 2.2. Multiple projects were stalled for over eight months because of an `.htaccess` file and no one thought to bother talking to folks outside of their team. What the hell.

My fix looked a little like this:

```
# Old: Apache 2.2
Order allow, deny
Allow from all

# New: Apache 2.4+
Require all granted
```
<figcaption>Allow all requests for Apache. Though if you're not certain what version you have in production, I recommend adding conditionals. &lt;IfModule authz_core_module&gt;&lt;/IfModule&gt; can save your tail.</figcaption>

A one-liner.

A _fucking_ one-liner.

How much time had been lost because no one bothered to talk to one another? It's great to become a specialist in your chosen domain/language(s), but often the problems you encounter will lead you outside of your comfort zone. It's so easy to shrug it off as "not my problem."

That was one of the most satisfying issues I've ever closed. Not because it was technically complex, but because it was so obvious after one simple conversation. I do have a lot of server administration knowledge, so I don't want to discount that. I knew what to ask. But the thing is: the DevOps team _had_ all of that knowledge. Not to mention that it would have been _trivial_ to get them to look at the error logs.

Ask questions. Share your wealth of knowledge. Add more to your problem solving toolbelt. You might be holding you and your team back.