Top Banner
Global Software Development 2013 Claus Brabrand ((( [email protected] ))) Associate Professor, Ph.D. ((( Software & Systems ))) IT University of Copenhagen
72

Global Software Development 2013

Feb 25, 2016

Download

Documents

upton

Global Software Development 2013. Claus Brabrand ((( [email protected] ))) Associate Professor, Ph.D. ((( Software & Systems ))) IT University of Copenhagen. >. 1 ) Course Introduction : Course Setup Structure and Schedule 2 ) Goals of the Course: - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 2: Global Software Development 2013

[ 2 ]Global Software Development Aug 27, 2013ITU

<< AGENDA >>◼ 1) Course Introduction:

◼ Course Setup◼ Structure and Schedule

◼ 2) Goals of the Course:◼ 'Describe' vs 'Explain' vs 'Reflect'◼ About Argumentation

◼ 3) Basic Group Theory:◼ Constitution◼ Conflicts and Conflict Resolution

Page 3: Global Software Development 2013

[ 3 ]Global Software Development Aug 27, 2013ITU

Welcome to GSD 2013 !◼ Claus Brabrand

◼ Ph.D. from Aarhus University (2003)◼ Associate Professor at ITU (since 2007)

◼ Research:◼ Programming Languages◼ Syntax and Semantics◼ Program Transformation◼ Program Analysis◼ Software Product Lines◼ Educational Research

Page 4: Global Software Development 2013

[ 4 ]Global Software Development Aug 27, 2013ITU

Université Louis PasteurStrasbourg, France (1995)

IBM Research CenterNew York, USA (2001)

INRIA Research CenterBordeaux, France (2003)

Federal Uni. of PernambucoRecife, PE, Brazil (2010)

Global

Page 5: Global Software Development 2013

[ 5 ]Global Software Development Aug 27, 2013ITU

Supervisors◼ Team supervisors:

◼ Diako Mardanbegi, Ph.D student◼ Iago Abal, Ph.D. student◼ Jacob Michael Avlund, External lecturer◼ Ioannis Damastianos Panagis, External lecturer

◼ Will each supervise 4 teams:◼ 80 students = 5 students/team*

◼ *) tentatively !

/ 4 supervisors / 4 teams/supervisor

Page 6: Global Software Development 2013

[ 6 ]Global Software Development Aug 27, 2013ITU

Participating Universities◼ dvd

Page 7: Global Software Development 2013

[ 7 ]Global Software Development Aug 27, 2013ITU

Motivation for GSD◼ Globalization of the world

◼ “The World is Flat” (Thomas L. Friedman)

◼ "Make" where best and/or cheapest:◼ Yesterday: Things◼ Today: Processes (incl. Software)◼ Tomorrow: ?!?

◼ Note: Companies seek global competences !

Page 8: Global Software Development 2013

[ 8 ]Global Software Development Aug 27, 2013ITU

History of OutsourcingOutsourcing:◼ 1) Manufacturing (things)◼ 2) Electronic design◼ 3) Low-level service jobs◼ 4) Call centers◼ 5) Customer support◼ 6) Implementation◼ …◼ x) Tomorrow ?!?

Page 9: Global Software Development 2013

[ 9 ]Global Software Development Aug 27, 2013ITU

Course Philosophy◼ IDEA: "Emulate industrial setting"

(with globally distributed collaboration)

◼ do: Global Software Development◼ in: Controlled environment◼ where: Money is not the issue◼ but where: LEARNING is the goal

◼ ETHZ has massive experience with this !

Page 10: Global Software Development 2013

[ 10 ]Global Software Development Aug 27, 2013ITU

Global CollaborationGlobal collaboration across:

◼ Distance◼ Time-zones◼ Languages◼ Culture◼ Collaboration Norms◼ Educational Traditions◼ Educational Structure◼ ...

All of which has only very recently become possible via Information Technology ! :-)

Page 12: Global Software Development 2013

[ 12 ]Global Software Development Aug 27, 2013ITU

Project◼ Project:

◼ T1) Logic◼ T2) GUI + Network◼ T3) Artificial Intelligence

G1) G2) G3)

Logic(rules)

A.I.(strategy)

GUI+Netwk

