Doing Things Wrong

Feature Creep

From Wikipedia:

"Feature creep is the excessive ongoing expansion or addition of new features in a product, especially in computer software, video games and consumer and business electronics. These extra features go beyond the basic function of the product and can result in software bloat and over-complication, rather than simple design."

That's exactly what has happened to my WordPress theme. What started out so simple that I named it "Simple" is now anything but simple. In the year since I started on it, it has grown into a monster. The main reason for that is that I dislike WordPress plugins. Rather than use or write a plugin for some feature, I prefer to bake it into the theme. ( A WordPress theme is really just a special type of plugin anyway. )

There are several advantages to doing this:

  • All features can be controlled from a single Dashboard
  • You don't have to worry about dependencies between features
  • You can't accidentally turn off a feature by accidentally disabling a plugin
  • You'll know right away if two features conflict with each other
  • Your back-end code can be much more efficient

For example, I store all the options for the site in a single entry, rather multiple entries, or (gasp!) each one in its own entry. This eliminates many database calls - a single query at the start, and I have everything I need.

However, it is still simple to use. Once the code is written, everything happens automatically. The automatic tree-structured page navigation menus are the centerpiece - they allow WordPress to scale from a blogging system where pages and menus are an afterthought, to a full Content Management System. I don't think there is anything else like it in the WordPress world.

There are so many other features that I could hardly even list them all.


Audiovox 736 Replica Bass
Audiovox Gibson-style Bass
Audiovox Gibson-style Guitar
Audiovox Strat-style Guitar
Audiovox 12-string Guitar
Audiovox Danelectro-style Bass
Audiovox Fretless Bass
Audiovox Ukulele Bass
Audiovox Mandolin
Audiovox Electric Upright Bass

The new slideshow

A while ago, I took a look at the database tables, and realized that about half of the database was due to the slideshow plugin MetaSlider. MetaSlider crapped out thousands of entries across multiple tables. What bothers me is not so much the waste of storage space as the incredible inefficiency of having to retrieve all of that bit by bit from the database server. I did my best to minimize that kind of inefficiency, while the writers of MetaSlider did the opposite. In computer programming, more is almost never better.