solo iterative process - agile alliance · 2019-12-16 · solo iterative process (sip)! •...

27
8/15/12

Upload: others

Post on 22-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Page 2: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Solo Iterative Process (SIP)

•  Applicable to:

•  Small application development,

i.e. smartphone applications

•  Maintenance of stable products

•  Development of open source

•  First step towards teaching of

iterative and agile processes

2

Uljana Lopatkina

Page 3: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Software Change (SC) and SIP

3

Initiation Concept Location Impact Analysis

Prefactoring Actualization Postfactoring Conclusion

V E R I F I C A T I O N

Page 4: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Exploratory Case Study

•  Are the SC and SIP models complete? •  Do they account for programmer’s activities and tasks?

•  Is the SC model an effective process? •  Does SC model support reasonable productivity and

quality?

•  Are tasks and phases defined sufficiently? •  Do they give the programmer all necessary guidance?

4

Page 5: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Case Study Design

•  Single programmer •  Limited university programming experience

•  Technologies portfolio •  Java + Eclipse •  JUnit •  Clover Java Code Coverage & Test Optimization •  Mylyn task management + Tasktop •  Abbot Java GUI Test Framework •  Subversion + TortoiseSVN •  JRipples

5

Page 6: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Object Program

•  1070 classes – 76 KLOC •  441 unit tests •  Swing libraries •  Advanced file explorer •  Open source •  http://www.mucommander.com

6

Page 7: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Object Program GUI

7

Page 8: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

SIP Iteration Backlog

8

# Title Change Request

1 Basic Search Add a basic search function that searches in the current directory for all or part of the title of a folder or file.

2 Recursive Search Add search inside all directories.

3 Advanced Output Change the output to a window similar to the main muCommander window.

4 Date Search Add search by a date of file’s modification.

5 Case Sensitive

Search Add search by case sensitive search terms.

6 Extension Search Add search for files with specific extensions.

7 Properties Search Add search for files based on their properties.

8 Directory

Chooser Bug File chooser doesn't update the search directory.

9 Date Bug DateOption is not removed when disabled.

Page 9: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

SC 1 Basic Search

•  User story Search in the current directory for all or part of the title and return a list of the matching files and subdirectories.

•  Concepts •  search •  current directory •  matching files and subdirectories

9

Page 10: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

SC 1 Concept Location

10

Page 11: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

SC 1 Impact Analysis

11

Page 12: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

SC 1 Actualization

12

Page 13: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

SC 1 Other Phases

•  No Prefactoring •  Postfactoring

•  Deleted several unused methods •  Added comments

•  Conclusion – New Baseline

13

Page 14: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

New GUI after SC 1

14

Page 15: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

Partial UML of All 9 SC of Iteration

15

Page 16: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

GUI After Iteration

16

Page 17: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12 17

Change 1 2 3 4 5 6 7 8 9 Total/AVG

(Hours:minutes) 13:41 22:37 38:27 18:18 19:46 15:18 14:23 1:09 0:45 144:24

•  Small outliers SC 8 & 9 •  Bug fixes – no Concept Location or Impact Analysis

•  Large outlier SC 3 •  Epic – should have been divided into 2 or 3 SC

•  Range of the rest •  13:41 – 22:37 hours:minutes, i.e. ~2 – 3 working days

SC Size���

Page 18: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Productivity ���

•  Productivity SIP iteration •  4563 LOC added / 144.5 hours = 31.6 LOC per hour •  Comparable to Personal Software Process (PSP)

[W. Humphrey] •  Range 12 to 42 LOC per hour [L. Prechelt and B. Unger]

•  Added business value •  Actualization 25.6 hours •  Actualization testing 24.1 hours •  (25.4 + 24.1)/144.5 ≈ 34%

18

Page 19: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Code Quality ���

19

•  11 bugs introduced •  9 fixed immediately •  2 fixed later (changes 8 and 9) •  Added unit test class for each class •  Added functional test class for each

feature

Initiation

Concept Location

Impact Analysis

Prefactoring

Actualization

Postfactoring

Conclusion

V E R I F I C A T I O N

Page 20: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Concept Location Experience

•  Only done on 1st and 3rd SC

•  Spent only 55 min in CL (less than 1%)

•  Still indispensable key to SC

20

Initiation

Concept Location

Impact Analysis

Prefactoring

Actualization

Postfactoring

Conclusion

V E R I F I C A T I O N

Page 21: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Impact Analysis Experience

•  IA predicts Prefactoring and Actualization •  Cannot predict postfactoring •  Test class impact is difficult to predict

•  Exit Criteria •  Inspect 60% of probably impacted

classes •  Planning phase, no need for 100% accuracy •  Better exit criterion needed

21

Initiation

Concept Location

Impact Analysis

Prefactoring

Actualization

Postfactoring

Conclusion

V E R I F I C A T I O N

Page 22: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Impact Analysis Experience

•  Example of overestimate: SC 3 •  Large prefactoring •  Estimated that all 6 suppliers will be

impacted •  Only 4 were impacted

•  Example of underestimate: SC 7 •  Impact to one class missed •  Class interacted with 308 other classes

22

Initiation

Concept Location

Impact Analysis

Prefactoring

Actualization

Postfactoring

Conclusion

V E R I F I C A T I O N

Page 23: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Prefactoring Experience

•  Introduce base classes, patterns

•  Structure needed for actualization

•  Exit Criteria

•  Code is ready for actualization

•  Significant concepts of the SC have

their own class

23

Initiation

Concept Location

Impact Analysis

Prefactoring

Actualization

Postfactoring

Conclusion

V E R I F I C A T I O N

Page 24: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Actualization Experience

•  Implement and incorporate new

functionality

•  Exit Criteria •  Requirements of change request are met

•  All tests pass (unit, functional and regression)

•  Test coverage of 60% of new or modified

code

24

Initiation

Concept Location

Impact Analysis

Prefactoring

Actualization

Postfactoring

Conclusion

V E R I F I C A T I O N

Page 25: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Postfactoring Experience

•  Clean-up the consequences of actualization Technical debt can build up from previous

SCs •  Exit Criteria

•  “If it stinks, change it.” [Beck and Fowler] •  “When it no longer stinks, stop”

•  Identifiers explain responsibility •  Single significant concept per class •  …

25

Initiation

Concept Location

Impact Analysis

Prefactoring

Actualization

Postfactoring

Conclusion

V E R I F I C A T I O N

Page 26: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Conclusions and Future Work

•  Threats to validity •  Case study - generalize the results with caution

•  SC and SIP models successful in this project •  Future work

•  How applicable is the SC model to team projects? •  Is there a better Impact Analysis exit criterion? •  Can postfactoring be predicted accurately? •  Is better integration of technologies needed? •  New additional tools? (Work Metric, Exit Criteria)

26

Page 27: Solo Iterative Process - Agile Alliance · 2019-12-16 · Solo Iterative Process (SIP)! • Applicable to: ! • Small application development, i.e. smartphone applications! • Maintenance

8/15/12

Contents a New Book

•  Introduction to iterative processes •  SIP

•  Team iterative processes •  Agile •  Directed •  SC is a key part of iterations

•  Beginning and end of software life span

•  Available at Agile2012 Bookstore, Amazon, ...

27