“The First Rule of Program Optimization: Don’t do it. The Second Rule of Program Optimization (for experts only!): Don’t do it yet.” — Michael A. Jackson
It is human nature to try to find the easiest solutions to tackle life’s problems however; this can have the negative effect of affecting others and in the long term not really solving the problem itself. Occam’s philosophy is not implicitly wrong rather does not account for taking into account all factors as time taken to consider can save time, money and effort further down the line.
As time passes, we often find the need to improve and make things better or rather the false sense of innovation without often considering the core demographic an example of this could be found within Windows 8 and its change in design. Whilst functional has for the time being alienated some of its core audience, games are a good example of this adding in features and innovating to compete whilst at times losing the core parts that made them fun, functional and fit for purpose.
To please the many it often seen as a necessary evil to upset the few whilst the companies / products meaning and feel can become lost and marred in this sense to innovate, penalising those who cannot adapt as quickly or are unwilling to. Optimising is not just about streamlining it is about consideration, asking what is needed, what is good not from a developer perspective rather a user viewpoint. However, it is imperative to not purely rely on a user centric approach rather prioritise and make reasonable assumptions based on feedback and research, what a user wants and what user needs do not always coincide. Reducing the impact on users is a balancing act and penalising a fan base or valued user is something any developer, writer or creator should try to avoid.
In regards to storytelling as an example under-estimating the power of fandom is risky and if poorly handled will alienate and create negative feedback as such asking those who know more is critical. This is true in all regards from computing to media as a whole, a poorly designed interface will annoy users and impact both sales and opinions and sometimes the use of pseudo design principles is most optimal, penalising users cause they do not know as much as the next person is a risk that needs to be negated.
In order to be able to explain this more clearly I will provide a case study and real world example:
A university library is proposing to introduce a find a PC system and talks regarding booking a system have been made, users should be able to access machines as needed and be informed of empty/ available machines. Now the problem is not all users require a PC for the same period of time for same reasons, some users may take a computer then leave the system logged in whilst effectively away from machine taking up a space that could be viewed as being more critical to someone else. However the user leaving said system logged in may have just reasons for ‘retaining’ the computer i.e. need to acquire books for referencing or need to go to the toilet whereby logging out and back in it would take added extra time not deemed appropriate. One suggestion was to impose a booking popup alert message to inform users that they have been on the machine for a deemed ‘long’ period of time and requires manual input else will auto logoff however if the user is away from the machine for said appropriate reasons this could log them off and risk their work progress. Penalising the current user so a new user can use the system is in essence harming the potentially hard-working user and distracting them from the tasks at hand however some users may be misusing the machines therefore taking up spaces others need more. To value one use over another, one person over another is a task that cannot be easily solved however penalising the user over optimising the framework creates a more negative feedback response and therefore reduces system overall use.
No right solution can exist however the least impacting / harmful has to be seen as the most optimal.
A condensed: Find me a PC version can be found at the link below: