Agile Methodology
The part of the report seek the details of agile methodology in terms of its values and principles, and how it supports adaptability.
The Kanban methodology is used for management of the final software product and the effort is given on the creation of the product without adding extra burden on the project development team. The Kanban methodology is based on basic three principles such as:
Maintaining a workflow for the development of the project- the project manager is responsible for monitoring the progress of work and share the information of the progress to the client for maintaining a workflow.
The work in progress is required to be limited- This is because the development team have to commit too much work at a time.
Enhancement of the flow of information- a communication plan is required to be created and maintain the logs for documentation of the progress of the work.
With the implementation of the Kanban the development team can be encouraged and improve the workflow for development of a quality software product.
The agile methodology is defined as the management of the iterative and the incremental projects and it consists of a set of principles and evolving the collaborative efforts for the development of the software. The agile methodology is developed based on the development principles such as satisfaction level of the customer, change required in the product advancement, frequency of the delivery of the software, etc. The Scrum is one of the dexterous technique that is utilized for the administration and improvement of the product extend (Turk, France & Rumpe, 2014). With the use of the agile methodology the development team are bonded and they work unitedly for identification of the bugs and the functional requirement of the organization.
There are different agile software development methodology that can be applied for the development of the software such as IBM Rational Unified process, Scrum, Feature Driven Development, Dynamic system Development, Adaptive Software development and Kanban. The Scrum is an iterative agile software development methodology and the main focus of this type of software development is on delivering value to the customer (Fuggetta & Di Nitto, 2014). The main principles associated with the Scrum methodology are as follows:
Elimination of the wastage of the resources and the raw materials required for the development of the project
- Amplification of the learning
- Take decision at the last stage of the development phase
- Deliver the project at the early phase
- Encouraging the team for getting maximum output
- Communicating with the team members for getting innovative ideas
- Monitoring the progress of the project.
The Kanban is another popular agile methodology that can be implemented for the development of a high quality software product within a limited time period. The customer involvement is greater and thus the requirement of the software product can be clearly understood by the project development team (Vijayasarathy & Butler, 2016). A continuous testing is done and a planning is done for delivering the software product on time. The Kanban is based on the following values such as:
- Simplicity
- Feedback
- Communication, and
- Courage
Kanban Methodology
The following supporting practice are required to be implemented for the implementation of the extreme programming on the software development.
- Planning of the project
- Acceptance testing for the customer
- Preparation of a simple design principle
- Releasing the project in small sample
- Development of the modules in small parts
- Testing the modules
- Refactoring
- Integration of the modules
- Maintaining a standard for coding
- Collection of the ownership of the code
- Metaphor
- Maintain a sustainable pace of work
Following the Kanban methodology for the improvement of the product item the clients can be included in the advancement of the venture and the usefulness of the product can be distinguished. A legitimate estimation can be made on the necessity of the venture (Matharu et al., 2015). The productivity of the software development can be maximized and a lightweight framework can be developed for development of a higher quality of software product. The crystal methodology is also an agile method that can be implemented for the development of the software product. In this technique versatile methodologies are utilized and it additionally address the issues related with the fitting of the strategy and procedures and practices brought about for the improvement of the venture. It is very comparative with the other coordinated strategies and is utilized to meet the special qualities recognized for the advancement of the project (Schmidt, 2016). The teamwork, communication and the simplicity of the project are the key factors involved for the adjustment and the improvement of the project development process.
Dynamic system development method DSDM is used for industry standard project and rapid application development of the project. It works efficiently for planning, management, execution and scalability of the agile methodology. It have nine key principles that is used for analysing the requirement of the project and develop the project according to it. An active involvement of the team members is necessary for the development of the project (Dingsøyr & Moe, 2013). The developed software product is aligned with the requirement of the organization and is the main criteria for project acceptance. The MooSCoW rules are integrated with the DSDM for increasing its efficiency and the rule states that it must have the requirement and should have it all possible, the critical factor is required to be eliminated and would not have at that time. The critical works is required to be done in the DSDM project and each of the requirement should not be considered as a critical. The critical items are required to be eliminated that can affect the project development schedule (Brhel et al., 015). The DSDM project can be integrated with the extreme programming and rational unified process for increasing the efficiency of the agile methodology.
The feature driven development FDD is also an agile methodology based on the following practices such as:
- Domain object modelling
- Development of the software based on the feature
- Ownership of the class and the components
- Development of the team based on the skills and knowledge required for the development of the software
- Inspection of the elements required for the development of the project
- Management of the configuration for the development of the project
- Development of the regular builds and patched for the software product
- Monitoring the progress and analysing the test results
Scrum Methodology
Lastly, you are required to come up with suitable methodology for the following cases. You need to properly discuss, reason and reference your choice of methodology.
- Case 1 – When you want to know on daily/weekly basis of how much work is remaining in completing the system.
Most of the complex software development projects needs a clear requirement analysis and the priorities of the project is required to be cleared before starting the development of the project. The project manager is responsible for creation of a project schedule and develop the project according to it. The project team members is required to be included in the planning phase and if any change is required in the development phase it is required to be approved by the project manager (Peres et al., 2014). For the complex software development project the project manager should monitor the progress of the project and align it with the developed schedule for meeting the requirement of the project.
Once the project manager created the schedule for the project the baseline of the project is required to be added to it and it is required to be compared with the progress of the project. The baseline of the project also allows the project manager to compare the developed project with the schedule planned for the development for collection information about the status of the project (Turk, France & Rumpe, 2014). A proper communication is also necessary for the success of the project and it is carried out by fixing weekly team meetings and collecting the status of the project per week. This helps to develop the project within the budget and resolves any issues faced during the development of the project.
- Case 2 – When the system’s scope is variable and a lot of changes and you are happy to accommodate them.
For the software development where the system scope may vary and there is a lot of change required to be made for increasing the efficiency of the final software product the client is required to be involved in the software development. This is because changing the scope may increase the length and size of the project and thus increase the budget estimated for the development of the project (Matharu et al., 2015). For the accommodation of the changes in the project the following steps are required to be followed such as:
Understanding the outcome- For meeting the business goals the overruling focus is required to be eliminated and the development team should have a clear idea about the consequence of making any change in the project.
Critical analysis of the new ideas- this can of two types such as dynamic and passive where the client clears the requirement of the project or the requirement of the software is required to be understood by working with the client (Dingsøyr & Moe, 2013). The desired outcome of the client is required to be understood and the client is included in the planning phase for meeting the scope creep and share the idea of project development for eliminating the risk of change of scope.
DSDM Methodology
Clear definition of the scope of work- The scope of the project is required to be clearly defined and a contractual agreement is required to be created defining the in scope and out scope items of the project.
Right price- The pricing of the project varies depending on the complexity of the project and the project is required to be broken down into smaller parts for starting the development of the project and assigning resources to each of the sub modules (Peres et al., 2014). A contingency region is required to be maintained for allowing the potential discrepancies in the estimation of the cost of the project.
Documentation- The requirement of the project is required to be cleared by involving the client and the contract created for the development of the project is required to be signed by the client such that no additional work is included in the scope.
- Case 3 – Come up with a scenario where you would prefer to use Scrum instead of Kanban.
The Kanban and the Scrum methodology are applied depending the complexity and the urgency of the project. A right methodology is required to be selected for the development because it is the key factor for the success of the project (Fuggetta & Di Nitto, 2014). The scenario that is preferred for the application of the scrum and the Kanban methodology is discussed below.
When the software is required to be developed urgently within specific time and budget the Kanban software development methodology is applied. The Kanban methodology follows continuous improvement of the project and assembling the IT standards and applies them to programming advancement (Schmidt, 2016). It can be described by seven standards: dispose of waste, open up learning, and choose as late as could be expected under the circumstances, convey as quick as could be allowed, enable the group, manufacture respectability in, and see the entirety. It increases the fluidity of the project and any changes arises during the development off the project are embraced. But the scrum methodology is applied when the requirement of the project is not clear and it may change during the advancement of the project development phase. For the scenario where the time and the cost of the project are fixed the Scrum methodology is applied and the software developed is delivered to the client for analysis (Dingsøyr & Moe, 2013). It is a standout amongst the most prevalent approaches to execute Agile. It is an iterative programming model that takes after an arrangement of parts, duties, and gatherings that never show signs of change.
- Case 4 – When the system has fixed cost, no changes expected, and you have sufficient experience is developing such systems.
FDD Methodology
For the development of the system that have a fixed cost the scrum methodology is applied because with the application of the scrum methodology faster feedback can be obtained from the client that helps in clearing the requirement and develop the project according to it. The risk of change in the scope of the project can be reduced with the involvement of the client.
For the scenario when no changes are required for the development of the project Lean software development methodology is applied. This would also decrease the development time of the project and help to deliver an efficient quality software product (Vijayasarathy & Butler, 2016). The project is viewed as a whole and an effective project development team is created for the development of the project. The main focus of this methodology is reducing the wastage and increase the efficiency of the project.
For the scenario when there is insufficient experience for the development of the project the scrum methodology is applied because the progress of the development of the project is validated by the development team at an interval of 2 to 3 week (Fuggetta & Di Nitto, 2014). It helps in prioritizing the requirement and ensures that which feature is required to be developed for the advancement of the project development phases.
References
Brhel, M., Meth, H., Maedche, A., & Werder, K. (2015). Exploring principles of user-centered agile software development: A literature review. Information and Software Technology, 61, 163-181.
Dingsøyr, T., & Moe, N. B. (2013). Research challenges in large-scale agile software development. ACM SIGSOFT Software Engineering Notes, 38(5), 38-39.
Fuggetta, A., & Di Nitto, E. (2014, May). Software process. In Proceedings of the on Future of Software Engineering (pp. 1-12). ACM.
Matharu, G. S., Mishra, A., Singh, H., & Upadhyay, P. (2015). Empirical study of agile software development methodologies: A comparative analysis. ACM SIGSOFT Software Engineering Notes, 40(1), 1-6.
Peres, A. L., Da Silva, T. S., Silva, F. S., Soares, F. F., De Carvalho, C. R. M., & Meira, S. R. D. L. (2014, July). AGILEUX Model: Towards a reference model on integrating UX in developing software using agile methodologies. In Agile Conference (AGILE), 2014 (pp. 61-63). IEEE.
Schmidt, C. (2016). Discussion. In Agile Software Development Teams (pp. 115-124). Springer International Publishing.
Turk, D., France, R., & Rumpe, B. (2014). Limitations of agile software processes. arXiv preprint arXiv:1409.6600.
Vijayasarathy, L. R., & Butler, C. W. (2016). Choice of software development methodologies: Do organizational, project, and team characteristics matter?. IEEE Software, 33(5), 86-94.