Scrum Agile Development

Agile software development is a collection of software development approaches focusing on iterative development in which solutions and requirements change through collaboration among self-coordinating and cross-functional teams (Abrahamsson et al., 2017). Scrum is an agile and lightweight process for managing and controlling software and developing a product in fast-changing environments. This paper explains the scrum approach and its relationship to the software development process, as well as how the software architecture process fits into the agile software development strategy.


The scrum is a highly responsive framework for building software for software projects that oversees application development or product development. The main focus is on the strategy and a flexible holistic development of a product in which the development team works together to attain their shared goals. It is appropriate to initiate a scrum when the software process becomes intricate throughout software development so that the stakeholders can guarantee the software product becomes effective. Scrum helps in getting an agile movement on a project development (Romano et al., 2015).


In a scrum, the product owner generates a prioritized product backlog. Throughout the sprint planning, a team pulls a large piece from the topmost of the product backlog and makes the decision on the manner of execution of the pieces. The team completes its work within a specified duration. The scrum master ensures that the team is focused on its goals. The work needs to be potentially shippable at the culmination of the sprint. The team determines the necessary modifications to execute the backlog item during the development. Then, the team transcribes the code and tests it and afterwards documents the essential adjustments. The team generates the executable essential to demonstrate the modifications during the wrap. The team displays the fresh features, adds fresh items of backlog and performs risk evaluation. The team then consolidates that data from the review in order to update the necessary changes as required. Following every sprint, the whole team shows the progress from sprint and review the progress of backlog. Afterward, the team reviews the residual backlog and removes, adds and reprioritizes the items as required to justify the new information and comprehension collected throughout the sprint. The cycle recurs until adequate items within the product backlog have been accomplished (Cohn, 2010).


Software Architecture Process and Agile Method of Software Development


Fitting the software architecture into the agile process necessitates developing the software architecture in an iterative way starting with an adequate definition for the team to commence development. The software architecture must guide the team in the direction that has the potential to offer them the opportunity for success with no much indication that they lack the flexibility to construct the software in an agile method (Abrahamsson et al., 2017). There exists a trade-off amongst permitting a team to select what is sensible for their project and at the same time guaranteeing that they do not choose the technologies that are not compatible with the other parts the enterprise. The tradeoff ensure that the team builds software that is able to align the general enterprise architecture with no forcing the team to utilize an architecture that will not be effective and efficient for their project (Yang et al., 2016).


Similar to any mature agile process, the agile approach to software architecture depends on giving adequate definition up front to commence, collecting feedback as the team proceeds, making necessary adjustments and iterating often to keep the design and architecture in sync with an imminent application (Yang et al., 2016). Before the initial sprint, a high level enterprise or system architecture needs to be generated if it does not previously exist and thoroughly discussed. As a potion of every sprint kicks off, a team centered design is utilized to bring up to date the as-is design from the most recent sprint to give a reason for the feature improvements and additions that will be created in the within the existing sprint. The team will utilize the new design to assist in determining what should be executed to gratify the expected design as the stories are tasked out for the developing and testing. The sprint review meetings need to present the manner in which every story fits into the larger picture of the entire application and enterprise. The sprint retrospectives need to incorporate design and architecture in the discussions of what is and what is not working.


UML Activity Diagram


Table 1: The UML diagram showing the layers of software architecture


According to Taylor et al. (2009), the software architect process includes key decisions that are made to define the major infrastructure of a technology system. These decisions consist of the functionalities of each layer, the information flow between the modules and the module deployment among others. The choices made during the decision-making processes in this context must strike a balance among the main components such as security, availability, and usability among others. The processes in software architecture are broken down into software layers with each layer assigned to architectural accountabilities that must be realized through the alignment and balancing of the processes.


The processes of alignment are placed at the upper layer of the software architecture. This is done after considering high levels of business and information architecture to develop effective software models. The balancing processes, on the other hand, are placed in the middle layer of the system. At this context, the needs of the systems are considered at the software division into layers, modules, and components. The realization processes are placed at the bottom of the software architecture. At this level, the decisions are made depending on the design patterns chosen. The patterns to use in this case depend on the software architect. However, it is the responsibility of the team to follow and understand the device (Taylor et al., 2009). Based on the above processes, the software architecture is entrenched into scrum cycles.


The Roles of Team Members Necessary to Support the Scrum Method


The team members play different key roles that are essential to support the Scrum method. The product owner shares the vision of the product to be developed, prioritizes the necessary functionalities that are to be constructed and makes appropriate decisions on behalf of the team. The product owner maintains the product backlog during the execution of a project. The scrum master guides the team, build trustworthy milieu within the team, facilitate discussions, communications, and negotiation and remove hitches and obstacles. The scrum master serves as a coach who guides the team to ever greater echelons of self-organization, performance, and cohesiveness. The scrum team makes a decision on the kind of techniques and apparatus to utilize and the team members that will carry out different tasks (Cohn, 2010).


The scrum development team has the task of developing the product. It consists of business analysts, developers, project manager, system analysts, and testers. The project manager monitors and controls the entire project. Business analyst analyzes the business that is to be developed. System analyst conducts feasibility study, design and analysis to meet the applications and users' requirements. The tester checks whether the program produced meets the requirements (Cohn, 2010). The scrum team members identify the intricacy of the tasks that are assigned to them and allocate exertions within a short period to the tasks. They communicate the project's status daily and the concerns they are facing to the scrum masters and give a demonstration of the tasks they have completed to the product owners throughout the sprint reviews.


Conclusion


The scrum process allows an organization to adjust efficiently to the faster changing requirements and create a product that meets the ever-changing goals of the business. The agile scrum process helps the organization to augment the quality of deliverables and cope appropriately with changes.


References


Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2017). Agile software development methods: Review and analysis. arXiv preprint arXiv:1709.08439.


Cohn, M. (2010). Succeeding with agile: software development using Scrum. Pearson Education.


Romano, B. L., & Da Silva, A. D. (2015, April). Project management using the Scrum agile method: A case study within a small enterprise. In Information Technology-New Generations (ITNG), 2015 12th International Conference on (pp. 774-776). IEEE.


Taylor, R. N., Medvidovic, N., & Dashofy, E. M. (2009). Software architecture: foundations, theory, and practice. Wiley Publishing.


Yang, C., Liang, P., & Avgeriou, P. (2016). A systematic mapping study on the combination of software architecture and agile development. Journal of Systems and Software, 111, 157-184.

Deadline is approaching?

Wait no more. Let us write you an essay from scratch

Receive Paper In 3 Hours
Calculate the Price
275 words
First order 15%
Total Price:
$38.07 $38.07
Calculating ellipsis
Hire an expert
This discount is valid only for orders of new customer and with the total more than 25$
This sample could have been used by your fellow student... Get your own unique essay on any topic and submit it by the deadline.

Find Out the Cost of Your Paper

Get Price