Computer Game !

(e.g., Chinese Checkers)

Page 14: Global Software Development 2013

[ 14 ]Global Software Development Aug 27, 2013ITU

Plan◼ Australia and Brazil:

◼ Assignment 0: Setup◼ Assignment 1: Requirements document◼ Assignment 2: First Communication in the Group

and requirements consolidation◼ Assignment 3: Test plan

◼ All the other teams:◼ Assignment 1: Setup◼ Assignment 2: First Communication in the Group

and requirements consolidation◼ Assignment 3: Interface Specifications using Contracts◼ Assignment 4: Testing and API Consolidation◼ Assignment 5: Implementation

(Located on the Southern Hemisphere)(Role of "Customers")

Page 15: Global Software Development 2013

[ 15 ]Global Software Development Aug 27, 2013ITU

Eiffel◼ Object-Oriented Programming Language

with static typing (like Java and C#)

◼ Supports Design by Contract !◼ Which is good for Global Collaboration

◼ Often used as analysis-and-design language◼ Promotes a particular way of thinking about

the design, architecture, and implementation of Object-Oriented software systems

◼ (We will look at Eiffel the next four weeks)

Page 16: Global Software Development 2013

[ 16 ]Global Software Development Aug 27, 2013ITU

Schedule◼ Today: 'Intro'

◼Aug 27: Introduction◼ Sep: 'Eiffel'

◼Sep 03: The Eiffel Programming Language◼Sep 10: Dependable Systems Analysis◼Sep 17: Assertions and Specifications◼Sep 24: Validation and Verification◼Oct 01: Software Engineering with Eiffel

◼ Oct – Dec: 'Project'◼Oct 01 - Dec 20: Project Period

◼ Jan: 'Exam'◼Jan 13 - Jan 17: Handed in + Oral Exam

Joe Kiniry

Don't drop outAFTER Oct 1 !

Page 17: Global Software Development 2013

Disclaimer: Lots of issues are not finalized yet, because many of the other universities are still on summer vacation. In particular, the #students at the other universities is not fixed yet !!!

Questions ?

Page 18: Global Software Development 2013

[ 18 ]Global Software Development Aug 27, 2013ITU

<< AGENDA >>◼ 1) Course Introduction:

◼ Course Setup◼ Structure and Schedule

◼ 2) Goals of the Course:◼ 'Describe' vs 'Explain' vs 'Reflect'◼ About Argumentation

◼ 3) Basic Group Theory:◼ Constitution◼ Conflicts and Conflict Resolution

Page 19: Global Software Development 2013

[ 19 ]Global Software Development Aug 27, 2013ITU

Goals of the CourseProduct (70%):◼ Design a system◼ Implement the designed system◼ Apply scientific methods and techniques◼ Evaluate the resulting system◼ Relate to existing systems, methods, and

techniques

Process (30%):◼ Develop and maintain a plan for the collaboration◼ Reflect continually on the collaboration

Page 20: Global Software Development 2013

[ 20 ]Global Software Development Aug 27, 2013ITU

About the Exam◼ Exam:

◼ Using 7-step Danish grade scale◼ Assessment relative to intended learning outcomes◼ Combined grade from handed in and oral exam◼ 30 min individual oral examination◼ Based on handed in (incl. group report)

◼ Schedule:◼ January 13+14+15+16+17, 2014

Page 21: Global Software Development 2013

[ 21 ]Global Software Development Aug 27, 2013ITU

Goals of the CourseProduct (70%):◼ Design a system◼ Implement the designed system◼ Apply scientific methods and techniques◼ Evaluate the resulting system◼ Relate to existing systems, methods, and

techniques

Process (30%):◼ Develop and maintain a plan for the collaboration◼ Reflect continually on the collaboration

Page 22: Global Software Development 2013

[ 22 ]Global Software Development Aug 27, 2013ITU

Cognitive Processes

Describe?Explain?Reflect?

vs

vs

Page 23: Global Software Development 2013

[ 23 ]Global Software Development Aug 27, 2013ITU

The SOLO TaxonomyNote: the list is non-exhaustive

SOLO 2”uni-structural”

SOLO 3“multi-structural”

SOLO 4“relational”

