Software is a set of instructions transmitted to the CPU (the processor), for realization of certain tasks. This is one of the possible definitions. Using a more picturing language, software is the soul of the machine.
In philosophy, the soul is the element of life deciding if the being is alive. Machines which we revive, process words, images and sounds incredibly fast into lines of zeros and ones, those into minimal variances in the electromagnetic radiation… and the other way around – so that it would be possible to replay the words, images and sounds in the exact same way on the other side of the world. Those machines decide also, in millionths of a second, which spectrum pieces of the available frequency will be optimal in a certain moment, for a certain recipient – depending on where is he located and what kind of device he has. They do this simultaneously for millions of users. That’s why code creating is our hobby, and for its creation we use the most advanced tools, techniques and methodology.
In Nokia Technologic Center in Kraków, we’re working on software for 3G, 4G, 5G mobile network infrastructure devices (Base Transceiver Stations, elements managing the networks). Those are multitasking devices, working in real time. So that it is possible to fulfill contemporary expectations of our customers, their availability should be at least on the ”five nines” level, because the time of their implementation (“time to market”) has to be short. Technologies used and the working organizing must enable the fulfillment of these criteria.
Most of the software is created in C++, with usage of the newest available mechanisms (implemented in C++ 11, C++ 14), and libraries (boost, STL). The tools supporting the process of code creation that we use, are between others: svn (git), ClearCase Jira, Jenkins, RedMine, Wireshark, Gcov, Valgrind, Klockwork. For creation of internal tools and the automatic testing of our products, we use Java, Python, Perl, TTCN-3, and those are only those most often used. Our project teams mostly work with Agile methodology (including SCRUM, SCRUM LeSS, LeSS Huge).