The Trouble With Content Management Systems <RANT>

Technology is stuff that doesn't work yetBy the way, Douglas Adams quoted Bran Ferren in that image. No kidding.

Drupal. Wordpress. Joomla. Etc. These are content management systems - some even calling themselves frameworks now - that have two things in common: They have become exceedingly powerful at dealing with complicated jobs while becoming a severe pain in the ass for simple things.

Developers will tell you all sorts of things about how they're trying to solve the world's problems - because everyone, everywhere, likes to think that they are contributing to the world in a meaningful way. Some do.

But nowhere under any definition of making things better is making things a pain in the ass. It seems every time I want to write something, I have to update something on the site(s) I write on because a group of developers trying to be everything to everyone are out there making things more complex so that their jobs become more simple. Recently, before the job I have now, someone showed me this large dataset that they wanted to import into Drupal 7.

It's a nightmare of database abstraction to do an import now (yes, even with the modules) because they put training wheels on everything so the less skilled can have someone else's code do the heavy lifting. Years ago, I imported about a terabyte of data into Drupal 5 with some PHP scripts that took me half a day to write - data that, by the way, is still being used by British Petroleum to this day. It was simple enough to do if you knew how to write code and understood how to interact with a database instead of someone's stab at an abstracted framework to try to do everything for everyone... in the enterprise. And really, it sucks the byte fantastic. You can try to sell me on the hooks, the framework, etc., but the average person just wants stuff to work. They don't want to be impressed with your framework.

Drupal doesn't have the monopoly on this. I've seen it with other CMS's over the years. The KISS principle went out the window some time ago, and really, it's become exhausting. Sure, I write code; it does not mean that I want to update a bunch of stuff every time I want to write something. It does not mean that I want to have to figure out how to do things that were rather simple years ago.

There is a need for keeping things simple. Sure, we all know that the money in any projects are at the enterprise level, and we know that world domination requires money. I just don't think users, and even developers who don't want to develop when using (me) should have to suffer for it.

Yeah, it's a rant with weak points that some geeks can spend time refuting. Sure, I could spend time refuting the refutes. Sure, we can make it into a religious war akin to eMacs vs. VIM.

But it's just technology. I work with tech, have worked with tech longer than the internet has been around. I've seen entire languages come and go, hardware platforms come and go. I've seen more versions of Windows than you can find at Home Depot (and really, GEM Desktop was better back in the day). I've played with Microsoft's Speech SDK in this millenia and can report it's not much better than the Amiga's speech synthesizer in the late 80s.

The one thing outdated frameworks, languages and other tech have in common is lack of adoption or complete abandonment. I kind of see present content management systems going that way because in trying to go enterprise, they abandon their base while depending on developers to be their evangelists in an increasing economy of distaste with the products available.

KISS. Add modules for the enterprise. Some of us don't want to spend our weekends cleaning up after an overly abstracted kluge of features. If your UX doesn't involve updates and configurability, you'll spend a lot of time learning the lessons Linux is still learning. More options = bad.

Self vs Employed

weekendThe grass is always greener on the other side, typically because of the amount of manure on the other side. There are a lot of people out there dreaming of working for themselves, as well they should. There's a lot of manure. There are a lot of rewards. And there's a hell of a lot of work that, even in a good economy, doesn't always pay off.

Since I started at the new job, I haven't been writing as much. In fact I haven't written much at all because when I get down time, I do something that seems quite strange after years of working for myself.

I relax.

In talking with another co-worker with a similar (but not exactly the same) background, he described the same thing. The very idea that there is contiguous time where we know we can decompress is... a luxury.

In even accepting the position at Emergency Communications Network, it took me days to get out of what I call 'hustling' mode - where out of habit, I was always checking networks for what would be coming next. Staying on top of the arrays of technologies I'm familiar with also takes a lot - where, since you don't know what the next opportunity is, you're constantly staying on top of a diverse range of technologies where you'll the next contract will likely only use 3% of what you research. Of course, one keeps researching with a more permanent position, but it's nowhere near as pressing.

And weekends. A luxury. Sitting here, listening to Offspring while writing this. Waking up late, taking the dog for a walk, hopping over to a local spot for breakfast and deciding not to decide what to do next. Reading up a little on this and that, and griping over a whole slew of things you need to do just to write a blog entry (next entry).

It's a nice change to be able to have work and relaxation separate. I'm sure that my side projects will warm up again, but for now...

Yeah. I dig this.

Moving On: Some Thoughts On Employment and Contracting In The Software Industry

move technology to invisibilityRecently I had the good fortune to be employed by a company that has services that I believe are worthwhile. At this point, I haven't started and don't know the employee guidelines and whether it would be a good idea to mention them here or not - this is still my space on the web, and my opinions and those of my employer may vary. So I'm not mentioning who I will be working for, at least for now. It's not a big secret. Someone who really wants to know will find out - but I retain this space as my own and want to honor any policies that the company has.