SOLO 5“extended abstract”

reflect theorize generalize hypothesize predict judge transfer theory (to new domain) …

explain analyze compare contrast integrate relate apply theory (to its domain) …

describe combine structure classify enumerate list do algorithm apply method …

identify define count name recite paraphrase follow (simple) instructions …

Graphic Legend

problem / question / cue known related issue - given! hypothetical related issue - not given! student response

Q

R

QUANTITATIVE QUALITATIVE

R

R'Q

RQRQRQ

QUALITATIVE

Page 24: Global Software Development 2013

[ 24 ]Global Software Development Aug 27, 2013ITU

The SOLO TaxonomySOLO 1: (Pre-Structural)◼ Here the subject does not have any kind of understanding but uses irrelevant information

and/or misses the point altogether. Scattered pieces of information may have been acquired, but they are unorganized, unstructured, and essentially void of actual content or relation to a topic or problem.

SOLO 2: (Uni-Structural)◼ The subject can deal with one single aspect and make obvious connections. The subject can

use terminology, recite (remember things), perform simple instructions/algorithms, paraphrase, identify, name, count, etc.

SOLO 3: (Multi-Structural)◼ At this level the subject can deal with several aspects but these are considered

independently; i.e., not in connection with one another. Metaphorically speaking; the subject sees the many trees, but not the forest. He or she is able to enumerate, describe, classify, combine, apply methods, structure, execute procedures, etc.

SOLO 4: (Relational)◼ At level four, the subject may understand relations between several aspects and how they

might fit together to form a coherent whole. The understanding forms a structure and now he or she sees how the many trees form a forest. A subject at this level may compare, relate, analyze, apply theory, explain in terms of cause and effect, etc.

SOLO 5: (Extended Abstract)◼ At this level, which is the highest, the subject may generalize structure beyond what was

given, may perceive structure from many different perspectives, and transfer ideas to new areas. He or she may generalize, hypothesize, criticize, theorize, etc.

[Biggs & Collis, 1982]

Page 25: Global Software Development 2013

[ 25 ]Global Software Development Aug 27, 2013ITU

Describe◼ Describe (SOLO 3):

◼ Example:

RQ

"[...] Due to the low enrollment of students in China, our group was merged with two members from another group, increasing our numbers from 5 to 7. We made sure to establish common ground by discussing our ideas and expectations with the new members. We then continued with the project and our implementation. [...]"

de·scribe [dih-skrahyb]transitive verb (used with object), de·scribed, de·scrib·ing1. to tell or depict in written or spoken words; give an account of (e.g., "He described the accident and what happened next").2. to pronounce, as by a designating term, phrase, or the like; label: (e.g., "There are few people who may be described as geniuses").3. to indicate; be a sign of; denote: (e.g., "Conceit, in many cases, describes a state of serious emotional insecurity").4. to represent or delineate by a picture or figure.5. Geometry: to draw or trace the outline of (e.g., "to describe an arc").

Page 26: Global Software Development 2013

[ 26 ]Global Software Development Aug 27, 2013ITU

Explain◼ Explain (SOLO 4):

◼ Example:

RQ

"[...] Since we agreed on a constitution (i.e., a set of rules for our group), wrote it down and signed it, before we started the project, we had commonly accepted rules for resolving conflicts when they arose. This made conflict resolution easier during the project period. [...]"

ex·plain [k-spln]transitive verb, ex·plained, ex·plain·ing, ex·plains1. To make plain or comprehensible.2. To define; expound: (e.g., "We explained our plan to the committee").3a. To offer reasons for or a cause of; justify: (e.g., "He explained why the error occurred").3b. To offer reasons for the actions, beliefs, or remarks of oneself (e.g., "He explained himself").

Page 27: Global Software Development 2013

[ 27 ]Global Software Development Aug 27, 2013ITU

Reflect◼ Reflect (SOLO 5):

◼ Example:

R

R'Q

"[...] If we had done X instead of Y, presumably either A, B, or C would have happened. <Substantiate> [...]"

