File size: 27,576 Bytes
48e7c56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677







BSc: Lean Software Development
==============================






Contents
--------


* [1 Lean Software Development](#Lean_Software_Development)
	+ [1.1 Short Description](#Short_Description)
	+ [1.2 Prerequisites](#Prerequisites)
		- [1.2.1 Prerequisite subjects](#Prerequisite_subjects)
		- [1.2.2 Prerequisite topics](#Prerequisite_topics)
	+ [1.3 Course Topics](#Course_Topics)
	+ [1.4 Intended Learning Outcomes (ILOs)](#Intended_Learning_Outcomes_.28ILOs.29)
		- [1.4.1 What is the main purpose of this course?](#What_is_the_main_purpose_of_this_course.3F)
		- [1.4.2 ILOs defined at three levels](#ILOs_defined_at_three_levels)
			* [1.4.2.1 Level 1: What concepts should a student know/remember/explain?](#Level_1:_What_concepts_should_a_student_know.2Fremember.2Fexplain.3F)
			* [1.4.2.2 Level 2: What basic practical skills should a student be able to perform?](#Level_2:_What_basic_practical_skills_should_a_student_be_able_to_perform.3F)
			* [1.4.2.3 Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?](#Level_3:_What_complex_comprehensive_skills_should_a_student_be_able_to_apply_in_real-life_scenarios.3F)
	+ [1.5 Grading](#Grading)
		- [1.5.1 Course grading range](#Course_grading_range)
		- [1.5.2 Course activities and grading breakdown](#Course_activities_and_grading_breakdown)
		- [1.5.3 Recommendations for students on how to succeed in the course](#Recommendations_for_students_on_how_to_succeed_in_the_course)
		- [1.5.4 Course activities and grading breakdown](#Course_activities_and_grading_breakdown_2)
	+ [1.6 Resources, literature and reference materials](#Resources.2C_literature_and_reference_materials)
		- [1.6.1 Open access resources](#Open_access_resources)
		- [1.6.2 Closed access resources](#Closed_access_resources)
		- [1.6.3 Software and tools used within the course](#Software_and_tools_used_within_the_course)
* [2 Teaching Methodology: Methods, techniques, & activities](#Teaching_Methodology:_Methods.2C_techniques.2C_.26_activities)
	+ [2.1 Activities and Teaching Methods](#Activities_and_Teaching_Methods)
	+ [2.2 Formative Assessment and Course Activities](#Formative_Assessment_and_Course_Activities)
		- [2.2.1 Ongoing performance assessment](#Ongoing_performance_assessment)
			* [2.2.1.1 Section 1](#Section_1)
			* [2.2.1.2 Section 2](#Section_2)
			* [2.2.1.3 Section 3](#Section_3)
			* [2.2.1.4 Section 4](#Section_4)
			* [2.2.1.5 Section 5](#Section_5)
			* [2.2.1.6 Section 6](#Section_6)
			* [2.2.1.7 Section 7](#Section_7)
		- [2.2.2 Final assessment](#Final_assessment)



Lean Software Development
=========================


* **Course name**: Lean Software Development
* **Code discipline**: XYZ
* **Subject area**:


Short Description
-----------------


This course covers the following concepts: Fundamental principles of producing software as a creative act of the human mind; Techniques to optimize such production, with specific focus on agile methods.



Prerequisites
-------------


### Prerequisite subjects


### Prerequisite topics


Course Topics
-------------




Course Sections and Topics
| Section | Topics within the section
 |
| --- | --- |
| Software as a creative activity | 1. Nature of software
2. Software and art
3. Core resources for the production of software
4. Tame and wicked projects
5. Organizing the activities based on the GQM approach
 |
| Measurement in software | 1. Meaning of measures
2. The representational theory of measurement
3. Measurement scales
4. Fundamental measures for the production of software
5. Procedural measures
6. Object Oriented measures
 |
| Taylorism and Fordism | 1. The increase of productivity in the idea of Taylor
2. The role of division of work
3. Planning and formalization of tasks
4. Economies of scale
5. Problems in understanding tasks
6. Taylorism/Fordism and software development
 |
| Lean and Agile | 1. Taiichi Ono and the Toyota Production System
2. Creating a “Radiography” of the Production Process
3. Workers involvement
4. “Pull” and Not “Push”
5. Kanban
6. Quality management
7. Process control
8. Job enrichment
9. Control and coordination mechanisms
10. Case study: Extreme Programming
 |
| Issues in Lean and Agile | 1. The “Hype of Agile”
2. The dark side of agile
3. Skepticism about agile methods
4. Knowledge and software engineering
5. Using burn-down charts
6. The Zen of agile
 |
| Structuring a Lean Approach to software development | 1. Existing proposals to create a “Lean Software Development”
2. Sharing a common vision
3. Depriving gurus of their power
4. GQM+
5. Applying the GQM+ step-by-step
6. Business alignment
7. GQM+ for business alignment
 |
| Optimizing the development process | 1. Why the PDSA does not work in software
2. The experience factory
3. The QIP cycle
4. Non invasive measurement
5. The big-brother effect
6. The role of autonomation
7. Employing Andon boards
 |


Intended Learning Outcomes (ILOs)
---------------------------------


### What is the main purpose of this course?


This course exposes the student to the core concepts behind Lean Development in Software Engineering, beyond myths and legends, emphasizing how it relates to the general principles of Lean Development. It discusses the different possible software processes, how they can be tailored, enacted, and measured. In addition, a significant part of the course is centered around the application of lean to software development to knowledge intensive areas not necessarily connected to software.



### ILOs defined at three levels


#### Level 1: What concepts should a student know/remember/explain?


By the end of the course, the students should be able to ...



* creative nature of software production as an act of creativity of the human mind,
* the substantial differences between tame and wicked problems,
* the core concepts of measurement in software engineering,
* the fundamentals of Taylorist/Fordist approaches to (software) production,
* the basis of lean and agile software development,
* the “dark” side of agility,
* the importance of knowledge and knowledge sharing in producing software,
* how to create an ad-hoc process for a development organization.


#### Level 2: What basic practical skills should a student be able to perform?


By the end of the course, the students should be able to ...



* when a problem is “easy to solve” provided enough effort is put to such solution and when it is not,
* what is a measure in general,
* why it is important and how we can define and perform measurements in software engineering, especially in lean and agile development environments,
* how to organize the development process to collect metrics non invasively,
* the difference between pulling and pushing in (software) development,
* the fundamental principle of agility,
* the risk intrinsic in the dark side of agile,
* how to organize an agile development process based on the definition of overall Goals, associated Question, and milestones based on Metrics,
* an environment based on experience, like the Experience Factory.


#### Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?


By the end of the course, the students should be able to ...



* Compute the fundamental software metrics to track the evolution of a project,
* Organize the aims of a (software) development organization in terms of Goals, Questions, and Metrics,
* Create a tailored (lean and agile) development process for an organization producing software,
* Define a path to insert and manage such (lean and agile) development process into an organization producing software,
* Structure the experience gathering during inside an organization to based on it the future strategic decision of such organization,
* Relate the various proposals for Agile Methods to the overall principles of Lean Management,
* Define a suitable (lean) process for a new organization, a process to introduce and institutionalize it, and an approach to measure the outcome of such introduction and institutionalization.


Grading
-------


### Course grading range





| Grade | Range | Description of performance
 |
| --- | --- | --- |
| A. Excellent | 91-100 | -
 |
| B. Good | 76-90 | -
 |
| C. Satisfactory | 51-75 | -
 |
| D. Poor | 0-50 | -
 |


### Course activities and grading breakdown





| Activity Type | Percentage of the overall course grade
 |
| --- | --- |
| Class and lab participation (including class quizzes) | 20
 |
| Project | 40
 |
| Oral Exam | 40
 |


Each activity is mandatory and failing any component of the course implies failing the entire course and go to the retake, apart from the students declaring at the beginning of the course that they aim for a C, in which case the rule below applies.


Students will be asked to define their learning goals at the beginning of the course and will have a personalized evaluation framework. In particular:



* Students aiming for a C can focus on attending lectures and having a pre-oral at the end of week 2, passing which they can achieve their goal, provided that they actively attend and participate at all lectures, including the final presentations;
* Students aiming for a B and A in addition to attending lecture and labs, sustaining an oral, also need to have a project with a clear output as written below, including a report and a presentation at the end.


### Recommendations for students on how to succeed in the course


The goal of the project is to read the book and understand what is the takeaway for software engineering, considering three fundamental aspects: a) the process to follow, b) the product being built c) the structure of the team and its organization. The projects will be executed in weekly iteration on traceable files.


The projects will be partially graded weekly (30%) and part at the end (70%). Moreover, at the end you will need to give a 5-minute presentation of your work.


During the first week of the project you will create the overall GQM of the project and you will be evaluated based on it during the second week. During the second week of the project you will also create the vision of your project with a roadmap. From the third week onward you will start to have the reviews of your project increments in terms of the a) progresses toward the completion b) accurate planning based on the defined GQM, and c) quality of the work. Weekly grade ranges from 0 to 2 points.


The overall project success will be evaluated as following:



### Course activities and grading breakdown





| Grade | Project outcome
 |
| --- | --- |
| A (100%) | In-depth analysis of the subject under investigation with original ideas for SE and practical experiments
 |
| B (80%) | In-depth analysis of the subject under investigation with original ideas for SE
 |
| C (60%) | Analysis of the subject under investigation, highlighting general ideas for SE, without novelty
 |
| D (0%) | No activities
 |


Resources, literature and reference materials
---------------------------------------------


### Open access resources


* Textbook: Andrea Janes and Giancarlo Succi. Lean Software Development in Action. Springer, Heidelberg, Germany, 2014. ISBN 978-3-662-44178-7. doi: 10.1007/978-3-642-00503-9.
* Reference: James P. Womack and Daniel T. Jones. Lean Thinking: banish waste and create wealth in your corporation. Lean Enterprise Institute. Simon & Schuster, 1996. ISBN 9780684810355.
* Reference: Taiichi Ohno. Toyota production system: beyond large-scale production. CRC Press, 1988
* Reference: James P. Womack. Lean Thinking. Simon & Schuster, Limited, 1997. ISBN 9780671004712.
* Reference: James P. Womack, Daniel T. Jones, and Daniel Roos. The Machine That Changed the World: The Story of Lean Production. Harper Perennial modern classics. HarperCollins, 1991. ISBN 9780060974176.
* Reference: Mary Poppendieck and Tom Poppendieck. Implementing Lean Software Development: From Concept to Cash. A Kent Beck signature book. Addison-Wesley, 2007. ISBN 9780321437389.
* Reference: C.M. Christensen. The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail. Management of innovation and change series. Harvard Business School Press, 1997. ISBN 9780875845852.


### Closed access resources


### Software and tools used within the course


Moodle, Miro, Overleaf



Teaching Methodology: Methods, techniques, & activities
=======================================================


Activities and Teaching Methods
-------------------------------




Activities within each section
| Learning Activities | Section 1 | Section 2 | Section 3 | Section 4 | Section 5 | Section 6 | Section 7
 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Homework and group projects | 1 | 1 | 1 | 1 | 1 | 1 | 1
 |
| Reports | 1 | 1 | 1 | 1 | 1 | 1 | 1
 |
| Oral polls | 1 | 1 | 1 | 1 | 1 | 1 | 1
 |
| Discussions | 1 | 1 | 1 | 1 | 1 | 1 | 1
 |


Formative Assessment and Course Activities
------------------------------------------


### Ongoing performance assessment


#### Section 1





| Activity Type | Content | Is Graded?
 |
| --- | --- | --- |
| Question | Provide examples of creativity in the production of software. | 1
 |
| Question | Describe the differences between tame and wicked projects. | 1
 |
| Question | Discuss the key resources needed for the production of software. | 1
 |
| Question | What are key issues in creative production of software for distributed teams? | 1
 |
| Question | Provide examples of wicked problems from your everyday life | 0
 |
| Question | Evidence wickedness in different aspects of software production | 0
 |
| Question | Create a GQM for your aims of the semester | 0
 |
| Question | Discuss the role of GQM in tame and wicked projects | 0
 |


#### Section 2





| Activity Type | Content | Is Graded?
 |
| --- | --- | --- |
| Question | Provide examples of the representational theory of measurement | 1
 |
| Question | List the measurement scales | 1
 |
| Question | Present for each measurement scale the operations that can be performed on it | 1
 |
| Question | Discuss the representational condition | 1
 |
| Question | What are key size metrics? | 1
 |
| Question | What are key complexity metrics? | 1
 |
| Question | Provide examples of subjective and objective metrics | 0
 |
| Question | List 3 direct and 3 indirect measures, evidencing also the problems connected to the construction of indirect measures | 0
 |
| Question | Compute LOC and other size metrics for code snippets | 0
 |
| Question | Compute MCC and other complexity metrics for code snippets | 0
 |
| Question | Compute the metrics of the CK suite for portions of Object Oriented systems | 0
 |


#### Section 3





| Activity Type | Content | Is Graded?
 |
| --- | --- | --- |
| Question | Detail the fundamental assumptions by Taylor | 1
 |
| Question | What are the fundamental activities of managers according to Taylor? | 1
 |
| Question | In which sense Taylor has influenced what we now consider “good management practices?” | 1
 |
| Question | How does creativity relates to the “good management practices” of Taylor? | 1
 |
| Question | What are the problems in applying Fordism/Taylorism to software development? | 1
 |
| Question | Provide examples of companies where the approach by Taylor has been successful | 0
 |
| Question | Discuss how the approach of Taylor can be useful in attracting and/or retaining employees | 0
 |
| Question | Analyse the fundamental activities of managers according to Taylor and determine their limits | 0
 |
| Question | Determine the fundamental activities of managers according to Taylor can have an implication in the software crisis | 0
 |
| Question | Outline how flexibility and variable requirements can be handled in the context of Taylorism and Fordism | 0
 |


#### Section 4





| Activity Type | Content | Is Graded?
 |
| --- | --- | --- |
| Question | Present the key problems in batch production | 1
 |
| Question | Outline the key principles of the approach of Ono at Toyota | 1
 |
| Question | What are the fundamental steps in eliminating waste according to Ono? | 1
 |
| Question | Details the role of the customers and of the workers in the approach of Ono | 1
 |
| Question | Explain the difference between “Pulling” and “Pushing” | 1
 |
| Question | What are key steps in improving quality according to Ono? | 1
 |
| Question | What are the key control and coordination mechanisms available? | 1
 |
| Question | What are the fundamental two actions needed to perform a Lean transformation according to Ono? | 0
 |
| Question | What are the associated three major needs? | 0
 |
| Question | What are the 5 steps to enact Lean Thinking according to Womak and Jones? | 0
 |
| Question | Discuss the 8 constantly ongoing activities in a lean company like Toyota | 0
 |
| Question | How can activities been classified in a decision matrix in an environment like Toyota? | 0
 |
| Question | Provide concrete examples of “Push” and of “Pull” in software production. | 0
 |
| Question | Details the control and coordination mechanisms present in agile and in traditional development environments. | 0
 |


#### Section 5





| Activity Type | Content | Is Graded?
 |
| --- | --- | --- |
| Question | What is the Gartner’s Innovation Hype Cycle? Could you provide examples of application of it to a different field of knowledge? | 1
 |
| Question | Describe the so-called “Dark Agile Manifesto” | 1
 |
| Question | What are the sources of the skepticism present with respect to Agile? | 1
 |
| Question | What makes agile awkward in the eyes of “traditional” managers? | 1
 |
| Question | Given a production system, how do you determine what is the value of every step, how much improvement can be considered enough, and when is the point reached where value is not increased anymore but destroyed? | 1
 |
| Question | How is it possible to obtain knowledge about the production process? How can I create visibility of the ongoing activities or problems? | 1
 |
| Question | Identify in other areas of software engineering phenomenon similar to the “Dark Side of Agile.” | 0
 |
| Question | Identify in other knowledge-intensive fields phenomena similar to the “Dark Side of Agile” and discuss how they can be tackled. | 0
 |
| Question | Given a production process, determine strategies to store knowledge to create experience? | 0
 |
| Question | How can you design the production process so that the team uses the gained experience? | 0
 |
| Question | How can you systematically improve your process, also building on the experience to anticipate problems (create wisdom)? | 0
 |


#### Section 6





| Activity Type | Content | Is Graded?
 |
| --- | --- | --- |
| Question | Reflect on the seven principles for characterizing Lean Software Development by Mary and Tom Poppendieck. | 1
 |
| Question | What is the semantic gap and which threats it poses to effective software development? | 1
 |
| Question | Map the structure of Extreme Programming to the layered structure of Shalloway et al. | 1
 |
| Question | How does the scientific method deprives gurus from their power? | 1
 |
| Question | What are the steps to implement the GQM+? | 1
 |
| Question | For what reason measurement goals and business goals should be interconnected? | 1
 |
| Question | How do the practices of Lean Management defined by Hibbs and colleagues relate to the seven principles by Mary and Tom Poppendieck | 0
 |
| Question | Propose how you could develop software and hardware tools to promote common visions in companies. | 0
 |
| Question | Elaborate a proposal to create some kind of Balanced Scorecards to evaluate your current study. | 0
 |
| Question | Discuss the opinion of Ono about following plans and the extent to which such opinion contradicts (a) the practices, and (b) the principles of the tayloristic/fordistic approach | 0
 |
| Question | Propose a SWAT analysis to introduce a Lean approach to your most recent software development endavour | 0
 |


#### Section 7





| Activity Type | Content | Is Graded?
 |
| --- | --- | --- |
| Question | Details the major components of an experience factory. | 1
 |
| Question | What are Reflection, Retrospective, and Post-Mortem Analysis? Why are they useful in Lean Software Development? | 1
 |
| Question | What are the key components of a non invasive software measurement systems? | 1
 |
| Question | What is the big brother effect and how it is possible to alleviate it. | 1
 |
| Question | Discuss how autonomation is present in Extreme Programming. | 1
 |
| Question | Where is the term “Dashboard” coming from and what is its use in Lean Software Development? | 1
 |
| Question | List the steps of a QIP. | 0
 |
| Question | Discuss the risks of a measurement program and how non invasive software measurement can help alleviating them. | 0
 |
| Question | Are there cases in which Theory X of management could be more effective than Theory Y? Discuss your findings. | 0
 |
| Question | For which aspects of software production autonomation could be useful? | 0
 |
| Question | Which tools could be used to promote autonomation? | 0
 |
| Question | Prototype by paper and pencil an Andon board that you would consider useful in a software production environment. | 0
 |


### Final assessment


**Section 1**



1. Present the salient aspects of wicked problems
2. List the key aspects of software that make it a wicked problem
3. Provide a link between wickedness and creativity in software production
4. Discuss what promotes and what inhibit creativity in general and in software production
5. Outline meaning and limitation of the concept of “engineering” the production of software


**Section 2**



1. Structure the aims of a company using the GQM and detailing the metrics to compute, also explaining the deductions and the predictions that can be made with such metrics.
2. Given an index computed as a combination of metrics, determine if it is a metrics according to the representational theory of measurement.
3. Analyse a portion of a system and determine suitable metrics to extract and the information that would be provided by such metrics.
4. Given a website performing a service (like flight reservations), compute the Function Points for such website.
5. Discuss how to structure a taxonomy of quality for a specific company, explaining the role of reliability in it, and detailing how to compute the reliability again in the context of such company; please make the assumptions that you need to perform such computation.


**Section 3**



1. What aspects of making software feel like an art, which like a craft to you and how could you bend Taylorism and Fordism to handle it?
2. How does Fordism and Taylorism can explain that companies producing software containing bugs can still stay in the market, and, in certain case, also be successful?
3. Based on your experience and previous courses, which development models can refer to Fordism and Taylorism and which cannot be reduced to it?
4. How does the specialization of work in software development can be linked to Fordism and Taylorism?
5. Provide an example for each of the fundamental activities of managers according to Taylor that shows how such activity is very useful in software development and one that shows that is is inadequate.


**Section 4**



1. Structure a model like PDSA for a company producing websites for online marketing.
2. How can the right part and the right information be always available without waste according to the Toyota approach?
3. Compare a street crossing based on traffic lights with a roundabout and determine the approach that is safest and the one with the a highest throughput according to Waterfall and to Lean.
4. Discuss the involvements of workers in tayloristic/fordistic and in Lean development processes and their implications for the retention and the improvement of the quality of the workforce.
5. Outline the extent of which economies of scale exist in Lean development processes.
6. Imagine you had to introduce Extreme Programming in a software development team that follows a waterfall process. Which problems do you foresee? How will the clients react (that until now are used to work with a team that used the waterfall process)? How would you address them?


**Section 5**



1. Imagine you are the boss of a small software development company. Which actions would you do or which practices would you introduce to prevent that your programmers fall into the trap of following a software guru?
2. Elaborate possible extreme (and damaging) positions that can be taken by gurus of agile.
3. Explain the differences in introducing a methodology by a guru and by a smart and effective coach.
4. Detail why Extreme Programming produces an informative workspace.
5. Discuss effective ways of packaging and “distributing” knowledge in software teams, starting with the guru approach of organizing knowledge into simple, clear practices which are easy to explain and to follow.


**Section 6**



1. Discuss the role of customer on-site under the perspective of lean and outline it relevance in the earlier and then in the later proposals of agile software development.
2. Suppose that you have to develop Balanced Scorecards for a software development team. Which perspectives would you use? Which goals would you use for each perspective?
3. What is a socio-technical system and how can it be used to describe an (agile) software production environement?
4. Imagine you want to evaluate how readable the source code of some program is. Define a GQM+ model to describe what and why you would measure.
5. The development in company M occurs according to the following schema: when a new project is started, a developer takes an old project that is the most similar to the new requirements and makes a copy and starts implementing the required modifications. To improve this process and to help the company to adopt a component-based approach, we want to understand which pieces of code are the best candidates for future components and which variability points they have. Define a suitable GQM+ for such purpose.


**Section 7**



1. What type of wisdom (in the sense of “know-why”) would you manage in an Experience Factory to support Lean Thinking? Distinguish between organizational learning and project learning.
2. Assume you are a manager convinced that Theory X is true. Which non-invasive measurement probes would you want to develop to maximize productivity? Now assume you are convinced that Theory Y is true. Which non-invasive measurement probes would you need now?
3. We discussed that we foresee two ways to collect measurements non- invasively: in batch and in background mode. What are the advantages and disadvantages of each approach?
4. There are many interrelated building blocks (or concepts) of Lean Software Development and each contributes differently to it. What types of data are handled by each of these building blocks (or concepts)? How do the contribution to the overall value stream, to the creation of knowledge, and to the overall improvement?
5. Assume you set up a fantastic dashboard for your team. As you collect the data and visualize it, you notice that all the measurements show problematic values. You let the dashboard in place for some days and also show it to your collaborators, but nobody cares; everybody continues his job as if everything would be fine. What is going wrong?