In the first part of this series, we learned that expectations of the software industry is not fulfilled as new graduates lack solid and practical software engineering skills. Let us analyze this situation further.
Software engineering methodology plays a central role in any software development project. But most new graduates fail to understand this aspect. For example if the software project is following any agile software engineering methodology then all aspects about the software project will be different as compared to when a waterfall methodology is chosen for the project.
The software feasibility study can be conducted using evolutionary prototype here. The software requirement engineering can be done for only a bunch of software requirements at a time (for each iteration). The software design and construction can be done only for this bunch of software requirements at a time during an iteration. Software testing can be done again only for the bunch of software features which were designed and constructed during the iteration. The software product built so far (using incremental method which is possible using any iterative (agile) software engineering methodology) can be released in the market.
The software project management also get impacted depending on which software engineering methodology is being used for developing a software product. Agile project management is very different from waterfall project management. Project management for Waterfall methodology based software projects depend heavily on a solid project plan. On the contrary, agile methodology based software projects do not use extensive project planning at all. Whatever planning is done mostly at iteration level. At project level, planning is only at rough level.
Thus we can see, software engineering methodologies play central role in any software project.
We will learn about each software engineering component in subsequent posts.