re·flect [r-flkt]intransitive verb, re·flect·ed, re·flect·ing, re·flects1. To be bent or thrown back: (e.g., Her voice reflected off the canyon walls).[...]4a. To think seriously. (e.g., He reflected on his options).4b. To express carefully considered thoughts: (e.g., In the essay, he reflects on his career).[...]9a. to think carefully, especially about possibilities and opinions 9b. use or exercise the mind or one's power of reason in order to make inferences, decisions, or arrive at a solution or judgments

[ https://www.vocabulary.com/dictionary/reflect ]

Page 28: Global Software Development 2013

[ 28 ]Global Software Development Aug 27, 2013ITU

Quizzzzz...◼ Consider the text:

◼ Is this...?

R

R'Q

RQRQRQ

B) identify C) describe D) explain E) reflectRQ

A) "bogus"

(SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4)(SOLO 5)

"[...] Because only one person knew how to build the entire system, we could not test our software as often as we would have liked and thus had some periods of decreased productivity. [...]"

Page 29: Global Software Development 2013

[ 29 ]Global Software Development Aug 27, 2013ITU

Quizzzzz...◼ Consider the text:

◼ Is this...?

R

R'Q

RQRQRQ

B) identify C) describe D) explain E) reflectRQ

A) "bogus"

(SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4)(SOLO 5)

"[...] Prior to our first meeting with the Brazilians, we created a project management workspace on Assembla. It provides the necessary tools for collaboration, such as a wiki, task management, and milestones. We invited the Brazilians to the site and created profiles with information about ourselves and our hobbies, interests, etc. [...]"

Page 30: Global Software Development 2013

[ 30 ]Global Software Development Aug 27, 2013ITU

Quizzzzz...◼ Consider the text:

◼ Is this...?

R

R'Q

RQRQRQ

B) identify C) describe D) explain E) reflectRQ

A) "bogus"

(SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4)(SOLO 5)

"[...] The implementation of the interface was done only by the Italian team. Therefore, every time we needed to change the interface (which fortunately wasn't often), we needed to wait for the Italians to implement the change. [...]"

Page 31: Global Software Development 2013

[ 31 ]Global Software Development Aug 27, 2013ITU

Quizzzzz...◼ Consider the text:

◼ Is this...?

R

R'Q

RQRQRQ

B) identify C) describe D) explain E) reflectRQ

A) "bogus"

(SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4)(SOLO 5)

"[...] The success of the project does not only depend on the success of one local team, but also on partner teams located in different countries being successful too. If one team had failed, we believe there would have been serious consequences for the other teams. We think that we would have either had an incomplete product, a lower-quality product, presumably even no final product to hand in at all. [...]"

Page 32: Global Software Development 2013

describe < explain < reflectNotion of an Argument!

Page 33: Global Software Development 2013

[ 33 ]Global Software Development Aug 27, 2013ITU

The Structure of an Argument◼ "Modus Ponens":

◼ Examples:◼ P = "you are in this class"◼ P ➝ Q = "if you are in this class, you will get a grade"◼ ∴Q = therefore: "you will get a grade" [by Modus Ponens]

◼ P ➝ Q = "if the cake is made with sugar, then the cake is sweet"◼ P = "the cake is made with sugar"◼ ∴Q = therefore: "the cake is sweet" [by Modus Ponens]

( P and 'P Q➝ ' ) implies Q

Page 34: Global Software Development 2013

[ 34 ]Global Software Development Aug 27, 2013ITU

About Argumentation◼ "Monty Python and the Holy Grail" (1974)

◼ Scene V: "The Witch":

Page 35: Global Software Development 2013

[ 35 ]Global Software Development Aug 27, 2013ITU

The Monty Python Reasoning:◼ Axioms:

◼ Rules:

female(girl). // by observation

floats(duck). // King Arthur

sameweight(girl, duck). // by experiment

female(X) burns(∧ X) => witch(X)

wooden(X) => burns(X)

floats(X) => wooden(X)

sameweight(X,Y) floats(∧ Y) => floats(X)

Page 36: Global Software Development 2013

[ 36 ]Global Software Development Aug 27, 2013ITU

◼ Deduction:◼ whole parts:

◼ (aka. “top-down reasoning”)◼ abstract concrete◼ general specific

◼ Induction:◼ parts whole:

◼ (aka. “bottom-up reasoning”)◼ concrete abstract◼ specific general

