OPEN DEVELOPMENT, AGILE, XP AND SCRUM © University of LiverpoolCOMP 319slide 1.

Slides:



Advertisements
Similar presentations
Software Engineering Key construction decisions Design challenges.
Advertisements

Robert Lockyer.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
The Cathedral and the Bazaar: A Look at Open-Source ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Software Engineering Teams Group 3 presents: Teamwork is the ability to work together toward a common vision. The ability to direct individual accomplishments.
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
The Surgical Team A different kind of team build By Chris Bradney A different kind of team build By Chris Bradney.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Chapter 1: Key Points Program = Useful to the programmer in the garage Programming Product = Useful to anyone Programming System Component = Part of a.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Feb. 2, 2004CS WPI1 CS 509 Design of Software Systems Lecture #3 Monday, Feb. 2, 2004.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
Introduction to Agile.
Lessons Learned: The Evolving Nature of Mobile Websites Presented for The New England Chapter of ASIS&T (NEASIS&T) by Edward Iglesias Systems Librarian,
Introduction to Continuous Integration Mike Roberts.
Evolution Patterns of Open-Source Software Systems and Communications Review Report By Haroon Malik.
Open Source Software Development (Adapted from Dr. Kostadin Damevski) Sung Hee Park Department of Mathematics and Computer Science Virginia State University.
Miguel Nunes Information Systems Project Management IS Project Resources.
1 RH033 Welcome to RedHat Linux. 2 Hardware Requirements ♦ Pentium Pro or better with 256 MB RAM ♦ Or ♦ 64-bit Intel/AMD with 512 MB RAM ♦ 2-6 GB disk.
Computers & Employment By Andrew Attard and Stephen Calleja.
Considering Open Source? Is developing an open source project right for you?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
LIS508 lecture 9: GNU & introduction to networks Thomas Krichel
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
Agile Programming Principles.
How I learned to stop worrying and love Open Source Software... Colin M. Sharples Advisory IT Specialist IBM Business Consulting Services SQNZ 21 October.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
6-January-2003cse Introduction © 2003 University of Washington1 Introduction CSE 403, Winter 2003 Software Engineering
CIS 191 – Lesson 2 System Administration. CIS 191 – Lesson 2 System Architecture Component Architecture –The OS provides the simple components from which.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
1 Today’s Plan In Class Exam – Quick Review Thoughts on your Junior Projects, cntd People and Roles on Projects.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
CPS 82, Fall Open Source, Copyright, Copyleft.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Open Source Software Architecture and Design By John Rouda.
University of Waterloo How does your software grow? Evolution and architectural change in open source software Michael Godfrey Software Architecture Group.
CSC 395 – Software Engineering Lecture 5: Teams -or- How to Motivate and Manage the Unwashed Masses.
Advanced Software Development & Engineering 1 Theme Introduction.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
3/30/04 16:14 1 Lessons Learned CERES Data Management Presented to GIST 21 “If the 3 laws of climate are calibrate, calibrate, calibrate, then the 3 laws.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS3100 Software Project Management Agile Approaches.
Free Software: History, Perspectives and Implications.
CSNB334 Advanced Operating Systems 1. Introduction to Linux Lecturer: Abdul Rahim Ahmad.
 Programming - the process of creating computer programs.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Chapter Three The Surgical Team. The Problem Large Group – 10:1 productivity and 5:1 program speed and space management. – Negative aspect Sheer number.
The Interactive Media Industry Organisational Structures and Job Roles Research: Skillset.org.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
CompSci Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7.
The Surgical Team Jacob Harper. The Problem Good Programmer vs Poor Programmer  10 times more productive 200 man project  25 manager, 175 programmers.
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Embedded Systems Software Engineering
The Software Development Cycle
OPEN DEVELOPMENT, Agile, xp AND SCRUM
What do you need to know about XP?
Open Source Business Models
Chapter 3 – Agile Software Development
The Software Development Cycle
Presentation transcript:

OPEN DEVELOPMENT, AGILE, XP AND SCRUM © University of LiverpoolCOMP 319slide 1

Linux a brief history GNU project  Richard Stallman  C compiler released in 1987 Minux  Andrew S. Tanenbaum  12,000 lines of C and 8086 assembler Linux  Linus Torvald 1991 Linux distribution today  Linux kernel (3%) + GNU software (28%) + others © University of LiverpoolCOMP319slide 2

