Web Developer, Accessibility & Sustainability evangelist, Human.
21 August 2014
As humans we grow. We change perspectives and see things differently.
We keep learning new things and strive to improve ourselves.
This also applies to the code we write: We keep improving the code we write on a daily basis and improve the things we have already built.
The ugliest code I’ve seen is the code I wrote last year.
I always say that and some people may disagree, but it’s true. And each year, each month that goes by we keep learning things and change the way we function. As a result, I sometimes look at the code I wrote a while back and say to my self “what on earth have you done here Ari? Why??”
Programming is all about efficiency: finding the best route to achieve a goal. However as programmers we sometimes we tend to over-complicate things and go out of our way to build something when it’s not really necessary to do so. We add stuff to our scripts, and we think that this way we will simplify the lives of our users.
Take WordPress themes for example:
You start building a theme and add a couple of options for the users. As time goes by, you think to yourself “but what if the user wants to do this ir that” and so on. So… you add some more options. Then after a while, you have a theme with 50, 60, or even 100 options for your users and you think to yourself “now this is really flexible… Now users will be able to do whatever they want!”.
There are plenty of themes like that… Both commercial and free.
The more you use these themes though, the more you come to realize that not all of these options are really needed!
Sure, there’s a market for themes like that… there’s the right tool for every job, and jome jobs require this level of customization.
I think it all boils down to what your target audience is:
If you’re targeting developers, then building a theme like that is wrong. Developers don’t need that many options, they want a solid framework they can work on, a framework that allows them to write their own code on and make their own. SOmething they can simply use without having to wonder “why does this option do this or that”.
If you’re targeting experienced users, then you need a theme that suits their job without a lot of effort. Having 100 options to play with, though tempting, can lead to disaster.
If you’re targeting normal users, then this theme will not be a good fit either. Having too many options can be confusing at best. Most likely they will dismiss the theme as too complex, or even destroy their site in the effort of using your product.
A theme with a gazillion options can only be used by tweakers. People who like playing with buttons and feel like they are in acontrol of everything. In some cases, a professional web developer may use themes like that too, depending on the project they are working on and their timeframe. If they are in a hurry and need to get the job done then using a theme like this that they are familiar with can make some sense.
The real confusion however lies in the way people market themselves. Let me explain that a bit…
My day job is support staff at a major WordPress company, so I talk to a lot of people on a daily basis trying to solve their problems.
A lot of people will start their sentence like this: “Hello, I am a WordPress developer and I want to do this and that”. Then you start discussing with these people and you realize they know nothing about PHP, HTML, CSS etc. When they say “developer”, they actually mean “tweaker”, “tinkerer”.
WordPress is so easy that it allows people to build websites with extreme ease. When someone installs a theme and uses a shortcode, they feel like “developers”. As such, they are looking for powerful tools to do their job, but most times they lach the knowledge to use these tools.
And these is where we are to blame as developers…
We take some things for granted.
Things that are not widely understood or conceived, unless the other person also has some know ledge of programming and its concepts. We work with programming languages so many hours a day, that our minds default to a way of thinking if ( condition ) { then } else {}
.
Though it makes sense to us and we think that everyone thinks that way, the truth is very different. Normal people don’t think that way. Normal people want to be able to make simple decisions, not have to be in front of their screen for 2 hours, configuring the theme or plugin that we built.
I am guilty of building stuff like that too! My best-selling theme has more that 80 options and though it’s great, it could have been done in a different way, a more effective and efficient way.
Even if your products are built that way though, you can always shift your perspective, change the way you market your products and build products that are more robust, more human.
I know I will. :)
Cheers!
Ari.