Thoughts on Technology Leadership

Simple to Build, Hard to Get Right

Writing secure, usable, and maintainable software is not easy. Artificial intelligence does not change that assertion. However, sometimes the challenge behind implementing a feature is not due to software complexity, but to real-world reasons.

For many years, Twitter, as it was then known, did not allow a user to edit a tweet. Bluesky still does not allow it. Frequently, users would ask for the feature to be implemented with some variation of the statement, “This cannot be hard to do.” It is not technically difficult, but there is a user issue that makes it challenging.

Imagine that a user posted the following: “John Fisher is the worst owner in Major League Baseball.” The post receives a bunch of likes or replies with statements such as “Agreed,” “Yes,” or “FJF.” The next day, the user changes the post to read: “John Fisher is the best owner in Major League Baseball.” Now, all of those people are apparently agreeing to a preposterous statement that is the opposite of what they believe.

Twitter (now called X) does allow editing, but with severe restrictions to address the above scenario:
a) Only Premium users get the capability.
b) A post can only be edited within an hour of posting.
c) The edit history is publicly visible.

Another situation was encountered where a simple engineering feature was implemented, but the real-world situation means that the user experience would be better without it.

A site required entry of details of career experience. That process is annoying enough, as a resume had already been attached, which already contains the data. It is not uncommon, but this site had a complication that had not previously been encountered. The company name field was a drop-down with a list of company names. Selection was limited to this list. None of the companies for which work had been performed were listed. As a result, all of them are now listed as Other. The recruiter is going to read the resume anyway.

The lesson is simple. Building something is rarely the hard part. Getting it right for real users is. The best engineers do not just solve for code. They solve for behavior, context, and unintended consequences.

#SoftwareEngineering #UserExperience #ProductDesign #EngineeringChallenges #RealWorldTech

Back