Ψηφιακή ανάπτυξη Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #2 : Ευέλικτες (Agile) μέθοδοι για την ανάπτυξη λογισμικού Learning Objective : Διαδικασίες ανάπτυξης λογισμικού Filippo Lanubile Department of Computer Science, University of Bari
Σκοπός Κατανόηση των κύριων δραστηριοτήτων πίσω από την ανάπτυξη λογισμικού και πώς σχετίζονται μεταξύ τους Κατανόηση των βασικών εννοιών της ευέλικτης ανάπτυξης Προσδιορισμός ρόλων, γεγονότων και αντικειμένων του Scrum framework 3
Περιεχόμενα Διαδικασίες λογισμικού σε γενικές γραμμές και ευέλικτες διαδικασίες (agile) Ρόλοι στο Scrum framework Γεγονότα του Scrum framework Αποτελέσματα του Scrum framework 4
Διαδικασίες ανάπτυξης λογισμικού
Η διαδικασία ανάπτυξης λογισμικού Ανάγκες Νέες-τροποποιημένες Διαδικασίες λογισμικού Προϊόν λογισμικού Νέο-τροποποιημένο Μια διαδικασία λογισμικού περιγράφει τις δραστηριότητες που συμβάλλουν στην ανάπτυξη ενός προϊόντος λογισμικού και πώς οι δραστηριότητες συνδέονται μεταξύ τους Υπόθεση: η ποιότητα διαδικασίας περιλαμβάνει την ποιότητα του προϊόντος 6
Τυπικές δραστηριότητες ανάπτυξης και εξέλιξης λογισμικού Tεχνικές δραστηριότητες Ανάλυση προδιαγραφών Σχεδιασμός Εφαρμογή Έλεγχος Ανάπτυξη Λειτουργία Συντήρηση Οργανωτικές δραστηριότητες Διοίκηση έργου Διαχείριση διαμόρφωσης (configuration) Διασφάλιση ποιότητας 7
Διαδικασία Waterfall Tο έργο χωρίζεται βάσει των τεχνικών δραστηριοτήτων Tα στάδια αντιστοιχούν σε δραστηριότητες Μπορείς να προχωρήσεις στο επόμενο βήμα αφού εκπληρώσεις το τη δραστηριότητα και περάσεις το checkpoint Επιστροφή στο προηγούμενο βήμα μόνο ως εξαίρεση Προβλήματα Υψηλό ρίσκο: είναι δύσκολο Aνάλυση Σχεδιασμός Εφαρμογή Έλεγχος να διασφαλιστεί η απόλυτη επιτυχία Δυσκολία εφαρμογής όταν υπάρχει ελλιπής γνώση των προδιαγραφών Καθυστέρηση σε χρόνους time-to-market 8
Επαναληπτική διαδικασία Επίσης γνωστή ως εξελικτική, προσαυξητική κ.α. Iteration 1 Το έργο διακρίνεται σε λειτουργικά βήματα )functional subsets-iterations): Πριν την έναρξη των επαναλήψεων έχει προηγηθεί μια διερευνητική φάση Κάθε επανάληψη παράγει ελεγμένο και ενοποιημένο κώδικα (build) στο σύστημα Οι επαναλήψεις που έισάγονται σε παραγωγή ονομάζονται Iteration 2 release Time boxing: οι νέες εκδόσεις (releases) προωθούνται σε τακτικούς χρόνους Iteration 3 Εφαρμογή Έλεγχος Εφαρμογή Έλεγχος Ανάλυση Σχεδιασμός Aνάλυση Σχεδιασμός 9
There is no single way to structure software development Ad hoc ανάπτυξη (build and fix) Άρρητη γνώση Απουσία τεκμηρίωσης Προσέγγιση μη επαναλήψιμη και μεταδόσιμη μόνο μέσω μαθητείας Σχεδιασμένη ανάπτυξη (plan-driven) Σχεδιασμός δραστηριοτήτων εκ των άνω Επαρκής τεκμηρίωση Διαδικασία Waterfall Κατάλληλη για έργα με προδιαγραφές γνωστές a priori και σταθερές Ευέλικτη ανάπτυξη - Agile development Προσαρμόσιμη με περιθώρια αλλαγών επί της διαδικασίας Σύντομη τεκμηρίωση: έμφαση σε άμεση επικοινωνία προγραμματιστών Επαναληπτική διαδικασία: σύντομες επαναλήψεις με σταθερή διάρκεια (timeboxed) Example: Scrum 10
Ευέλικτη ανάπτυξη λογισμικού- Agile Software Development
Μανιφέστο για την ευέλικτη ανάπτυξη λογισμικού Ανακαλύπτουμε καλύτερους τρόπους ανάπτυξης; λογισμικού με τον τρόπο αυτό και βοηθώντας τους άλλους να κάνουν. Μέσα από αυτό το έργο δίνουμε αξία σε: Άτομα και αλληλεπιδράσεις έναντι διαδικασιών και εργαλείων Λειτουργικό λογισμικό έναντι αναλυτικής τεκμηρίωσης Συνεργασία πελατών έναντι απλή συναλλακτική συνεργασία Customer collaboration over contract negotiation Ανταπόκριση στην αλλαγή έναντι στενή προσαρμογή στο αρχικό σχέδιο Ενώ υπάρχει αξία και στα αντικείμενα στη δεξιά πλευρά, δίνουμε περισσότερη αξία στα αντικείμενα αριστερά Kent Beck - Mike Beedle - Arie van Bennekum - Alistair Cockburn - Ward Cunningham - Martin Fowler - James Grenning - Jim Highsmith - Andrew Hunt - Ron Jeffries - Jon Kern - Brian Marick - Robert C. Martin - Steve Mellor - Ken Schwaber - Jeff Sutherland - Dave Thomas
Τυπική διαδικασία agile software development Επιλογή Προσαυξητική ανάπτυξη προϊόντος Product Backlog Επανάληψη (Time-boxed) Backlog change Ανατροφοδότηση 13
Agile methods Extreme Programming (XP) Scrum Kanban 14
Extreme Programming (XP) 15
Kanban Εικονικοποίηση ροών εργασίας Περιορισμοί κατά τη διάρκεια εργασιών (Work in Progress-WIP) Συνεχείς νέες εκδόσεις 16
Scrum 17
Sprint Τα Scrum projects σημειώνουν πρόοδο μέσα από μια σειρά επαναλήψεων που ονομάζονται sprint Tο προϊόν σχεδιάζεται, παράγεται και ελέγχεται κατά τη διάρκεια ενός sprint Η τυπική διάρκεια είναι 2-4 εβδομάδες ή ένας μήνας Προτείνεται καθορισμένη διάρκεια Κατά τη διάρκεια ενός sprint, αιτήματα για αλλαγές στις προδιαγραφές δεν γίνονται αποδεκτές 18
Τέλος ενότητας
Funding This educational material is developed within the project "Open-up Entrepreneurship, OpEn", under the contract 2015-1-EL01-KA202-014168. The OpEn project is funded by the Erasmus+ programme of the European Union. The European Commission support for the production of this material does not constitute an endorsement of the contents which reflects the views only of the authors, and the Commission cannot be held responsi ble for any use which may be made of the information contained therein. 20
Notes
Σημειώσεις στην ιστορία των Published The present work is the edition 0.1 Version 22
Reference Notes Cohn, Mike. An Introduction to Scrum Mountain Goat Software LLC. Accessed 24 January 2017 <www.mountaingoatsoftware.com/agile/scrum/resources/areusable-scrum-presentation> Beedle et al. "Manifesto for Agile Software Development" Accessed 24 January 2017 <http://agilemanifesto.org> 23
License Notes The current material is available under the Creative Commons AttributionNonCommercial-ShareAlike 4.0 International license or later International Edition. The individual works of third parties are excluded, e.g. photographs, diagrams etc. They are contained therein and covered under their conditions of use in the section «Use of Third Parties Work Note». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ As Non-Commercial is defined the use that: Does not involve direct or indirect financial benefits from the use of the work for the distributor of the work and the license holder. Does not include financial transaction as a condition for the use or access to the work. Does not confer to the distributor and license holder of the work indirect financial benefit (e.g. advertisements) from the viewing of the work on website. The copyright holder may give to the license holder a separate license to use the work for commercial use, if requested. 24
Preservation Notices Any reproduction or adaptation of the material should include: the Reference Note, the Licensing Note, the declaration of Notices Preservation, the Use of Third Parties Work Note (if available), together with the accompanied URLs. 25
Note of use of third parties work This work makes use of the following works: Pictures/Shapes/Charts/Photos/Tables Extreme Programming from ronjeffries.com [Copyright 1998-forever Ronald E Jeffries], Source: http://ronjeffries.com/xprog/what-is-extremeprogramming/circles.jpg Kanban from olemortenamundsen.wordpress.com [ use as you please ], Source: https://olemortenamundsen.files.wordpress.com/2010/03/kanban_illustration.png An Introduction to Scrum, Reusable Scrum Presentation from mountaingoatsoftware.com [CC BY 3.0 (https://creativecommons.org/licenses/by/3.0/)], Source: https://www.mountaingoatsoftware.com/uploads/presentations/english- Redistributable-Intro-Scrum.ppt 26