Just two different ways of reasoning: Deduction Induction (just swap directions of arrows)

whole

A B C

whole

A B C

Deduction vs Induction

Page 37: Global Software Development 2013

[ 37 ]Global Software Development Aug 27, 2013ITU

Deductive Reasoning: witch(girl)◼ "Deduction":

witch(girl)

burns(girl)female(girl)

wooden(girl)

floats(girl)

floats(duck)sameweight(girl,duck)

%- by observation -----

%- by experiment ----- %- King Arthur -----

sameweight(X,Y) floats(∧ Y) => floats(X)

female(X) burns(∧ X) => witch(X)

wooden(X) => burns(X)

floats(X) => wooden(X)

(aka. ”top-down reasoning”)

Page 38: Global Software Development 2013

[ 38 ]Global Software Development Aug 27, 2013ITU

Inductive Reasoning: witch(girl)◼ "Induction":

witch(girl)

burns(girl)female(girl)

wooden(girl)

floats(girl)

floats(duck)sameweight(girl,duck)

%- by observation -----

%- by experiment ----- %- King Arthur -----

sameweight(X,Y) floats(∧ Y) => floats(X)

female(X) burns(∧ X) => witch(X)

wooden(X) => burns(X)

floats(X) => wooden(X)

(aka. ”bottom-up reasoning”)

Page 39: Global Software Development 2013

[ 39 ]Global Software Development Aug 27, 2013ITU

Induction vs. Deduction◼ Deduction

◼ whole parts:◼ Induction

◼ parts whole:

Just two different ways of reasoning: Deduction Induction (just swap directions of arrows)

Page 40: Global Software Development 2013

[ 40 ]Global Software Development Aug 27, 2013ITU

LEVIN: "You in my office discussed, I think, a very interesting approach, which is the difference between starting with a conclusion and trying to prove it and instead starting with digging into all the facts and seeing where they take you.

Would you just describe for us that difference and why [...]?"

LEVIN: U.S. SENATOR CARL LEVIN (D-MI)HAYDEN: GENERAL MICHAEL B. HAYDEN (USAF), NOMINEE TO BE DIRECTOR OF CIA

CQ TranscriptionsThursday, May 18, 2006; 11:41 AM

"DEDUCTIVE vs. INDUCTIVE REASONING"

HAYDEN:

"Yes, sir. And I actually think I prefaced that with both of these are legitimate forms of reasoning,

that you've got deductive [...] in which you begin with, first, [general] principles and then you work your way down the specifics.

And then there's an inductive approach to the world in which you start out there with all the data and work yourself up to general principles.

They are both legitimate."

Nomination of CIA Director

Page 41: Global Software Development 2013

[ 41 ]Global Software Development Aug 27, 2013ITU

Goals of the CourseProduct (70%):◼ Design a system◼ Implement the designed system◼ Apply scientific methods and techniques◼ Evaluate the resulting system◼ Relate to existing systems, methods, and

techniques

Process (30%):◼ Develop and maintain a plan for the collaboration◼ Reflect continually on the collaboration

Page 42: Global Software Development 2013

[ 42 ]Global Software Development Aug 27, 2013ITU

<< AGENDA >>◼ 1) Course Introduction:

◼ Course Setup◼ Structure and Schedule

◼ 2) Goals of the Course:◼ 'Describe' vs 'Explain' vs 'Reflect'◼ About Argumentation

◼ 3) Basic Group Theory:◼ Constitution◼ Conflicts and Conflict Resolution

Page 43: Global Software Development 2013

[ 43 ]Global Software Development Aug 27, 2013ITU

Group Work

Page 44: Global Software Development 2013

[ 44 ]Global Software Development Aug 27, 2013ITU

