Agile Values
Introduction to Agile Processes
The Agile Methodology was developed in early years of 21st century to help individuals and groups for the purpose of better interactions over developments and tools (Ambler, 2012). Agile Software Manifesto is made up of a set of values and principles which describes what exactly agile methodology is (Ambler, 2012).
Agile Values
- Adopting Interactions amongst individuals over tools and processes
- Choosing Working Software instead of completing documentation
- Collaboration with customer rather than negotiating over contract and,
- Instead of traditionally following a set up plan, adopting to respond to change.
Agile Principles
- Customer’s satisfaction with the software and delivery time is the highest priority
- Even if customer demands changes at a later stage of development, it can be accommodated with ease.
- Instead of delivering complete software at once, in agile a working software is delivered at short span of intervals with every time something added features to it
- Developer’s team works in collaboration with Business Analyst on daily basis and ensures face-to-face conversations.
- Promotes sustainable development. Simultaneous work available for users, developers and sponsors.
Agile methodology is supported with the help of many frameworks such as Behavior Driven Development (BDD), Agile Unified Process, Lean Development, SCRUM framework and many others. SCRUM is considered simple and a complete methodology for the purpose of managing product development (Highsmith, 2015). This document aims to explain SCRUM framework in order to adopt it as the internal system development at Southern Cross University.
SCRUM Framework
SCRUM framework has the capability to employ multiple techniques and methods instead of one method and technique for the development of product software (Highsmith, 2015). The tasks in a SCRUM framework are team based and explain rules, artifacts, events and associated roles. There are three teams that have major roles within this methodology which are:
- The owner of the product who is responsible for representing the stakeholders.
- Business Analyst or SCRUM master who is responsible for managing the development team and entire process of SCRUM
- Development team who in actual will work upon developing the actual software.
The delivery of every project is made in terms of small iterations which are highly flexible and complete in them (Paetsch, Eberlein and Maurer, 2013). Iteration is delivered at the end of every sprint in a tangible manner. The below figure explains SCRUM framework
Project backlog is maintained to keep a record of project requirements and is updated on regular basis (Paetsch et al., 2013). User Stories is a feature that is associated with project backlog. Depending upon the user stories and work complexity business analyst and development team design work divided into 1 to 4 cycles on the basis of descending priority order which is achievable per cycle. This acts as the subset of user stories and maintained by iteration backlog that has been planned for iteration delivery in 2 weeks period (Paetsch et al., 2013).
The meetings involved under SCRUM framework development process are:
Sprint Planning: Project Scope, user stories and similar other issues are discussed in this meeting. Plan is developed for iteration delivery along with acceptance criteria (Jacobsen, Christerson, Jonsson and Overgaard, 2014).
Daily Review: To determine the current progress of product development and testing phase. Problems and risks associated with testing and development are made clear (Jacobsen et al., 2014).
Sprint Review meeting: After a sprint ends, deliverables are presented to customers and further product is developed depending on mutual agreement (Jacobsen et al., 2014).
Sprint Retrospective meeting: To discuss the accomplishments and to discuss what went wrong and how it can be improved (Jacobsen et al., 2014).
WHY SCRUM?
SCRUM is a solution for building software incrementally in most complex environments. SCRUM is equipped with pragmatic powers which allow it to develop as near to the verge of chaos as it can be endured by the association. As there a provision for daily review meeting in the SCRUM methodology, any slip is immediately detected and handled (Beck, 2009). SCRUM is a value driven development method i.e. often in the heat of other important tasks and deadlines such as constrain costs, delivery slipped dates product owner often tends to forget what value the project will deliver. SCRUM works to deliver value product and it is often expressed as a function of owner’s choice of functionality, time, quality and cost (Vijayasarathy and Turk, 2008).
SCRUM Framework
value = f(functionality, time, quality, cost)
All four variables are managed by product’s owner and the development is authorized sprint by sprint. Also, owner has the rights to alter any of the four value driven variables depending upon the progress to date and value delivered (Song and Osterweil, 2011).
For example: In case of deregulation, there may be a significant change in company’s energy project. In this case owner can opt to increase cost a little and bring the project within dates to maximize its value.
Primavera Systems is an example that opted to implement SCRUM framework for their product development and was amongst the one of the company to share their agile success story (Richard, 2016). It is a software company that was at the brink of closing in the year 2003 due to not able to serve their customers with valuable software and products. After they opted for SCRUM, their productivity rose to double and overtime got reduced to nearly zero. Product owners got fully engaged with development team and a better product was built in less time. In later years company was bought by Oracle (Richard, 2016).
These factors make SCRUM the best option to be adopted for the internal system development of Southern Cross University (Richard, 2016).
Different Projects using SCRUM
Generally people have the thought process that SCRUM works well only with small scale organizations where project development will usually be small but this is not true. This also doesn’t mean that SCRUM will work for all kind of organizations, but size is not the true factor to determine the ability of SCRUM (Nandhakumar and Avison, 2014).
SCRUM works best for the projects that are under tight deadlines, contains a high level of complexity and possess a high level originality which can be enhanced during development. SCRUM is usually adopted for the innovative projects where there is a scope to discover something new. In case the similar project has already been developed previously it doesn’t require agile approach as the level of novelty will be low (Miller, 2011).
Also, there are some projects with pre-fixed requirements that could be altered at any cost, such as aerospace industry. It has some of its predefined perimeters that have to be exactly followed without making any changes to them. In these kinds of projects, the agile approach is generally not a good idea.
Using SCRUM approach for the Southern Cross University process will be an advantage as the university is open to innovation at every step forward. Also, all the innovations added to the system will directly be handled by the university itself and in case it doesn’t like something it can be changed at that very moment.
Aspects of Agile Methodology
XP, termed as Extreme Programming framework of agile methodology is amongst the best options to be adopted for the organization’s system development process as the values that it covers are the key aspects to an organization, such as: Communication: The views of both user and system’s team must match, Simplicity: All efforts are focused on today’s requirements instead worrying about tomorrow, Feedback: Both ends are responsible to provide general feedback in each case, Courage: System development team is able to refactor the code if required and Respect: It is expected to respect each and everyone’s work in the team (Feller and Fitzgerald, 2016).
All these factors are self-explanatory why adopting XP framework would be a good idea for the organization.
Another framework that could be adopted across the organization is SCRUM as we have already discussed it usage in the above sections (Cockburn, 2014). Though in SCRUM it may not be the best framework for systems who have predefined terms and conditions and do not require alterations but at some point of time in the later stages changes might be needed. Also, as there is a provision of daily meetings in SCRUM, team will be able to discuss their problems and clear out all the obstacles that might be coming (Feller and Fitzgerald, 2016).
Conclusion
Thinking agile means a people-centric assessment of the software to be developed. Traditional approaches are too mechanistic, thus makes them a topic for argument. Also, according to a recent research it has been proved that agile teams have increased profit rates 38% faster than non-agile companies and has been able to generate 40% more revenue. Productivity, flexibility and higher speed achieved are the key drivers of agile framework and attracting more and more organizations to switch their technology.
However, one must decide the correct and appropriate technology depending upon the business needs and it could also be the combination of both agile and waterfall.
References
Ambler, S. (2012). Agile Modeling: Effective Practices for Extreme Programming and the Unified Process. New York, John Wiley & Sons, Inc. New York.
Beck, K. (2009). Embracing Change with Extreme Programming. In: Computer, v. 32, Issue 10, pp 70-77.
Cockburn, A. (2014). Agile Software Development Joins the “Would-Be” Crowd. Cutter IT Journal 15(1): 6-12.
Feller, J. and Fitzgerald, B. (2016). A Framework Analysis of the Open Source Software Development Paradigm. 21st Annual International Conference on Information Systems, Brisbane, Australia.
Highsmith, J. A. (2015). Adaptive Software Development: A Collaborative Approach to Managing Complex Systems. New York, NY, Dorset House Publishing.
Jacobsen, I., Christerson, M., Jonsson, P., and Overgaard, G. (2014). Object-Oriented Software Engineering: A Use-Case-Driven Approach. Reading, MA, Addison-Wesley.
Miller, G. G. (2011). The Characteristics of Agile Software Processes. The 39th International Conference of Object-Oriented Languages and Systems (TOOLS 39), Santa Barbara, CA.
Nandhakumar, J. and Avison, J. (2014). The fiction of methodological development: a field study of information systems development. Journal of Information Technology & People, 12(2): 176-191.
Paetsch, F., Eberlein, A., and Maurer, F. (2013). Requirements Engineering and Agile Software Development. In Proceedings of the Twelfth international Workshop on Enabling Technologies: infrastructure For Collaborative Enterprises. WETICE. IEEE Computer Society, Washington, DC.
Richard, J. (2016). PRIMAVERA SYSTEMS, SCRUM Case Studies, Retrieved on 10th Sept 2018.
Song, X. and Osterweil, L. J. (2011). Comparing design methodologies through process modeling. 1st International Conference on Software Process, Los Alamitos, Calif., IEEE CS Press.
Vijayasarathy, L. R. and Turk, D. (2008). Agile Software Development: A Survey of Early Adopters, Journal of Information Technology Management, v. XIX, n. 2, p. 1- 8.