What is the main drawback on the Waterfall model ?
What is the main drawback on the Waterfall model ? The main drawback of the waterfall model is the difficulty of accommodating changes after the process is underway. In principle, a phase has to be complete before moving onto the next phase.
Incremental development
Incremental development
Spiral Model
Advantages of Incremental development ● The cost of accommodating changing customer requirements is reduced. ○ The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model. ● It is easier to get customer feedback on the development work that has been done. ○ Customers can comment on demonstrations of the software and see how much has been implemented. ● More rapid delivery and deployment of useful software to the customer is possible. ○ Customers are able to use and gain value from the software earlier than is possible with a waterfall process.
Incremental development problems (classical vision) ● The process is not visible . ● System structure tends to degrade as new increments are added. ○ Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly. ● It is a classical vision -> answer: agile process!
Rational Unified Process (RUP) ● Rational Software Corporation ● Rational Objectory Process (ROP) in 1996 ● Use-case driven, architecture-centric, roles, tasks ● Iterative and incremental ● Unified Modeling Language (UML) ● Six “engineering disciplines” Business modelling ○ Requirements ○ Analysis and design ○ Implementation ○ Test ○ Deployment ○
What is the main issue on plan-based models?
What is the main issue on plan-based models? To use the same approach for any kind of software project!!!
No Silver Bullet! (Brooks, 1975)
Software is a wicked problem “A wicked problem is a problem that is difficult or impossible to solve because of incomplete, contradictory, and changing requirements that are often difficult to recognize. ...not all hard-to-solve problems are wicked, only those with an indeterminate scope and scale. ” Complex interdependencies! https://www.wickedproblems.com/1_wicked_problems.php
Agile Process
Agile Process ● The aim of agile methods is to reduce overheads in the software process and to be able to respond quickly to changing requirements without excessive rework. ● Deliver value to customers/users frequently ○ Satisfy the customer through early and continuous delivery of valuable software ○ Working software is the primary measure of progress ● Continuously sustainable pace ● Constant feedback ● Welcoming changes ○ Uncertain world ○ Liquid modernity - Zygmunt Bauman ○ The End of Certainty - Ilya Prigogine Agile (or Agility) is an evolutionary approach!
Agile Process ● Is driven by customer descriptions of what is required (scenarios or user stories) ● Recognizes that plans are short-lived ● Develops software iteratively with a heavy emphasis on construction activities ● Delivers multiple ‘software increments’ ● Adapts as changes occur
Agile Process ● the process molds to the needs of the people and team , not the other way around ● people on an agile team must be ○ Competence ○ Common focus and collaboration ○ Decision-making ability ○ Fuzzy problem-solving ability ○ Mutual trust and respect ○ Self-organization
Agile is evolving what fits together
Lean software development 1. Eliminate waste 2. Amplify learning 3. Decide as late as possible 4. Deliver as fast as possible 5. Empower the team 6. Build integrity in 7. See the whole
Lean Kanban and Work-In-Progress
Is Quality a variable in Agile context?
Is Quality a variable? Quality is not a variable in Agile context! Scope, Time and Resources are variables.
Problems with agile methods ● It can be difficult to keep the interest of customers who are involved in the process. ● Team members may be unsuited to the intense involvement that characterises agile methods. ● Prioritising changes can be difficult where there are multiple stakeholders ( politics!!! ). ● Maintaining simplicity requires extra work. ● Contracts may be a problem as with other approaches to iterative development.
Is Agile better than Incremental Process? Following results from Tarhan and Yilmaz [2014] ● ● Comparison demonstrated that the Agile Process had performed better than the Incremental Process in terms of ○ productivity (79%) ○ defect density (57%) ○ defect resolution effort ratio (26%) ○ test Execution V&V effectiveness (21%), and ○ effort prediction capability (4%). ● These results indicated that development performance and product quality achieved by following the Agile Process was superior to those achieved by following the Incremental Process (to short term projects [research scope]) Ayca, Seda Gunes Yilmaz, Systematic analyses and comparison of development performance and product quality of Incremental Process and Agile Process , Information and Software Technology, Volume 56, Issue 5, 2014, Pages 477-494, http://www.sciencedirect.com/science/article/pii/S0950584913002310
Large-Scale Agile Development ● Agile methods were originally developed for small organizations ● Current agile approaches do not provide good blueprints for what a scaled agile organization ● Results show that the most significant reasons for bottlenecks are related to requirements engineering . (Our next course…) Maria Paasivaara, Benjamin Behm, Casper Lassenius,Minna Hallikainen, Large-scale agile transformation at Ericsson: a case study , Empir Software Eng (2018) https://doi.org/10.1007/s10664-017-9555-8 Kai Petersen, Mahvish Khurum, Lefteris Angelis, Reasons for bottlenecks in very large-scale system of systems development , Information and Software Technology,Volume 56, Issue 10, 2014, Pages 1403-1420, http://www.sciencedirect.com/science/article/pii/S0950584914001074
Trends -> DevOps 67 https://www.enterpriseirregulars.com/116202/race-pipeline-atlassian-aint-playin-introducing-devops-marketplace/
Trends -> Scaling Agile the Spotify https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/ https://blog.crisp.se/wp-content/uploads/2012/11/SpotifyScaling.pdf http://usir.salford.ac.uk/48199/1/camera%20ready%20submitted.pdf
The software development methodologies used Survey results indicate that although agile methodologies are more prevalent than 10 years ago, traditional methodologies are still popular . L. R. Vijayasarathy and C. W. Butler, " Choice of Software Development Methodologies: Do Organizational, Project, and Team Characteristics Matter? ," in IEEE Software, vol. 33, no. 5, pp. 86-94, Sept.-Oct. 2016. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7006383&isnumber=7548893
So, what process should I use? Low High Collaboration Strictly Agile/open plan-driven source
The software development process in reality
http://agilemodeling.com/ 72
Agile Modeling ● Agile principles and practices applying for modeling ● Following Ambler (2002): ○ Agile Modeling (AM) is a chaordic, practice-based methodology for effective modeling and documentation of software-based systems.
Agile Modeling Values and Principles ● Communication ● Simplicity (Keep it simple) ○ Don’t “What if” Yourself to Death ○ Avoid applying complex patterns too soon ○ Avoid over-architecting your system to support potential future requirements ○ Avoid to develop a complex infrastructure ○ To develop a complex infrastructure ● Feedback ○ Develop the model as a team ○ Review the model with your target audience ○ Implement the model
Agile Modeling Values and Principles ● Software Is Your Primary Goal : we’re not documentation developers, or even model developers; we’re software developers. ● Travel Light : create just enough models and documentation to get by. Model with a Purpose ● ● Maximize Stakeholder Investment : System Documentation is a Business Decision , Not a Technical One ● Content is more important than representation ○ You don’t need to jump into using a complicated CASE tool right away
Agile Modeling Values and Principles ● Multiple Models ● Each artifact has an objective/semantic/strengths/weaknesses ○ Use the right tool for the job ○ No single model is sufficient for your modeling needs. ○ Start by learning a subset of artifacts ○ The UML is not complete ○ Understandability Is More Important than Following Standards Create Several Models in Parallel ● ● Iterate to Another Artifact Use the simplest tools ● ● Model with Others ○ Active Stakeholder Participation during modeling sessions ○ Display Models Publicly ● Collective Ownership -> Display Models Publicly
Agile modeling ● Modeling or documenting? 77
Agile modeling - modeling ● Modeling or documenting? ● Modeling = to make models to understand a problem ● Comprehension ● Several levels of abstraction ● Sketch ● “ Perishable ” ● Take a picture and throw in the trash 78
Agile modeling - documenting ● Modeling or documenting? ● Documenting = to make artefacts for communication ● Describe and store/registry decisions ● For “perinity” or “ posterity ” ● More details ● More structured documents (templates) ● “Formal” modeling notation -> UML, SysML, Archimate, … ● Documents aren’t always models ○ Ex.: User manual is not a model. ● Maximize stakeholder investment ● Travel light! 79
Agile modeling session 80
Agile Modeling Session 81
Agile Modeling ● Make essential modeling ● Whiteboard ● Process -> Requirements -> Architecture ● UML notation as reference -> simple diagrams ● Make several models simultaneously ● Diagrams work together (views) ● Decide -> modeling or documenting? 82
Agility beyond the hype Experiences and lessons learned from the trenches
Agile is not new...
~ 20 years!
Agile is trending...
Agile is buzzword...
Agile is a business...
But finally, what is agility in in practice?
I started working at very young age ...
Developer DevOps Engineers Software Architect Software Engineer Agile team leader R&D Engineers Manager Agile Coach System Administrator Researcher Data Scientist Professor
So, I’m here for sharing some stories and ...
Lesson #1 Is impossible possible?
When is impossible possible?
Recommend
More recommend