720 likes | 866 Views
Global Software Development 2013. Claus Brabrand ((( brabrand@itu.dk ))) Associate Professor, Ph.D. ((( Software & Systems ))) IT University of Copenhagen. << AGENDA >>. 1 ) Course Introduction : Course Setup Structure and Schedule 2 ) Goals of the Course:
E N D
Global Software Development 2013 Claus Brabrand (((brabrand@itu.dk))) Associate Professor, Ph.D. ((( Software & Systems ))) IT University of Copenhagen
<< 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
Welcome to GSD 2013 ! • Claus Brabrand • Ph.D.from Aarhus University(2003) • AssociateProfessor at ITU (since 2007) • Research: • Programming Languages • Syntax and Semantics • Program Transformation • Program Analysis • Software Product Lines • Educational Research
Global Université Louis Pasteur Strasbourg, France (1995) IBM Research Center New York, USA (2001) INRIA Research Center Bordeaux, France (2003) Federal Uni. of Pernambuco Recife, PE, Brazil(2010)
Supervisors • Team supervisors: • DiakoMardanbegi, Ph.D student • IagoAbal, Ph.D. student • Jacob Michael Avlund, External lecturer • IoannisDamastianosPanagis, External lecturer • Will each supervise 4 teams: • 80 students = 5 students/team* • *) tentatively ! / 4 supervisors / 4 teams/supervisor
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 !
History of Outsourcing Outsourcing: • 1) Manufacturing (things) • 2) Electronic design • 3) Low-level service jobs • 4) Call centers • 5) Customer support • 6) Implementation • … • x) Tomorrow ?!?
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 • ETHZhas massive experience with this !
Global Collaboration Global 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 ! :-)
The Setup Communication: Italian Supervisor Danish Supervisor GROUP intra-team inter-team supervision TEAM TEAM supervisor-supervisor communication TEAM Argentinian Supervisor
Project • Project: • T1) Logic • T2) GUI + Network • T3) Artificial Intelligence Computer Game ! Logic(rules) (e.g., Chinese Checkers) GUI + Netwk A.I. (strategy) G1) G2) G3) …
...one more Thing Italian Supervisor Danish Supervisor GROUP TEAM TEAM “CUSTOMER” TEAM TEAM Brazilian Supervisor Argentinian Supervisor
Plan (Located on the Southern Hemisphere) • Australia and Brazil: • Assignment 0: Setup • Assignment 1:Requirements document • Assignment 2: First Communication in the Groupand requirements consolidation • Assignment 3: Test plan • All the other teams: • Assignment 1: Setup • Assignment 2: First Communication in the Groupand requirements consolidation • Assignment 3: Interface Specifications using Contracts • Assignment 4: Testing and API Consolidation • Assignment 5: Implementation (Role of "Customers")
Eiffel • Object-Oriented Programming Languagewith static typing (like Java and C#) • Supports Design by Contract ! • Which is good for Global Collaboration • Often used as analysis-and-designlanguage • 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)
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 out AFTER Oct 1 !
Questions ? 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 !!!
<< 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
Goals of the Course Product(70%): • Designa system • Implementthe designed system • Applyscientific methods and techniques • Evaluatethe resulting system • Relateto existing systems, methods, and techniques Process(30%): • Developand maintaina plan for the collaboration • Reflectcontinually on the collaboration
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
Goals of the Course Product(70%): • Designa system • Implementthe designed system • Applyscientific methods and techniques • Evaluatethe resulting system • Relateto existing systems, methods, and techniques Process(30%): • Developand maintaina plan for the collaboration • Reflectcontinually on the collaboration
Cognitive Processes Describe? Explain? Reflect? vs vs
The SOLO Taxonomy Graphic Legend problem / question / cue known related issue - given! hypothetical related issue - not given! student response Q R R Q R Q R Q Q R R' Note: the list is non-exhaustive QUANTITATIVE QUALITATIVE QUALITATIVE SOLO 2 ”uni-structural” SOLO 3 “multi-structural” SOLO 4 “relational” SOLO 5 “extended abstract” • identify • define • count • name • recite • paraphrase • follow(simple)instructions • … • describe • combine • structure • classify • enumerate • list • do algorithm • applymethod • … • explain • analyze • compare • contrast • integrate • relate • applytheory (to its domain) • … • reflect • theorize • generalize • hypothesize • predict • judge • transfer theory (to new domain) • …
The SOLO Taxonomy [Biggs & Collis, 1982] SOLO 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.
Describe R Q • Describe(SOLO 3): • Example: de·scribe[dih-skrahyb] transitive verb(used with object), de·scribed, de·scrib·ing 1. 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"). "[...] 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. [...]"
Explain Q R • Explain(SOLO 4): • Example: ex·plain[k-spln] transitive verb,ex·plained, ex·plain·ing, ex·plains 1. 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"). "[...] 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. [...]"
Reflect R Q R' • Reflect(SOLO 5): • Example: re·flect[r-flkt] intransitive verb, re·flect·ed, re·flect·ing, re·flects 1. 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 ] "[...] If we had done X instead of Y, presumably either A, B, or C would have happened. <Substantiate>[...]"
Quizzzzz... R Q R Q R Q Q R R' • Consider the text: • Is this...? "[...] 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. [...]" D) explain E) reflect C) describe B) identify A) "bogus" R Q (SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4) (SOLO 5)
Quizzzzz... R Q R Q R Q Q R R' • Consider the text: • Is this...? "[...] 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. [...]" D) explain E) reflect C) describe B) identify A) "bogus" R Q (SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4) (SOLO 5)
Quizzzzz... R Q R Q R Q Q R R' • Consider the text: • Is this...? "[...] 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. [...]" D) explain E) reflect C) describe B) identify A) "bogus" R Q (SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4) (SOLO 5)
Quizzzzz... R Q R Q R Q Q R R' • Consider the text: • Is this...? "[...] 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. [...]" D) explain E) reflect C) describe B) identify A) "bogus" R Q (SOLO 1) (SOLO 2) (SOLO 3) (SOLO 4) (SOLO 5)
describe<explain<reflect Notion of an Argument!
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] (Pand 'P ➝ Q' )implies Q
About Argumentation • "Monty Python and the Holy Grail"(1974) • Scene V: "The Witch":
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)
Deduction vs Induction Deduction: whole parts: (aka. “top-down reasoning”) abstract concrete general specific Induction: parts whole: (aka. “bottom-up reasoning”) concrete abstract specific general whole whole A B C A B C • Just two different ways of reasoning: • Deduction Induction (just swap directions of arrows)
Deductive Reasoning: witch(girl) • "Deduction": (aka. ”top-down reasoning”) witch(girl) female(X) ∧burns(X) => witch(X) female(girl) burns(girl) %- by observation ----- wooden(X) => burns(X) wooden(girl) floats(X) => wooden(X) floats(girl) sameweight(X,Y) ∧ floats(Y) => floats(X) sameweight(girl,duck) floats(duck) %- by experiment ----- %- King Arthur -----
Inductive Reasoning: witch(girl) • "Induction": (aka. ”bottom-up reasoning”) witch(girl) female(X) ∧ burns(X) => witch(X) female(girl) burns(girl) %- by observation ----- wooden(X) => burns(X) wooden(girl) floats(X) => wooden(X) floats(girl) sameweight(X,Y) ∧ floats(Y) => floats(X) sameweight(girl,duck) floats(duck) %- by experiment ----- %- King Arthur -----
Induction vs. Deduction Deduction whole parts: Induction parts whole: • Just two different ways of reasoning: • Deduction Induction (just swap directions of arrows)
Nomination of CIA Director 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 "DEDUCTIVEvs. INDUCTIVE REASONING" LEVIN: "You in my office discussed, I think, a very interesting approach, which is the difference betweenstarting with a conclusion and trying to prove itand insteadstarting with digging into all the facts and seeing where they take you. Would you just describe for us that difference and why[...]?" 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."
Goals of the Course Product(70%): • Designa system • Implementthe designed system • Applyscientific methods and techniques • Evaluatethe resulting system • Relateto existing systems, methods, and techniques Process(30%): • Developand maintaina plan for the collaboration • Reflectcontinually on the collaboration
<< 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
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 aGroup [ Source: "ArbejdsgruppensPsykologi", B. Lenéer-Axelson & I. Thylefors, 1983 ] NB: recursive definition!
Common Goals Common goals: • Intended Learning Outcomes: NB: global context !
Common Conditions Common 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: global context !
Norm Pronunciation:/'norm/ Function:noun Etymology: 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.
Norms (known vs unknown) • Norms are extremely important for groups! • Some are "explicit" (aka, "known norm"): • explicitly (consciously) decidedby the group • Many are "implicit" (aka, "unknown norm"): • implicitly (subconsciously) adoptedby the group • Advise: implicit explicitnorms • everyone is aware of the group norms • have a chance of resolving related problems NB: global context !
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: global context !
Constitution Ahead of Time! • Avoid deferring norm decisions! • Agree on norms while there are no conflicts! With a Constitution: Withouta Constitution: Conflict! Conflict resolved via agreed upon rules Conflict! Rules? (for resolution) => Effectivelytwoconflicts! => Conflictresolved via rules