Whats the difference betweena tv set and a PCs? You know you can buy a tv and then maybe use it 6-7 years without being forced to do any updates or replace it, unless you want something better, bigger, whatever. I came to this question why tv sets are so different when it comes to rhythms. I have no insight in industry development cycles but here is what I assume:
- A tv set may be developed in about one year from the first ideas to production?
- A company might release new models every two months. As only new models get media attention?
- Nonetheless an average customer may only buy a new set each 3 or 4 years.
- A tv has limited functionality and maybe technology doesnt progress so fast any more
Now about PCs:
- May be the development also needs a year or so?
- release cycle is the same?
- There is a difference and this is the operating system. This is not part of the production cycle. Operating systems are constantly developed and released, there are security fixes, small improvements, new functionalities and also major releases
- The customer expects new hardware to ‘just work’ with his new PC.
- The customer is forced to update the software for the system to be still secure enough.
- Doing this fundamentally changes the computers basics.
One reason why PCs are so much more open for changes is that they are less mature and also are used in much broader ways. So like via the internet there come new technologies which did not exist two years ago. So if a PC would not change it would soon not be uptodate.
But I also like to question if this really makes that much sense? Why are PCs more open to attack? Frankly because theire inwards are often open to the world via the internet. But doesnt that mean that much of the operating system and software that is used just does things wrong?
I really think a PC should be secure by default without anybody needing to fix things. How could this be accomplished? Well first and foremost my simple reducing the size of the operating system, because every line of code you spare means statistically reducing the possibility of brokenness!
PCs need to be task oriented, which could also mean that some things wont just work without patching or extending the system. But a restrain can benefit the functionality. The years of development of the PC have shown that it can do a lot of things now, already. I think maybe its time to shift the development and deployment strategy. Currently all OSes include auto- or semiautomatic updates via the internet. This doesnt always makes a computer work better or more secure. So why not rather work on a secure and working basis and then make a thought trough strategic deployment?
Today there exist two kind of operating systems – the free once and the proprietary once. The later are oriented in marketing – so customer orientated but not necessary pro security – and innovation is something for visibility or for customer lock in.
Free operating systems are developer orientated, or orientated to those who make deployments – if they mix with the developer group. So people who make deployments but cannot connect to the developers have a problem. There are distributors that try to moderate but at the same time make money. They hire developers and take money from customers. Other distributions like Debian dont actually have a distributor company. All in all its not the developers that directly connect to the users, although the potential is there, but mostly the geeky user fraction is connecting – so free operating systems become geeky.
All operating systems have a problem giving the customers or users what they want or need. Because they tend to oversee the real problems. They are more busy fixing stuff and getting the next release out than actually solving the problems of the customers. And the distributor companies are more busy in earning money , so they rather care that they earn some cash – and fixing problem is rather the point of promising, not fixing (which are two totally distinct actions).
I believe that a good marketing means to solve the problems of customers/users – so that is the real task, which I think proprietary operating systems currently often do better, while never satisfying. So they keep customers as happy and hungry as they need them. Quenching the hunger is something that is not on the target list of anybody, really.
Sometimes you find exceptional developers who indeed primarily think of the users problems, which is easier the more technical the stuff is or the more the user and developer base mix. The hardest thing is to deliver a product where developers are very distinct from the user base. Part of solution could be to indeed teach users to use the tools (operating system) the way it was meant to be used. So this again is an argument against the “just works”.
Some products dont need teaching. Like cars. People learn driving cars – and the manufacturers job is to just sell it. If somebody can not drive the manufacturer or car salesman wont teach him or her.
I believe that teaching has to be part of using an operating system, as you provide a product that is not as transparent as a car or a tv set. If you wont teach them, people wont use it. Especially if they are quiet familiar with one operating system and you like them to switch. Unless they are already lost and frustrated you wont get them to change.
But teaching is not enough. Another important thing is that you need to listen to the users! So the developers need to understand the feedback and act if necessary. This doesnt mean that you do what the users tell you. Somebody needs to understand the real needs. I have seen developers acting with the word of pragmatism as they were thinking that they will just do what people want. But this doesnt provide the vision. The developers (as a general term of people who workn on the distribution) need to understand the needs an plan on how they can satisfy the needs of the users. They also have to know that a few loud users do not make a majority of the user base. There are no easy ways to get a operating system that is good. You will always loose some users, because you cant always make the right decisions for everybody.
Another interesting topic is on how to actually make decisions and move on. There is also no easy answer. The best thing one can do is to start with a vision and then work on getting there. So every decision that is made should be checked on what effects it will have. You need to comply on some common standards that make up some rules – and which means that people can rely on these points for at least as the vision that developers are working on, if you cant provide the solution now or soon.
One danger that I see many operating systems have a problem with is that they focus too much on the technical things. So they indeed think that if they talk about this, that it matters. But the thing is that the technical stuff is rather a stream of changes one needs to deal with. The decisions and selections are more important than the features. Features and news are willingly marketed and somehow developers are expecting the user base to be anxious to whats coming. Actually most wont be. The people often are more worried if their data is secure and overall if they can work as they are used to. I dont want to suggest that change is bad – I just like to say it doenst really matter that much – its not the number one issue for most users. People are happy if the computer and the software works better, als long as this doesnt mean that some core functionality is going away. Asit turns out often developers dont care that much about data losses as they are just too excited about the latest and greatest stuff.
So communication is important. Maintain a common understanding of the problems and of the decisions that are to be made. It should be transparent on how things are secided. And a users needs to be able to foresee the future. So he likes to get a released on a promised date – and he likes the operating to behave as expected. People accept changes if they are well though through and explained in detail. This is best accomplished with open discussions. Of course I am talking about free operating systems here, mainly.
How should an ideal operating system behave? It should keep what it promises. So if you arent there yet dont make stable releases that are aint just it! its ok to make alphas and betas – butdont suggest to use them if it will let down your users. Below the line you as a developer are responsible for the quality of the software you release. Always think that loosing data can have a fatal effect. Like:
- Somebody looses data and then looses a big customer or….
- looses his job…
- an important action can not be executed – like the computer is used to organize food deliveries and with the data loss it means people could die because things take more time…
- medical data gets lost and also somebody looses his live.
- Maybe the software is used in a mission in space and the mission fails dew to software failure,
Developers tend to forget about that computer are used EVERYWHERE. Indeeda computer can mean the difference between live and death today. So an attitude of “please use our OS, but if it fails dont blame us” is not acceptable. Not always are consequences so fatal. But what do you want to suggest? Do you want people to use your OS really on every circumstance or do you just want it to be used by geeks who just want to play?
So if you suggest that your software “just works” you should make sure that it does. Strangely though my impression is that “just works” almost always means “always fails”, while more conservative software more oftenly “just works” without it being marketed in that way (rather by the “security” feature).
I hope to have inspired at least some developers and makers to rethink the way they do software and operating systems and maybe give users some impression of what they should demand and expect. Sure this is also true for those who select operating systems and deploy it. they should choose those operating systems that meet the criterias that are important for their users. You may think that what I say is trivial, but I think often OSes are chosen by what they know best themselves or what is latest, or where they get the most share of the end price. So sometimes some Linuxes from big companies may sell better because they are more expensive and so the merchant can easily add an amount of money that fits the price of the end product. So he does not necessarily makes a quality choice.
To summarize – the choices are not easy – everybody can make a mistake – whats important is that you LEARN from your mistakes – so if some operating systems had led you down, leave them! Dont go back to them or to OSes and distributions which are similar to them. If you dont do this… you have been warned. 😉 This is true for every part of what I just wrote.
And as the final closing: Still dont let others or yourself steal you the fun on working with computers. If you be careful in some points you can have fun and experimenting is fun, too – which is nice if you are not on a production system or you are a carefree individual.