Daniel Sapoundjiev on
Artificial Intelligence in software products
Artificial Intelligence in software products
Date created: 13 June 2009
Last modified: 10 April 2011
In our days software systems are made highly configurable. Not all but many. You can see menus like Options, Settings, and Preferences in many of them.
Software companies have different clients with different needs. They donít want to make different software products with similar functionalities for each client. So, they make the software configurable.
But not only different companies in same field work differently. Even a single company does similar tasks in different ways. So, the software can be configured to work differently to meet that.
So, what is the conclusion? When the software is configurable, it can be sold to many clients and meet their needs. Also the software company can configure it quickly and will not waste time and resources.
How the software companies work
Some software companies install the software on the client side and configure it by itself. They do not left this task to the client. Usually these are expensive software systems for specific industrial needs. They talk a lot with the client and configure the software to best fit its needs.
But on the other side there are software products that are sold to a lot of people and companies. It wonít be possible for the software company to install and configure the product on every computer. It will be hard and expensive task. So, what happen in this case? People work with the software as it is. And when someone gets experienced starts to configure the software and everything gets better. But after wasting a lot of time working with bad configured software! And there is always something that is not configured properly. Yes, people always miss something.
How software helps
Letís just mention how the software helps the people. Software helps them do a specific task faster and with fewer resources. If you draw on graphic software you donít need pencil. If you use the calculator.exe it will take less time than using pencil and paper. So, people need speed in their work. Speed very often brings someone far before the others. But thatís not a rule, if you spin round and round you will not get much further.
What is Artificial Intelligence?
The idea for Artificial Intelligence is much closed to software configuration.
The software monitors the way a user works with it and suggests changes in the configuration or just changes its behavior.
Doing that it better fits the needs of the users and speeds up their work.
Artificial Intelligence is also closed to the actions that the users perform with the software. When the user starts to perform some action the software can predict what the user is going to do. And offer something that will help executing the action. It is possible the software to be wrong sometimes, so the user must have a freedom not to accept the help.
In conclusion: Something happens and the software monitors it. At some point this information is enough for decision to be made. The system makes suggestion or makes change, or offers an opportunity.
Real world examples of Artificial Intelligence
Some software companies use Artificial Intelligence in their software products. For example:
Microsoft Windows Ė Windows is monitoring how often you are using your desktop icons. If donít use some icons very often it decides to offer you removing them. It supposes that this will help you in your work. You will find faster other more often used icons.
Microsoft Windows Ė puts most used programs in the start menu, ordered appropriate to save you time starting them.
Most MS Products Ė they hide unused menu items, so you can fast find most used of them on the top.
Skype Ė automatically changes the volume of mic and headphones to bring you better sound quality.
Oracle SQL Server Ė It monitors your work with the database and configures its work to execute faster queries. Even without asking you.
What if we have artificial Intelligence in some programs?
When I run Media Player Classic for first time, I know most of you were in my situation, and try to load subtitles for a movie it doesnít work. You need to go and configure the player by yourself. The program knows what the problem is but doesnít want to solve it instead of you. So, here more intelligent program can offer to do the work for you, or just place you in the proper page in the program settings.
Why Microsoft word doesnít offer you to put a specific word in the dictionary. It can easily determine that you are using one crazy word very often. He knows that you donít know about this option for adding words in the dictionary but MS Word doesnít care about it. You will loose your focus every time you are writing this word when it gets underlined with red.
I see that many software people donít know about this way of improving the programs. So, I hope with this paper will help some software products get better.
Also I think this paper is up to System Architects, but I often see that developers, testers, project managers, business architects also do system architecture in our days.Back to main menu