That said, it has taken some time for me to get used to the idea of not having to look for contracts or work. The morning after I accepted the job, I stared at my email and all the stuff from CareerBuilder, Ladders, LinkedIn, etc. For months at a time, that seemed to be my life. Even when a short contract popped up on the radar, you have to look for the next thing.

How I Landed The Job

There was no magic to this - it was pretty brute force. It was reading a lot of useless emails from CareerBuilder, The Ladders, LinkedIn, and other sites that have no idea what I was looking for because of what I call the HR filters. These sites are biased toward what the HR departments of employers want, and that distinction is important: What the HR departments post about is almost never what they need. Factor in an economy where some say it's rebounding but where job statistics are as easily gamed as any other statistics, I imagine that there are at least a few thousand people trying to get work in the software industry here in the United States. Factor in the global aspects and the cost of living here in the U.S. being higher than in other parts of the world (but not all), there's some stiff competition out there for telecommuting work.

So what I did was just... brute force. Finding things that keep you going until opportunity strikes - something that is a good life lesson, I suppose, and something that those of us in the middle-aged category might call, "building character".

For the actual job itself, I applied to a company that had an open position. The position itself was not necessarily a good match for my skills and experience, but I wanted to work for this company and so I applied with a short cover email that basically said, "I'm not necessarily a good match for what you say you're looking for, but I want to work for your company."

As it happened, I ended up a good fit. Some might call it luck. I call it, "about time". In a world where we revel in success of others, it's easy to forget how much work went into it.

Trying To Get In? Some Advice

I've been around a few decades, and I think that I've earned the right to dispense some free and not necessarily great advice. It's not original, but it can serve as a reinforcement.

First, since I taught at The University of the West Indies School of Continuing Studies, I have actively discouraged people from entering the industry because it's not the same as when their parents were growing up. Back in the 1980s and 1990s, being a software developer or in IT in general was booming. It's not as much anymore, and there are a variety of reasons for that. I wrote code before the Internet. I remember playing games that were designed, written and produced by one person. The Industry has changed from that of the period of your parents, and if they're pushing you into it, you better love it or find something else to do.

If you're still reading, I won't discourage you further.

A lot of employers or potential clients will seem to be jerks - even as individuals you deal with aren't jerks, you're at the tail of the whip. Suck it up, cupcake. Life is an obstacle course, and so is your career. Whining will get you nowhere - no one hires based on pity. When my father took ill and I moved to Trinidad and Tobago, there weren't jobs for me. For a few years, I supported myself and my father by writing and teaching. It was good for my personal growth, but it did irk me. I stayed on top of technology and wrote code on my own.

I have a friend who actually lost a position he applied for because he wanted to get his substitute teacher certification and the hiring company didn't see the value of him starting later to do so. That was 2 months ago. 2 months later, he has his certification and they're still looking... and I recommended the headhunting agency throw him in the mix as I told them that I wanted my hat out of that ring. I hope he gets it because he's perfect for them.

Your coworkers can be platinum. Treat everyone as well as you can. Don't be a jerk. The people who you seem to barely interact with at work may notice you from afar and be your greatest asset.

General Notes

A few things I've learned from experience:

  • When the hiring manager/client goes on vacation before getting back to you, it tells you that their hiring is not a priority. Their vacation is the priority. You're not. Suck it up, cupcake. Keep looking. I've been on the end of that line as have many other people, and what I have learned is that if they have enough time to go on vacation before they hire you, you need to keep moving.
  • Headhunters can be your friends, and they deserve their own blog entry (it's coming). I have developed solid relationships with headhunters and while few of them have produced, it's not their fault. Stay the course. You never know.
  • No matter how much you want to work for a company or need the work to pay the errant internet bill, never pretend to be what you're not. Reputation is king.
  • When things go sour, don't go sour with them. Over the course of 25 years or so, I've had 3 contracts go sour. It happens, particularly when a company takes a high risk bet and tries to micromanage beyond the contract. If you can't be amicable, or if you're back is against the wall and there's nothing you can do or say to make things better, say nothing. The odds are good that they've done it before with people and will do it again. They'll earn their reputation. You'll earn yours.
  • Be a human being. You'd be surprised how not talking about your work or lack of it sometimes pays off. Go to the coffee shop, the beach, interact with people. Be real. One of the least known things in the industry is that the people who are the most important are the ones that have lives. If you don't have a life, get one.
  • A lot of people say that you should be interesting. Bullshit. You need to be interested. You need to listen more than you talk, and when you talk you need to make sense. Practice.
  • Do what you have to. Sometimes this means working outside of the industry or working in it in different ways. It may mean learning a new technology, it may be refreshing yourself on an old one, it may mean flipping burgers. Approach it all and give your best to everything you do.