Group Theory ?◼ No 'Grand Unifying Theory' :-(

◼ Good advice (much of which is "common sense")

Group :=◼ A collection of people that:

◼ have one (or more) common goals;◼ have common conditions;◼ have common norms; and◼ feel like a Group

[ Sou

rce:

"Arb

ejds

grup

pens

Psy

kolo

gi",

B. L

enée

r-A

xels

on &

I. T

hyle

fors

, 198

3 ]

NB:recursivedefinition!

Page 45: Global Software Development 2013

[ 45 ]Global Software Development Aug 27, 2013ITU

Common GoalsCommon goals:◼ Intended Learning Outcomes:

NB:globalcontext !

Page 46: Global Software Development 2013

[ 46 ]Global Software Development Aug 27, 2013ITU

Common ConditionsCommon conditions:

◼ same project◼ same responsibility◼ same requirements◼ same time frame◼ same resources◼ same examination◼ ...

However, lots of different prerequisites:◼ motivation, competences, knowledge, flexibility,

creativity, expectations, experience, mind set, preferences, personal goals, desire to learn, ...

NB:globalcontext !

Page 47: Global Software Development 2013

[ 47 ]Global Software Development Aug 27, 2013ITU

NormPronunciation: /'norm/Function: nounEtymology:

Latin norma, literally, carpenter's square◼ 1 : an authoritative standard : MODEL◼ 2 : a principle of right action binding upon the members of a group and serving to guide,

control, or regulate proper and acceptable behavior◼ 3 : AVERAGE: as

a : a set standard of development or achievement usually derived from the average or median achievement of a large group b : a pattern or trait taken to be typical in the behavior of a social group c : a widespread or usual practice, procedure, or custom : RULE <standing ovations became the norm>

◼ 4 a : a real-valued non-negative function defined on a vector space with value analogous to length and satisfying the conditions that the function is zero if and only if the vector is zero, the function of the product of a scalar and a vector is equal to the product of the absolute value of the scalar and the function of the vector, and the function of the sum of two vectors is less than or equal to the sum of the functions of the two vectors; specifically : the square root of the sum of the squares of the absolute values of the elements of a matrix or of the components of a vector b : the greatest distance between two successive points of a set of points that partition an interval into smaller intervals

As in a set of rules chosen by a group

which defines and governs acceptable

behavior and how the group works.

Page 48: Global Software Development 2013

[ 48 ]Global Software Development Aug 27, 2013ITU

Norms (known vs unknown)◼ Norms are extremely important for groups!

◼ Some are "explicit" (aka, "known norm"):◼ explicitly (consciously) decided by the group

◼ Many are "implicit" (aka, "unknown norm"):◼ implicitly (subconsciously) adopted by the group

◼ Advise: implicit explicit norms◼ everyone is aware of the group norms◼ have a chance of resolving related problems

NB:globalcontext !

Page 49: Global Software Development 2013

[ 49 ]Global Software Development Aug 27, 2013ITU

Constitution (set of norms)Constitution: A constitution is a system for

government, often codified as a written and signed document, that establishes the rules and principles of an autonomous [political] entity.

◼ Norms (set of rules); e.g.:◼ When do we work?◼ How do we work?◼ How do we make decisions?◼ What happens if someone flakes?◼ ...

NB:globalcontext !

Page 50: Global Software Development 2013

[ 50 ]Global Software Development Aug 27, 2013ITU

Constitution Ahead of Time!◼ Avoid deferring norm decisions!

◼ Agree on norms while there are no conflicts!

Without a Constitution:

Conflict!

Rules?(for resolution)

=> Effectively two conflicts!

With a Constitution:

=> Conflict resolved via rules

Conflict!

Conflictresolved

via agreedupon rules

Page 51: Global Software Development 2013

[ 51 ]Global Software Development Aug 27, 2013ITU

Constitution (1/4)◼ Organizational form?

◼ Everyone always work together?◼ Delegation of sub-task onto sub-groups?◼ Divide project into 'n ' pieces of size '1/n ' ?

...where n = |group|◼ Roles?

◼ E.g.: Minute taker? Meeting moderator? Tester?◼ Role Rotation?

◼ Fixed roles?◼ Roles, with rotation?◼ No roles?

Page 52: Global Software Development 2013

[ 52 ]Global Software Development Aug 27, 2013ITU

Constitution (2/4)◼ Meetings?

◼ When? Where? How? Communication technology?◼ Discussions?

◼ Formal discussions (agenda, moderator, minute taker)◼ Informal (= "strongest" will decide)

◼ Decisions?◼ Rules? Voting? Main arguments? Veto rights?◼ Informal (= "strongest" will decide)

◼ Documentation?◼ Full (personal notes, group diary, meeting summaries,

plans, actions, todo lists, incremental work notes, ...)◼ No written record?

Page 53: Global Software Development 2013

[ 53 ]Global Software Development Aug 27, 2013ITU

Constitution (3/4)◼ Personal Motivation?

◼ Why take this course? Expectations?◼ Level of Ambition?

◼ "Top grade" ...vs... "Just pass the f***ing course"◼ Thoroughness? When are things "good enough"?

◼ Time for Project?◼ When and how much is one able to work on project?◼ Work during weekends?◼ (e.g., 'Mondays 9 – 16' and 'Wednesdays 10 – 15')

◼ Personal Constraints?◼ Anything that can get in the way of the project?

Page 54: Global Software Development 2013

[ 54 ]Global Software Development Aug 27, 2013ITU

Constitution (4/4)◼ Sanctions!

◼ What to do when rules and agreements are not met?◼ Redemption? Penalty? Consequences?

◼ Socialization:◼ Allocate time for this!◼ Ask what people did over the weekend, etc...◼ Have beer/coffee/cake with your team members◼ Play an online collaborative game with your group

NB:globalcontext !

Page 55: Global Software Development 2013

[ 55 ]Global Software Development Aug 27, 2013ITU

Avoid Tautological Norms◼ Write operationalizable norms:

◼ Avoid tautological norms (where no one would ever never ever agree to the contrary):

"We will adapt the pace according to the workload and deadline."

"We will try to make the most of it."

"Good is better than bad."

"We will do nothing aside report writing the last week."

"Every meeting has an agenda, a minute taker and a moderator."

"Every API method should be tested - and never by its author."

Page 56: Global Software Development 2013

[ 56 ]Global Software Development Aug 27, 2013ITU

Avoid Subjective Norms

◼ Make sure norms are phrased objectively not subjectively!

Time for work: We work every Tuesday 8 – 16 and every Friday 9 – 15 and take 15 minutes break every hour !

Time for work: We work quite a lot and with some breaks every now and then ?!?

vs.

When I am on vacation, I like

'to relax' !

Subjectivity…:

ZZZ

…is often perceived differently

Page 57: Global Software Development 2013

[ 57 ]Global Software Development Aug 27, 2013ITU

◼ Avoid:◼ informal rules and norms!◼ absence of rules and norms!

◼ Otherwise, the strongest* will rule!

◼ strongest* =

Avoid Informal Rules

socially (in the beginning)competence (later in project)

Page 58: Global Software Development 2013

[ 58 ]Global Software Development Aug 27, 2013ITU

Manager vs No Manager◼ Group (with leader):

◼ E.g., project in company◼ Goal: Product ($ / € / kr)

◼ Group (w/o leader):◼ E.g., study group◼ Goal: (Learning) Proces

mgmtrespon-sibility

Respon-sibility:

Mgmt

Page 59: Global Software Development 2013

[ 59 ]Global Software Development Aug 27, 2013ITU

Group Problems (1/8)Diagnosis: "Common Sloppiness"

◼ Symptoms:◼ Unstructured work◼ Indifference wrt. meetings and decisions◼ Lack of coordination◼ Messy work

◼ Causes:◼ Organizational or management problems◼ Lack of norms◼ Unengaging project◼ Lack of courage for uncomfortable discussions◼ Lack of discipline and/or initiative

Page 60: Global Software Development 2013

[ 60 ]Global Software Development Aug 27, 2013ITU

Group Problems (2/8)Diagnosis: "Bad Atmosphere"

◼ Symptoms:◼ Unnecessarily harsh discussions◼ Lack of mutual support◼ Disagreement on superficial problems◼ Hurtful comments◼ Lots of conflicts

Causes: Unresolved personal conflicts

Recommendations: Socialization

Page 61: Global Software Development 2013

[ 61 ]Global Software Development Aug 27, 2013ITU

Group Problems (3/8)Diagnosis: "Neglect"◼ Symptoms:

◼ Members are often late◼ Not showing up for meetings (without notification)◼ Members not doing assigned tasks

Causes: Lack of sanctions Members feeling unwelcome in the group Personal problems

Recommendations: Ask about causes (without judgement!) and

document answers in project diary

Page 62: Global Software Development 2013

[ 62 ]Global Software Development Aug 27, 2013ITU

Group Problems (4/8)Diagnosis: "Indecisiveness"◼ Symptoms:

◼ Indecisiveness

Causes: Lack of willingness to do work (entailed by decisions)

Recommendations: Be explicit about the basis of the decision (in particular,

whether you have "enough info" for making a decision) Document the decision and arguments in project diary Be explicit about the decision process:

(For "professional decisions": use professional arguments) (For "social decisions": democratic votes are fine)

Page 63: Global Software Development 2013

[ 63 ]Global Software Development Aug 27, 2013ITU

Group Problems (5/8)Diagnosis: "Outsiders"◼ Symptoms:

◼ Outsiders

Causes:a) Voluntary outsiders: Protest against chosen work form Protest against role assignedb) Involuntary outsiders: Members don't feel as part of the group or in minority

