Modern Software Engineering Concepts

1023 Words5 Pages

How Modern Software engineering addresses the classic software engineering concepts

“Better yet, what if I show you concepts of classic software engineering text from the book titled ‘The Mythical Man Month’ ,1995, is still not completely resolved in modern software engineering approaches?”. Frederick P. Brooks Jr., the author of ‘The Mythical Man Month’ book is a father of IBM System - 360, the manager for Operating System - 360 and a Professor of Computer Science at the University of North Carolina at Chapel Hill. This blog will discuss three major concepts examined in this book and apply model software engineering to verify its relevance. The first identified concept is the failure of several large system programming because they did not …show more content…

Moreover, he also states the first false assumptions which normally taken by the programmer is that “all will go well”. Therefore, he clearly states that this false assumption leads to poor scheduling and time estimation of the project. He also added that idea of programming is that the errors can be traceable and documentable, however, he emphasis that it is very difficult to detect software bugs. Kent Beck in his book titled ‘Extreme Programming Explained: Embrace Change’ stated that “Optimism is an occupational hazard of the programming and feedback is an appropriate treatment”. The modern software engineering solves the optimism issue by Extreme Programming (XP). Extreme programming is a type of software development methodology which will be conducted in small units and the feedback from the client will be received and adopted. This methodology assists to improve quality of the software. Moreover, the software which follows extreme programming concept will be responsive to customer requirements and cost effective. There are 12 Extreme programming practices which are pair programming, planning game, test driven development, whole team, continuous integration, design improvement, small release, coding standard, collective code ownership, simple design, system metaphor, and sustainable pace. However, Extreme programming …show more content…

Moreover, he also added that “most experience with large programming system shows that the brute force approaches costly, slow, and inefficient”. Harlan Mills offers a solution to this issue by proposing that “the team be organised like a surgical team rather than a hog-butchering team”. In his statement he signified surgical team is for small group of programmers headed by the chief programmer where else hog-butchering team represents a large group of programmers. In modern software engineering, there are two major ways of structuring the programming teams which are egoless programming team and chief programmer team. The egoless programming team consists of less than or equal to 10 members and the goals are set amongst the members and the codes used and developed are exchanged among the members. Furthermore, the leaders will be changed according to the requirement. On the other hand, chief programmer team is formed with three members (Chief programmer, program librarian, and senior programmer). It is advised that chief programmer team is appropriate for the small project, where else, the egoless programming team is suitable for large projects. The chief programmer team will have communication gap where else the egoless programming team will have proper reporting structure which will help them enable good communication among

More about Modern Software Engineering Concepts

Open Document