Cathedral and the Bazaar Eric Raymond in 1997 published The Cathedral and the Bazaar He conjectured that there were essentially two ways to engineer software 1. In the cathedral, and 2. In the bazaar © University of LiverpoolCOMP319slide 3

Cathedral approach (e.g. IBM, MS) Leads to large complex programs such as operating systems These projects were worked on by teams of “high-priests/cathedral builders” The product was essentially completed when released for sale Were the province of large organisations © University of LiverpoolCOMP319slide 4

The Bazaar Approach A large network of communicating developers all interested in the solution “Release early. Release often. And listen to your customers” - Linus’ principle “Given enough eyeballs, all bugs are shallow'' - Linus' law coined by Raymond Source freely available and everyone encourage to take part as equals © University of LiverpoolCOMP319slide 5

Open source development All code open to peer review Large tester base (need to early and frequent code releases, early Linux was released daily) Open source code/testing debugging  testing frameworks  Run the code using source code debugger © University of LiverpoolCOMP319slide 6

Case study (fetchmail) Raymond set out to discover why the bazaar approach worked About increasing personal productivity About open source, open management, open goals “egoless programming” Weinberg © University of LiverpoolCOMP319slide 7

fetchmail Lessons 1-6 Personal commitment to the software Use what is available One will get thrown away The individual (interest) is central Interest is not necessarily sustained Users like helping; become developers © University of LiverpoolCOMP319slide 8

fetchmail Lessons 7-11 Release early & often. Listen to your customers Many eyes make debugging light Get data structures right, code follows Testers are your most valuable resource Recognise good ideas from others © University of LiverpoolCOMP319slide 9

fetchmail Lessons 7-11 Release early & often. Listen to your customers Many eyes make debugging light Get data structures right, code follows Testers are your most valuable resource Recognise good ideas from others © University of LiverpoolCOMP319slide 10

fetchmail Lessons Recognise your poor ideas Design perfection comes from pruning Good software is used in unexpected ways Don’t throw information away Beware of pseudo-secrets © University of LiverpoolCOMP319slide 11

Syntactic sugar is your friend public int X{ // C# get { return x; } set { x = value; } } Generics (always use if relevant!) For each Java ArrayList list=new ArrayList (); for (Person person : list) { } Make’s code tighter © University of LiverpoolCOMP319slide 12

Surgical Teams Observations on team working – Brooks Roles: surgeon, co-pilot, administrator, editor, 2 secretaries, program clerk, toolsmith, tester, language lawyer. 10 roles; around two surgeons one taking the lead and dedicated to the project Teams of 10 do the surgery © University of LiverpoolCOMP319slide 13

1970s Perspective © University of LiverpoolCOMP319slide 14 PDP 11  Max 128K RAM  Cost about £12,000 then, equivalent of around £124,000 Applications at the time  Therac-25 radio therapy  Air traffic control

The Surgeon role Involved in overall system architecture Defines functional and performance specification Writes documentation Uses HLL and CASE tools Experienced and well paid © University of LiverpoolCOMP319slide 15

Co-Pilot Role Can do whatever the surgeon can Shares in the design as a thinker, discussant, and evaluator Represents the team and acts as interface May write code but is not responsible for it Less experienced, younger © University of LiverpoolCOMP319slide 16

Administrator, editor, support Administrator deals with staff, money, space. Liaises with the rest of the organisation. Usually serves two teams. Editor generates final documentation, nurses it through to publication Clerical and secretarial support is vital for the administrator and editor © University of LiverpoolCOMP319slide 17

Program Clerk, Toolsmith Clerk maintains all technical records as a librarian and as a secretary is responsible for machine, and paper files Toolsmith is an expert who evaluates, upgrades, customises, builds tools as required by the surgeon and team © University of LiverpoolCOMP319slide 18

Tester, Language Lawyer Tester generates test cases and writes the test environment. S/he confirms that the functional requirements are met Language Lawyer is the HLL expert who thinks up neat, efficient ways to do difficult and obscure things. Will be constantly researching good technique. One lawyer serves several teams © University of LiverpoolCOMP319slide 19

Surgical team structure C21 st Software team leader and junior programmer Tester Project manager/administrator Everything else done by  IDE and debugging, re-factoring tools  OO patterns  Source control systems © University of LiverpoolCOMP319slide 20