In: Computer Science
Software Engineering Process
Discuss the activities that make up a software engineering process.
Your response should include the engineering phases of requirements :
- Design, coding, testing, reviews, refactoring, defects, team and customer communication.
- How is Agile the same as the Plan and Document process (aka Waterfall)
- In what ways is Agile different from Plan and Document
Discuss the activities that make up a software engineering process.
Answer: The software engineering process encompasses the entire range of activities, from initial customer inception to software production and maintenance. It is also known as the Software Development Life Cycle (SDLC).
The software engineering process consists of different phases. each of them are discussed below:
Coding and testing: Next, software developers implement the design by writing code. After all the code developed by different teams are integrated, test engineers check if the software meets the required specifications, so that developers can debug code. The release engineer then deploys the software on a server.
Review: This is the phase after installation process is completed. The organization tries to take feedback and reviews from the users/customers which hence forth helps the developers to ensure if the software is working perfectly at all stages.
Refactoring: is a process of improving the internal structure of an existing program's source code, while preserving its external behavior.
Defects: A defect is an error or a bug, in the application which is created. A programmer while designing and building the software can make mistakes or error. These mistakes or errors mean that there are flaws in the software. These are called defects.
Team and customer communication: As said, communication is a way to make things easier as well as to fulfill their demands. By having a proper communication with the customers, one can know what the customers are expecting in the upcoming future and what things are to be improved.
- How is Agile the same as the Plan and Document process (aka Waterfall)
Ans: 1. Cost benefit analysis in waterfall is done to evaluate if the project/product development is financially, technically and operationally feasible. This may result in a business case.
Whereas in Agile process, Feasibility is also conducted, however unlike waterfall, this phase will not take long. Considerably less time is spent refining the requirements and working out details. The customer/client are engaged very early in the phase to get buy-in and refine the requirements as we go.
2. In Waterfall model, Detailed planning is considered as a vital part of the conventional methodologies with the aim to deliver the project as per expectations and avoid changes to the requirements/scope. The plan formulated at the start of the project is monitored throughout the project.
Whereas in Agile process, Planning is also very important however, the detailed planning is not done upfront. The detailed level planning is done during a sprint planning when team is ready to take a certain chunk of the requirements and start planning to develop. This planning is ongoing, as the team is working on an active sprint, the product owner along with the scrum master or other SMEs continue to refine requirements and plan the next subset of requirements.
3. Waterfall model involves extensive documentation. Considerable time and effort is spent upfront to document the requirements.
Whereas in Agile process, Advocates working software delivery compared to spending time on comprehensive documentation. However, one should not be carried away with the notion of having absolutely no documentation in Agile SDLC.
- In what ways is Agile different from Plan and Document
Ans:
1. In Plan and Document, this process takes quite a lot of time to prevent reworking in the following phases of the project. It involves analyzing cost and benefit to determine if the plan is financially, technically, and operationally achievable. At times it may lead to a business case.
In Agile project management, however, this takes as little time as possible. You can contact clients in good time in the first stages of the project and settle the project requirements and task details.
2. In Plan and Document, planning in detail is very crucial and is done just once. It allows them to achieve the set goals of the project without making any alterations to the requirements or scope of the project. You can track the formulated plan at the beginning of the project in the entire project progress after it's set the baseline. You can make no change.
Planning in Agile methodology is not done in advance but when the team is prepared to take on a particular set of the requirements and begin to outline the development. In this case, planning is an ongoing process since the team works on an active sprint. Changing the plan is allowed, but you cannot add new requirements to an active sprint.
3. In Plan and Document, you can monitor the project's progress. Frequent status reviews are carried out to analyze the development. Afterward, the status reports will be sent to the management team and the project sponsors. The project managers also make weekly/monthly reports of status and share them with the stakeholders.
In Agile methodology, it is different as the progress gets measured in each sprint. The project team does this, then the sprint reports are handed over to the stakeholders. Another way of tracking project progress is through the demo of the built functionality.
4. In Plan and Document, project team members get assigned particular tasks, and one can work on only their delegated role. It is not up for any change whatsoever in the project life cycle. For example, a developer-only takes care of development tasks and cannot handle any other work.
In Agile project management, on the contrary, the teams are self-organizing and can switch roles among themselves. Or they can work in cycles, for example, a developer can assist a tester in the testing process. There is only a case of scrum master exception in which you can swap with the project manager.