Many IT professions essentially exist to maintain the computer systems in a working state and help the other people to interact with computers. These include not only all kinds of IT support personnel, but also coders whose only job is to formalize with a programming language certain routines described to them in a less formal way. One may say that the majority of today's programming languages are much more suitable for computers than for humans. And while we can expect that computers take away routine jobs from us, in reality they quite often even increase the amount of routine for humans. The way Einstein described difference and synergy between people and machines to some extent is more a dream than a reality.
However, as the high-tech industry advances, the situation changes for the better. At INTSPEI we believe that the upcoming decades will see a shift in focus towards human productivity.
Ideally, people should concentrate on three key things:
All the rest should be "outsourced" to computers. This rather idealistic picture defines the key direction for today's computing technologies to evolve.
In order to change the way society uses computers, software engineers and computer scientists should first change the way they use computers themselves by making them more human-focused.
Initially, software development processes were absolutely computer-centered: programmers had to write code using awkward programming languages (e.g. assembler) that were easily "understood" by computers but very inconvenient for people. Over time more and more new programming languages were developed. These languages allowed operating on more abstract levels and they became more suitable for people.
Equally as important, these languages also served as intermediate tools in a process of "translation" from pure human natural languages to pure computer languages. Various software development methodologies and frameworks were created to help software developers make this "translation" in the most efficient way. As long as the complexity of software systems continued to increase, more languages were developed - again, more abstract and more human-oriented. So, the process of "translation" from human natural language to executable code became more complex, involving several phases and several languages (e.g. from English to UML, from UML to C++, from C++ to actual code). As a result, even more sophisticated software development methodologies appeared.
This process tends to continue, and we should expect to see new languages and new methodologies with more focus on helping developers utilize their unique human qualities and less focus on computer-specific things. At INTSPEI we believe that researchers should pay special attention to experimenting with various techniques which could help unleash true creative human potential and increase programmers' productivity. Such kinds of experiments are the core of INTSPEI's research programs.