I just had another run-in with WordPress over its “improved” system that makes me want to get hair plugs so I can tear my hair out, so this Comment of The Day by first time commenter Null Pointer is timely. This time, I was asking why I could no longer embed a CrowdSignal poll with a few clicks, and was forced to use the default WordPress poll feature which prevents a voter from checking the polling results without voting repeatedly. “Oh, it’s easy!” I was told by the cheery customer service agent. First, I have to register on the CrowdSignal site, and set up an account, and..and ..and…
I cut off the chat after writing that apparently WordPress doesn’t comprehend that my time is valuable, and that adding multiple steps, not to mention the need for constant assistance deciphering inadequate instructions and explanations, to accomplish what was once quick and straightforward is neither an improvement nor appreciated.
Usually first-time comments who score Comments of the Day are single issue participants, and are never heard from again. I hope Null Pointer is an exception.
Here is his or her Comment of the Day on the post, WordPress Is Unethical, But It’s Not Just Them:
You are blaming the wrong people. I am a software engineer, and I promise you it is not me or other programmers who decide to add ridiculous complexity to the UI/UX. Those decisions are made by either a UI designer, or a businessperson.
As a software engineer, I try to push back on stuff like what you are describing, but I get paid to write code, not second guess the business. 99% of the time no one is going to listen when the software engineer tells them what they want is a bad idea (or just plain stupid).The UI being different in different places probably indicates that features were requested throughout the development process, and added at different times, by different people, and possibly designed by different UI designers , assuming there was a UI designer at all.
Many times there is just a businessperson requesting features, and a bunch of software engineers carrying out those requests. If there is no UI designer, that makes the programmer the UI designer, and we are not trained to design software interfaces. We are trained to write code. Some of us are better than others when it comes to considering UI/UX, but pretty much none of us have actually been taught how to formally create uniform, easy to use, aesthetically pleasing software interfaces.
Additionally, when you add features willy-nilly like this, you end up with spaghetti code unless there is a lead developer overseeing what everyone is doing. Generally speaking, there is usually no one person designated to do that. The bigger the software engineering team is, and the more parts of the code are outsourced to cheaper contractors, the less likely it is that there is someone keeping track of what everyone is doing. What ends up happening is the same code is duplicated in multiple places in the code base and used at random in different places by different people, which results in the same feature being different in different places.
What I am trying to say is that we don’t do it on purpose because we are evil, cynical smartasses. Software engineering is complicated, and at the mercy of non-software engineers who like to order us to do stupid things….
It is very true that end users often say they want something when that isn’t really what they want. Adding a middleman is not the solution I prefer to employ to solve this, however, as it often just turns the process into a giant game of telephone, with additional places for misunderstanding to be introduced.The best way to solve this problem is to create prototypes, either using design software or with simple, throwaway code, and actually show it to the end user requesting the feature. Take feedback, redesign your prototype until the end user agrees it is what they want, and only after that agreement is reached, implement the feature. This process is called focus testing or user testing, and in my experience produces the best result.
17 thoughts on “Comment Of The Day: “WordPress Is Unethical, But It’s Not Just Them””
Congrats Null Pointer!
Please come here regularly. It’s lonely for us programmers in this blog where lawyers are overrepresented. 🙂
I want to read more from Null Pointer because I already work right now with many – too many – lawyers AND programmers. If I can learn something, even if it’s just a little more about the HTML that Jack uses here, I will be happier.
I agree with what Null Pointer is pointing out(not to). 80-90% of the time of my meetings are spent understanding what clients want to achieve and explaining why their desired feature will not work well and will create more headache in the end.
This reminds me of my total ineptitude in allowing Microsoft 365 on my computer. They were harassing me, telling me that without it my Word would not be viable, etc. Result? All kinds of “choices” I never wanted and don’t use now (have to bypass or say ‘no’ to those), “creative options’ in areas like power point where I am well accomplished after a number of years and don’t want or need a robot’s ‘creative input.’ And this cost me money!
Bottom line on Microsoft 365: it has created more steps for many tasks than is necessary, and it has added only time — not quality or ease of use — to my daily endeavors. What Null Pointer said makes sense: somehow I didn’t think programmers or code writers were responsible for this; I just assumed that it was kind of like ‘planned obsolescence” in automobiles: Keep “improving” the product whether your buyers want it or not, so they’ll eventually have to buy more!
Oh, $#!+ !! My work place started using Office 365. And I have FAILED to keep my promise to myself to LEARN it. Or, re-learn about what I had already learned about.
Is there an analog to Moore’s Law concerning “updates” and “new, improved” product roll-outs, about the rate of change of requirements to re-learn how to use IT increasing exponentially? I can’t keep up!
When I was in school for programming, there was a single course that was concerned about documentation, clarity, and usability. Once I was working, that class was probably more useful than any single other class, as I often had to translate issues to and from programmers and marketing/managers, neither group understanding the costs if they ‘won’ the turf wars. From talking to grads before or later, that class never happened. Anyone managing development, whether they can code a single line of code, or creating the UI, whether they think UNIX is easy or not, must accept that the users don’t know or care about your egos, it just has to work and be straightforward to use if you want to keep your client base. It’s alarming how many don’t really care about the paying customer…
That course should be multiple levels with some kind of final project before graduating. It’s so very disheartening when the project is careening to a disaster release and no one listens…
This condition of the software development world is very well illustrated in a cartoon that was shown during one of my software engineering classes. Must have been a simpler time; it had fewer panels than this, but none of the new panels changed the disconnect between the beginning and the end:
It’s kind of interesting that there seem to be quite a few folks here who are or were programmers or who trained in that field. Seems to be a larger sub group than I’d have thought. I’ve had thoughts from time to time about learning one of the modern programming languages, but I’m not sure I’ll ever get there. 😦
Regarding Office 365, when I got this computer — six years ago, yeah I keep these things until the electrons wear out — I had been using a Microsoft suite of products (for free) that I can’t even recall the name of now (Wordsomething, most likely). I think my sister had an old copy of Word she’d bought in the 90’s.
I did some research and finally decided on the subscription version of Office 365, which let me install all the programs (or apps as we call them now) on my PC. Not only that, but I could share the installation with up to 5 other people and my smartphone, so my sisters got copies of it on their PCs. Plus I think it’s a terabyte of cloud storage with OneDrive.
For me, it’s been a pretty good deal, and this year I switched to the annual subscription which is a bit cheaper. I mostly use Word and Excel — what was the old, old spreadsheet that was all the rage in the 80s and 90s? I’ve been gradually improving my proficiency with Excel and it can do some pretty neat tricks.
I find Microsoft’s newer offerings hilarious except two – Outlook for the web and Access. I always loathed the Outlook mail client because it had no end of inexplicable problems. The web client is much better for the way I use email, and tons easier on system resources. Plus, it works just as well on Linux as it does on Windows. Access, unfortunately, requires a virtual environment to run well, as it doesn’t play well with Linux’s compatibility layer at all.
I use LibreOffice for almost all office work including spreadsheets. Of course, if you use VBA, the Microsoft tools are far preferable. LibreOffice has an equivalent, but I’ve found it poorly documented and difficult to use effectively. VBA with Excel is a breeze.
As for modern programming languages, Python is worth the effort if you have programming experience. It is pretty easy to use for simple things, besides being great for advanced programming. There are a lot of great Python tutorials on YouTube that can get you started quick if you have the time and inclination. It can be as simple as a few scripts or as complex as YouTube, which is itself written in Python.
Ahhhhh, great minds and all that ….. I saw some stuff on Python a while back and it looked promising. I believe I’ve downloaded it to my PC and if, as, and when I do do something that’s probably what I’ll learn.
I have been forced to deal with the web based Outlook mail client because my company uses it for our company email. Then this year they basically enrolled us all in online Office 365 so we have all the modules at the office (and also at home for the stuff we can do at home). It’s interesting to deal with the online OneDrive stuff, if not always the simplest thing to do.
Diego and Glenn, you two are using IT vocabulary that even if I learned it, I could not make coherent sentences using it like you do here!
Yeah, OneDrive is not Dropbox, that’s for sure. I don’t use it. Most of the online apps from Microsoft are just okay and certainly useful when compatibility (rarely) is an issue, but there is no Access web app , nor does VBA work with the online apps.
Python’s biggest annoyance, a feature or a bug depending on your perspective, is its rigid enforcement of white space. As a scripting program, that can be a nuisance if you are used to writing BASH, perl, or VBA and don’t use an IDE like PyCharm (highly recommended) to help remind you. Obviously, that’s great for readability and consistency, but it can be a headache until you’re used to thinking the “Python way.” 🙂
‘[W]hat was the old, old spreadsheet that was all the rage in the 80s and 90s?”
It’s on the tip of my tongue! I swear!
LOTUS! (I cheated. I Googled.)
Yep, that was the one. At the time, it was revolutionary.
So I figured out the word processor I used to use — Microsoft Works had a word processor and a spreadsheet, but they stopped supporting it by 2014 when I got this PC.
And does anyone remember Electric Pencil? An even older word processor — brings back some memories.
Then there’s the brief reign of he stand-alone IBM DisplayWriter, which could be connected . . . .
Null Pointer nailed it.
Non-programmers run the show in the majority of shops. Developers with sufficient experience and any sense of professionalism constantly fight tooth and nail to build a sensible, usable product, often at the expense of their own careers. To be fair, even talented non-programmer UX / UI people will fight the same battle against their superiors and clients to build the product well.
What none of the people doing the actual work have is the ability to “stop the presses”. Those who want negative and nonsensical features will simply shop around internally until they find another developer who agrees to do it. I’ve had this done behind my back on several occasions. You can explain why a feature is not possible (or advisable), meaning it can never be internally consistent or correct, but you’ll lose credibility when someone else comes along and makes it look like they’ve succeeded against your protests, despite the fact that none of your concerns were ever addressed.
Say the accounting department has some need for a ridiculous feature that depends on some numbers coincidentally matching the numbers coming from another department. No one actually understands where these numbers come from or why they match. You look into it and discover that the match is almost entirely coincidental. Some guy named Joe in manufacturing enters these numbers by hand on Monday and in such a way that just so happens to be what accounting expects 99% of the time, and if there’s a mistake, no one notices, because they’re only aware of what gets matched up. It’s good enough for Jim in accounting, who pulls these numbers the next day. You discover that by pure luck, it will all appear just fine every Tuesday at 10am for the remainder of the year. But it’s good enough for Jim in accounting, for now. You protest that manufacturing and accounting need to standardize their practices or else your project is set up for inevitable failure. Sadly, the manufacturing department is run by its own union and no one has the authority to change how they do things. Of course, you have no union (and you’ll be blacklisted for even thinking about one) and your department is obligated to take on accounting’s requests to just “make it work” anyway. You, the professional that you are, refuse. Accounting won’t back down, so they find a junior developer on another team who’s excited to prove himself, with no idea what he’s getting into. So this feature that can’t possibly work correctly gets slapped together in such a way that pleases the person making the request on Jim’s behalf, following his narrow use case, only to fall apart when used any other way, say when Jim goes on vacation and Jill takes his place, but she only does the same task on Wednesdays at 11am. Then when Jim gets back all hell has broken loose and by the time it’s cleaned up we’re into next year and nothing works anymore, just as you explained, but it’s now suddenly your job to fix it all because that junior developer is in over his head and it seemed like you knew so much about the problem when accounting last spoke to you.
We’re disempowered from several angles. Development methodologies, originally intended to “heal the divide” between programmers and business people, have been subverted by an industry of agile consultants who sell it to the business class as a way of micromanaging us and maximizing the value extracted from us. Teams are structured to hide titles and flatten the influence of developer seniority. Some companies are just too big for anyone to known what’s going on, allowing bad ideas to be shopped around. Talk of unionizing is career suicide, as it is either illegally suppressed, used to blacklist you by recruiters, or otherwise looked down upon by your own peers with bigger egos. Meaningful professional licensing, the kind that would bar you from programming if you gave in to bad requests, is just not going to happen outside a few industries where peoples’ lives are immediately on the line.
The day to day reality feels very much like being “The Expert”.