(or even discriminated against)

Recommendations: Requires external intervention for resolution

Page 64: Global Software Development 2013

[ 64 ]Global Software Development Aug 27, 2013ITU

Group Problems (6/8)Diagnosis: "Cliques"◼ Symptoms:

◼ Group is dominated by a small sub-group (clique)◼ Several small sub-groups (fractions)

Causes: Members know each other well prior to group Project initiated by a select few (with ownership) and

where others joined later (possibly without ownership)

Recommendations: Socialization Good social group norms Last resort: Split the group in two (group fision)

Page 65: Global Software Development 2013

[ 65 ]Global Software Development Aug 27, 2013ITU

Group Problems (7/8)Diagnosis: "Fixed Minor Roles"◼ Symptoms:

◼ Member only doing one fixed minor role (e.g., testing, debugging, writing report, making coffee)

◼ NB: this is a problem wrt learning (only learn parts)!

Causes: Member good at that one specific task Member wants to avoid certain tasks (e.g., to program) Narrow product focus, at expense of learning process

Recommendations: Role rotation◼ Increased focus on learning process

Page 66: Global Software Development 2013

[ 66 ]Global Software Development Aug 27, 2013ITU

Group Problems (8/8)Diagnosis: "Power Struggle"◼ Symptoms:

◼ Group dominated by one or more members◼ Rivalry◼ Everything a certain group member says is criticized

