Modern software engineering
Janith Dissanayake
Passionate Researcher | ESG Advocate & Startup Enthusiast | CIMA Affiliate | CTO at NEWNOP KR | CEO at NEWNOP SL
Margaret Hamilton built the Apollo flight control system aka the first software ever built. They didn’t have stack Overflow in the 1960s to look up for answers for the bugs they found. Yet, they built in redundancies to make sure the core functionalities of the program would work properly, despite the failure of other components. In fact, Neil Armstrong landed on the moon despite computers reporting 1200 & 1201 alarms, because the systems rebooted the core functionalities (David Farley, 2022). The first software engineer in the world, used a modular approach
During 2022, I was often told, rather reminded that “Software will never be free of bugs”. I was reading 1000 pages of books related to software architecture, modern software engineering and so on, just to find out, to what extent a bug should be acceptable and how to avoid them. This led me to an interesting yet simple definition of what "Engineering" was. "Stuff that works" is what engineering is according to Glenn Vanderburg. Applying this definition of software engineering, we can define software engineering as a process that develops software (stuff) that works. Within this context, we can define a "bug" as something that makes the software not work. It may be a simple bug on the FE or something serious at the BE, that affects the functionality of the system. Regardless of the technical complexity of the bug, if it affected the value for the client, that bug should be considered as critical, because it affects the value generated per dollar spent by the client. Therefore, it is crucial that the organizations implement proper quality assurance mechanisms
Besides the quality, changes may have to be incorporated into the software as the technologies and trends evolve rapidly. In a dynamic industry, a waterfall approach to development, where the requirements get finalized at the very beginning will not work, even if you have the best BA in your team. In order to develop "working" (that matches the customer expectations) software, companies should aim for building high performance teams
领英推荐
To summarize, the aim of the software is to build software that works and deliver value. In order to do that, organizations should have proper QA and agile teams with,
By doing so, we may reduce the number of bugs in the software that we develop, and also improve the value given by our services.