Complexity

Four people wandering up a large sand dune with a blue sky and some clouds.

40 days

Current rampages.us stats . . .

  • 11,772 sites remain of 11,900 created
  • 12,029 users
  • 229 plugins (not all visible to all users)
  • 229 Themes1 (not all visible to all users)
  • 153 GBs of data

You throw a few other elements in there . . . 4 other WordPress installs, a separate server with its own WordPress environment, a Discourse install on Linode . . . you end up with a lot of infrastructure to manage. Things to upgrade, users to support, issues to track down and fix . . . not to mention learning the particularities of different server environments and software packages . . . most of it done on the fly.

It’s a lot of pieces and a lot of people. I start to feel like things are complex.

I start to understand why people lock stuff down, give users a plugin or two . . . streamline administration. It is sensible. It is hard to keep up and keep track.

But I keep thinking about the two billion lines of code that Google deals with and how they do it.

Google engineers modify 15 million lines of code across 250,000 files each week.

Sure, some code is more locked down than other code but it seems pretty open.2

Clearly I’m not Google and, as is frequently the case, it’s not black and white. But, like advocating for lectures, locking down IT doesn’t really need a champion. Saying you don’t have enough people/expertise is pretty easy. There are so many reasons not to do something, to take the safest path.

“The vision of time is broad, but when you pass through it, time becomes a narrow door.” And always, he fought the temptation to choose a clear, safe course, warning “That path leads ever down into stagnation.”

-Muad’Dib

I continue to struggle with the right balance of freedom/choice and management/support. All the choice in the world isn’t very helpful if the system fails or if I am crushed underneath my own aspirations. I’m also dealing with comments like “There are too many themes. It’s overwhelming!” I can’t tell if that’s conditioning or if, like a Montessori shelf, I ought to be more carefully curating what is available. It’s a delicate line but the safest path does lead to stagnation.3 It might also be worth thinking about it as a path rather than a line. You will wander and the straightest path isn’t always the best one.

For example, I spent a number of hours over a number of days trying to figure out why plugin details weren’t showing for non-super admins. This little bit of data- plugin version and a link to the plugin site was just not there. I only saw it because I was working with someone else who was logged in as an admin. I had no idea how long it had been like that or if that was something WordPress multisite did by default and it had always been that way. It mattered because we were relying on the plugin link to point people to directions for a number of our plugins. My suspicions fell on multisite because that’s often where issues about super admin vs non-super admin issues rear their ugly heads.

I started by googling and found nothing. This was a pretty obscure issue so it was hard to tell if I was failing at search or if there really was nothing out there. After a good while, I ended up searching the WordPress code itself for the div class that held the info — plugin-version-author-uri. After narrowing it down to a few pages, I couldn’t find any specific filtering for non-super admins. I am never quite sure if I can’t find it/don’t understand what I’m seeing or if the thing doesn’t exist. This can lead to very slow progress and lots of rechecking.

At some point I started troubleshooting on the Scotchbox Vagrant install I run on my own computer. Hey! What do you know? It wasn’t happening there. Some cursing and a few minutes later and I tracked it down to a plugin management plugin I’d installed nearly a year ago4Multisite Plugin Manager. It says it does this right in the descriptions — “Removes the plugin meta row links (Version, Author, Plugin) and any update messages for blog admins.”

All I had to do then was look at the plugin code and comment out line 43.

//add_filter( 'plugin_row_meta' , array( &$this, 'remove_plugin_meta' ), 10, 2 );

It’s one example of many. These delayed or opaque repercussions are both hard to anticipate and hard to track down. It’s so easy to make assumptions that lead you down the wrong trail and they aren’t bad assumptions. They’re based on previous experience and logic. They still cost you hours in the wrong direction.


1 Strange coincidence.

2 Also there are robots involved . . .

3 As does the path to the highest profits.

4 Ironically, I installed it so we could limit the number of plugins we were showing to users and decrease confusion.