Causes: Discussions about "LinkedList" vs "ArrayList" is really

about whether Member A or B makes the decisions

Recommendations: Make decision processes explicit Requires external intervention for resolution

Page 67: Global Software Development 2013

[ 67 ]Global Software Development Aug 27, 2013ITU

Acknowledge Problems◼ Step #1: Admit you have a problem

(in your team or group):

Page 68: Global Software Development 2013

[ 68 ]Global Software Development Aug 27, 2013ITU

Recommendations◼ Make a constitution when you start:

◼ As a written document that everyone signs◼ Allocate time for "socialization"

◼ Get to know each other◼ Keep group diary to document project:

◼ Write up meetings ◼ Meeting summaries◼ Plans◼ Decisions◼ Actions◼ ...

Page 69: Global Software Development 2013

Next week:The Eiffel programming language

Questions ?

NB:globalcontext !

Page 70: Global Software Development 2013

BONUS SLIDES

Page 71: Global Software Development 2013

[ 71 ]Global Software Development Aug 27, 2013ITU

CMMI◼ CMMI (Capability Maturity Model Integration):

Page 72: Global Software Development 2013

[ 72 ]Global Software Development Aug 27, 2013ITU

The Danish Grade Scale

Unacceptable-3 For a performance which is unacceptable in all respects F

Inadequate00 For an insufficient performance which does not meet the course objectives Fx

Adequate02 For a sufficient performance which barely meets the course objectives E

Fair4 For a fair performance which adequately meets the course objectives but also displays several major weaknesses D

Good7 For a good performance which meets the course objectives but also displays some weaknesses C

Very good10 For a very good performance which meets the course objectives, with only minor weaknesses B

Excellent 12 For an excellent performance which completely meets the course objectives, with no or only a few insignificant weaknesses A

Grade := Degree of fulfillment

of course objectives!