It is very easy to take things for granted. These days, we are so used to having all of the world’s knowledge at our feet through our smartphones: connected to all the people we care about and everything we want to know via the Internet 24/7. We can find out instantly about events happening on the other side of the world just as we can get in touch through text, voice or video messages with almost any person on this planet for nearly no cost.
We consume and produce data and information through our mobile devices, smartphones, and tablets, everywhere and use our powerful and autonomous laptops when we need extra productivity. Most of us have a type of personal digital assistant device with whom we can interact based on voice and more often than not all our digital devices are connected and together create our digital existence.
The new world comes with new challenges for software product companies: user-friendly and for all devices software based on non-intrusive and fast-paced releases on new digital highways. Therefore, the teams of today’s world of software companies now include people with new expertise to create our digital existence: UX designers, scrum masters, DevOps, and testers and they now practice a type of Agile development and apply some of the micro-service based architecture.
Things were very different 25 years ago when Yonder was founded. People had PCs, personal computers, as the average price of a laptop was around 7000$ so only a few business people and the very rich had one. Right around that time, Apple launched Newton Message Pad, one of the first portable digital assistants, but it would take another 4 to 5 years until Palm or Psion introduced their popular personal digital assistants (PDA).
Later, these devices morphed into mobile phones that started to resemble the smartphones as we know them now. Until then, the Nokia Communicator was one of the few devices that were able to support you in making a phone call as well as managing your email based communication. Still, the average person would use mobile phones like Nokia 5110 or the 7110, which were the first mobile phones with a WAP browser, a special version of markup language based on HTML that would support websites and information to be displayed on limited devices like the mobile phones.
WAP together with technologies like Silverlight, Adobe AIR, Palm OS, Symbian did not stand the test of time, nor did many of the then rock solid giant companies like Borland, Compaq, Netscape, Nokia, Blackberry that now mean little to nothing to the new generation of developers just leaving the University benches.
When Yonder was founded the standards were set by business software, and most computing was done on processors like Intel 386 and 486 on desktop computers running at frequencies of 25 MHz with physical turbo buttons that would be able to increase the processor frequency in case of massive computations. Just to put things into context a smartphone today runs at 10 times the speed, memory, and storage of a computer in those days.
The personal computers in the 90s opened up the field for computer applications; many of the challenges of that period were related to mastering the complexity. While some of the systems were still running on mainframes, the release of Windows 95, graphical user interfaces and personal computers made the software world step into a new era. 4GL programming languages were already a very popular choice especially for enterprise and business applications since it allowed unprecedented productivity, especially for data-driven applications. Until then it was more about character-based applications and user interfaces (CUI), where most applications would have some application framework that would allow consistent functionalities and very productive user interfaces. Now with the introduction of Windows 95, most of the platforms developed abilities to design and implement graphical user interfaces and feature-rich applications quickly.
Many of the projects at that time developed by Yonder were migrations from character-based user interfaces to graphical user interfaces. From an architectural point, the applications were usually based on a two-tier architecture: the business logic would be mingled with the user interface. Rewriting them created the awareness that, user interfaces would change more often than business logic. This brought about the emergence of new architectures like client-server or n-tier architectures where business logic would be encapsulated in the application servers and thus decoupled from the client interfaces.
Looking back at the communication challenges, we accessed the Internet back then via regular telephone lines leased explicitly for this purpose using 33K modems. Imagine the speed, a typical website today would require around 8 minutes to load. HTML and web browsers were not powerful enough to support complex applications so the web was more about sharing information while most of the development would be centered about writing client-server, 3-tier graphical user interfaced based applications. There was only one type of development process, waterfall, where requirements would be collected in big piles followed by expert estimations, planning, and releases. You could have big releases yearly or even bi-yearly and bug fixing updates in more frequent version releases.
Especially at the beginning, getting access to the requirements that were delivered in big folders full with paper documents was just as challenging as estimating and releasing. Sometimes the documents were delivered personally having driven thousands of kilometers by car and using tape drives or floppy disks as support.
Remus Pereni, CTO