Software Engineering Assignment: Development of University Library
Question
Task: This software engineering assignment is based on the university library system and has two (2) tasks as described below:
Task 1: SDLC Approach
Write a brief description of the Pros and Cons to approaching the project using the ‘Predictive’ SDLC, then the Pros and Cons to approaching the project as ‘Adaptive’ SDLC. Then recommend either Predictive or Adaptive to the SDLC for the project and briefly describe why.
Task 2: Agile Principles
Research on the Internet about software development projects using Agile principles and complete the following tasks for your University Library System project.
- How will you train the team to use Agile development?
- How will you adopt this approach in the organization?
- Which aspects do you find frustrating or difficult to use?
Answer
Introduction
The report on software engineering assignment mainly illustrates the SDLC and Agile approach of project management. The SDLC is primarily used to develop, test, and design the software made by the software company. Agile project management involves the application of agile software development principles and their implementation in project management. The report also illustrates the implementation of a project of University library system upon which both the methods are deployed based on their capacity and characteristics. Thus, the report revolves around the project development of the University library .and its aspects through which aspects of project management can also be crucially identified and evaluated.
Task 1: SDLC Approach
Predictive SDLC projects follow a structured model where a systemic flow of events occurs (CookMyProject, 2020). The developer needs to be well aware of the requirements as everything is finalised before the project begins. The planning and development phase are described, and the risk assessment is performed initially, and the mitigation of risks is performed. It is effective for projects where requirements are sealed and the outcome is specific.
The advantages of the predictive SDLC model are:
- The stages are easy to understand throughout the cycle as each phase comes after the completion of another cycle (Towardsdatascience,2020).
- The instructions are appropriately defined with a specific workflow that helps users complete the project within a specified budget and timeline (Towardsdatascience, 2020).
- The effective budget ad timeline for the project is easily predictable
- Monitoring and controlling the project as easy as the deliverables are specified from the beginning along with budget and timelines.
The disadvantages of the predictive SDLC approach are:
• Software development occurs at a later stage in the development process, and it is difficult to identify any bugs or issues existing within the system (Towardsdatascience,2020).
• When bugs are discovered in the testing phase, it is difficult to rectify them as additional budget and time are wasted.
• The process freezes the requirements at the initial phase, but changes may occur in subsequent phase for complex projects, which creates issues.
• Dynamic projects are not applicable through predictive SDLC as the project deliverables change with time, and there is uncertainty in end products (Towardsdatascience, 2020).
• It is difficult to define all the requirements initially, and a problem arises with time and the project outcomes changes.
• The cost of the project may also increase as it requires a considerable amount of time, and the estimation may fail due to a change in market value.
• The resources are over utilised, and the time between the start and delivery of projects is high.
• Documentation and paperwork are massive for the project, which makes it tedious (CookMyProject, 2020).
• Requirements must be specified appropriately, as going back to the initial stages is not possible.
The adaptive model is a freeform software design, and it is more experimental where the requirements are not explicitly defined at the beginning. The client is considered at every stage of planning, and the planning is changed at every step as required. Flexibility is attached with the process, which is adaptive, and The pros of using adaptive SDLC are:
• The adaptive life cycle models like SCRUM and Kanban offers flexibility in design and better adaptable to change in dynamic projects.
• A shorter planning cycle called sprints allows changes as the requirements from customers change with time (Yurevich, 2020).
• Increased consumer satisfaction due to adaptability and continuous service delivery.
• The adaptive cycle involves active involvement with the key stakeholders, and changes are made based on priority and accuracy (Yurevich, 2020).
• The bugs and vulnerabilities in the system can be easily detected as testing is performed at subsequent stages of project development.
• The methods are incremental and evolutionary, where the iterative approach makes the design more effective.
• Several teamwork in collaboration where exchange of information takes place in improving the working conditions.
• The process develops over time that encourages constant feedback, continuous improvement and adaptation to changes that makes it the most effective solution in software development.
The cons of the adaptive cycle are:
• Any erroneous planning can lead to project failure (Yurevich, 2020).
• Closed collaboration is required between the project team and clients, and failure from any side will affect the outcomes (Towardsdatascience, 2020).
• Frequent change in requirements can lead to less detailed documentation, which will result in failure in subsequent phases.
• Numerous interactions between project teams will take way more amount of time, resulting in a delay of the project (Towardsdatascience,2020).
• The requirements of highly skilled and cross skilled team members are necessary as the team is small (CookMyProject,2020).
Adaptive Software Development Life Cycle Model will be effective for the Library Management System of the university. The functional requirements of the project are defined at the beginning, and any subsequent changes in project development due to requirement alteration by the consumers may be easily handled through an adaptive life cycle model. The system has different modules for student login and the administrative login where various teams will work to collaborate the requirements into a single user-friendly system. The requirements are for an in-built security system with increased capacity to carry out more transactions. Using an adaptive cycle will help in developing an error-free software system as the vulnerabilities will be tested at different stages of the development process. As the library management system is primarily a database system adding entities, improving search criteria and functionalities are some of the adaptive maintenance processes that will be required where an adaptive model will prove effective. Each stage of SDLC, like planning, design and testing activities, involves consultation of stakeholders at every phase (Nawaz, Motiwalla & Deokar,2018). This feature will help in successfully implementing features as per the requirements of the consumers, that is, the students, the administrators, the librarian of the university, staff. The SDLC model currently does not include any security components until the software is completely developed (Liou and Duclervil,2020.) Agile methodology following an adaptive model will be helpful in the library management system of the University, where security and flexibility are significant issues. Scalability and flexibility are required for the library management system, which can be achieved through the adaptive cycle that supports changes.
Task 2: Agile Principles
Training of team to use Agile development
Agile means the ability to create and respond to change, which is a way of dealing with, and at the last succeeding in, a complex and turbulent environment. Agile software development is a set of framework and practices based on the values and principles described in the Manifesto for Agile Software Development (Agile Alliance, 2021). One thing that differentiates Agile development from other developments is its focus on the people and their work. Agile software development is an interactive approach to project management that requires customer feedback and a cross-functional team (Burger, 2017). With the Agile development methodology, one needs to create, test and manage one's project simultaneously.The ever-changing customer requirements demand agile adoption within an organisation, due to which I think that I have to ensure that all of the employees execute their tasks effectively and efficiently. The team need to aware of the aspects incorporated within the agile methodology. With the help of the knowledge, the project team can address any issue that arises within the workplace. However, the development team need to break down each task according to their capabilities and expertise level. I will be aware of my team members about the frameworks of agile methodology like Scrum, Kanban, and others in order to implement agile during the project work effectively. Scrum framework is one of the most used agile frameworks nowadays; with the help of which a project team can optimise the project in order to bring a crucial and prosperous outcome. The development or the project goal can be met easily with the Scrum principle of agile methodology. Also, my team will be able to measure the effectiveness of the project through this framework. Apart from that, the project of University library system can be easily implemented with the help of Kanban methodology. Kanban is a continuous improvement framework that can help to improvise the project work.
Agile development is the key to success in a software development project. Hence I will teach my team to use Agile development in my university library project. I will use the following four methods to teach my team about Agile development; Firstly, I will introduce the 12 principles of the Manifesto for Agile Software Development to my team. The principles are-
- Giving the highest priority to satisfy the customer,
- Change is good, even if it is late, in a project,
- It is better to create working deliverables and then work on improving those deliverables gradually,
- Tech people and business people need to work together,
- To turn over quality deliverables, build projects around motivated people,
- Prize face-to-face interaction over other forms of communication,
- The best measure of success is a working product,
- The development pace should be sustainable,
- A quality product is made of a quality design and code, which can be time taking to create,
- Simplicity is always better,
- The best terms are the self-organising term and
- The lessons learned from success and failure should be reflected in work.
I will focus more on live training rather than theory by defining the scope and goals of my project, developing a software function as an example and integrate the function with the agile methodology and test that function.I will emphasise working on a collaboration with each other. I will be the coach of my team to teach them Agile development. I will use the push and pull method to teach them Agile Development. The push method will play a direct role in imparting knowledge. In the pull method, I will engage my team members to adapt principles and values by giving them consistent, encouraging feedback.
Adoption of agile
Agile development is the core of a software development project which is more about a culture, way of doing things and being okay with the frequent course corrections than expected (Orangescrum, 2021). I will try to adopt the Agile development to my university library project following five steps –
Firstly, I will set my team for the project and teach them about the agile development methodology by teaching them the basic principles of Agile methods and giving them live training rather than theory by defining the scope and goals of my project, developing a software function as an example and integrate the function with the agile methodology and test that function.In the next step, I will identify the list of project works my team needs to take care of. At this point, I can decide which project work I can kick to the wayside and which my team needs to care for.In Step 3, I will begin visualising the extent of the work on my team's plate. I will do some of the lower-priority tasks. After prioritising my project work, I will start implementing Agile methodology in my project. In the next step, I will start my sprint and hold daily stand-up meetings. Sprints are predetermined periods During which specific teammates are required to complete detailed project work to meet the project deadline (Plutora, 2021). I will arrange 15 minutes stand-up meetings once a week with my all teammates virtually.After the sprint gets underway, I will start developing the software with the help of my team. At the end of each sprint, I will set a sprint review meeting where my team will discuss successes and failures, and I will figure out how to continuously optimise my approach.
Difficult aspects
After completing the university library system project by using agile development methodology, I have faced several challenges which have made the project quite difficult sometimes.
• The first challenge I have faced during the project is to set proper communication in the team as improper communication can cause difficulty in implementing Agile methodology on my project. It is pretty challenging to maintain a collaborative environment among the team members. Maintaining strong communication among my team members are the most difficult aspects of implementing Agile methodology.
• Another challenge I have faced has proper expertise among my team members. There was a lack of appropriate Agile expertise in my team, making my project take more time.
• I have also faced challenges to coordinate with my team from time to time. In the Agile methodology, my team was divided into several groups, and each group was responsible for completing their given task. These groups not only work simultaneously but also depend on each other. So, I have to look at every group's work and guide them to complete their work on time which was quite challenging.
Conclusion
The report finally concludes with the proper implementation of the project of University library system with the help of SDLC and Agile project management. Both of them have enriched the project from all the possible aspects to the success of the project. Hence, as per the above discussion, it can be concluded that the agile methodology needs to be adequately implemented concerning the capacity of the team member with the help of which the effectiveness of the project can be improved, and the desired objective can be addressed strategically. ?
References
Agile Alliance. (2021). What is Agile Software Development?. Retrieved 13 May 2021, from https://www.agilealliance.org/agile101/.
Burger, R. (2017). Retrieved 13 May 2021, from https://blog.capterra.com/5-ways-to-teach-agile-methodology-to-your-tech-team/>.
CookMyProject. (2020). SDLC predictive and adaptive approach. Retrieved 13 May 2021, from https://cookmyproject.com/blog/sdlc-predictive-and-adaptive-approach/
Liou, J.C. and Duclervil, S.R., 2020. A Survey on the Effectiveness of the Secure Software Development Life Cycle Models. In Innovations in Cybersecurity Education (pp. 213-229). Springer, Cham.
Nawaz, M., Motiwalla, L., & Deokar, A. V. (2018, July). Adaptive User Interface for a Personalised Mobile Banking App. In Adjunct Publication of the 26th Conference on User Modeling, Adaptation and Personalisation (pp. 141-142).
Orangescrum. (2021). How to Adopt Agile Principles for your Enterprise. Enterprise Project Management Tool Articles. Retrieved 13 May 2021, from https://www.orangescrum.org/articles/how-to-adopt-agile-principles-for-your-enterprise.html/amp.
Plutora. (2021). Adopting Agile Methodology: 6 Steps to Improved Delivery - Plutora. Retrieved 13 May 2021, from https://www.plutora.com/blog/adopting-agile-methodology-steps.
Towardsdatascience. (2020). Predictive vs. Adaptive SDLC: What is the Difference?.(Retrieved 13 May 2021, from https://towardsdatascience.com/predictive-vs-adaptive-sdlc-what-is-the-difference-463596add74b
Yurevich, D. (2020). Predictive vs. Adaptive Development. Retrieved 13 May 2021, from https://www.syberry.com/blog/predictive-vs-adaptive-development