Introduction to WCF RIA Services for Silverlight 4 Developers
Pres cwi
1. Uncovering GSE Social Communities
as Agile Service Networks
Damian A. Tamburri, Patricia Lago and
Hans Van Vliet
1
www.s4group.cs.vu.nl
2. Roadmap
• Research Context
– Research Goal
– Questions and Methods
• Where are we now
– (Some) Key findings so far
• Next steps
2
3. Roadmap
• Research Context
– Research Goal
– Questions and Methods
• Where are we now
– (Some) Key findings so far
• Next steps
3
4. Research Context
Global Software
Engineering
is carried out by
global communities of
people… Benefits:
- Lower costs
- Cheap manpower
- Faster delivery
- Innovation
- Quality products
- …
4
5. Research Context
Global Software
Engineering
is carried out by
global communities of
people… Benefits:
- Lower costs
- Cheap manpower
- Faster delivery
- Innovation
- Quality products
- …
Paradise?
6
6. Research Context
Global Software
Engineering
is carried out by
global communities of
people… Benefits:
- Lower costs
- Cheap manpower
- Faster delivery
- Innovation
- Quality products
- …
Paradise? NO!*
7
* Standish Chaos Report 2008-2012, GARTNER Reports, NIST, etc…
7. Research Context
Agile Service Networks
(ASNs) are:
• Collaborative
• Dynamically evolving
• (self-)adaptable
• …
ASNs reflect
characteristics of
communities…
…
we want to use them
to support GSE
8
8. For Example…
NL Designers
India Testers
Appl.
Servic Appl.
e Servic
Cloud e
DB
Data
Data
How can we use ASNs to support?
mgt.
Servic mgt. A) bottom-up: sense & support
e Servic
e B) top-down: categorize & deploy
…
10
9. A) Bottom-up: sense the community type and
support it with ASNs
NL Designers
!
India Testers
Appl.
Servic Appl.
e Servic
Cloud e
DB
Data
mgt. Data
Servic mgt.
e Servic
e
11
10. A) Bottom-up: sense the community type and
support it with ASNs
NL Designers
!
India
Testers
Coord.
Servic
Appl. e
Servic Appl.
e Servic
Cloud e
add.
DB Servic
Data e
mgt. Data
Servic mgt.
e Servic
e
Consistency
Community Service Community
Type 2 12
Type 1
11. B) top-down: categorize problem to known
community types and deploy ASNs
NL
India
Community
Type X
Community
Type Y
13
12. B) top-down: categorize problem to known
community types and deploy ASNs
NL Designers
TYPE X
India Testers
TYPE Y
Appl.
Servic Appl.
e Servic
Cloud e
add.
DB Servic
Data e
mgt. Data
Servic mgt.
e Servic
e
add.
add.
Servic
Servic
e 14
e
13. Research Goal
Goal: “Support communities working in global software
engineering (GSE).”
Adapt
networks to Identify
adapt communities
communities
Monitor Associate
service service
networks networks
Falsifiable Hypothesis: “Social communities can be
represented and supported by service networks.”
15
14. Research Questions and Methods
• RQ1: What types of social communities are known in literature?
HOW Systematic Literature Review of Organizational-Social-Structures
for software engineering
• RQ2: How can one uncover an observable social community (e.g. a
GSE effort) using known types?
HOW formulate a decision problem and solve it
• RQ3: How can one represent the resulting “socio-technical web”
with services?
HOW Service Identification Methods to be applied on empirical data
• RQ4: How can one support the resulting “socio-technical web” with
service networks?
HOW Organizations and Systems Theory + Social-Network Analysis
16
15. Roadmap
• Research Context
– Research Goal RQ1: What types of
social communities are
– Questions and Methods known in literature?
• Where are we now 1. Social Community
Types: state-of-the-art
– (Some) Key findings so far
• Next steps 2. Decision-tree
RQ2: How can one uncover an
observable social community
(e.g. a GSE effort) using known
types?
17
16. RQ1 key finding: state-of-the-art in social
community types
• Using a Grounded-Theory SLR* we found 13
relevant community types:
* ACM Computing Surveys [1]
18
19. RQ1 state-of-the-art in social community
types: key observation
• Project teams are well defined, clear-cut community
types… but they are one among 13 types.
Implication – traditional software engineering has
considered only one social community to build software.
Can we use other types to support new
challenges, e.g. in GSE?
21
20. RQ2 Key Finding: a decision- STRUCTURE
tree to uncover latent social NOT A COMMUNITY YES
communities for software SITUATEDNESS
development* !
COP
YES
NO
DISPERSION
NO YES
PROBLEM INFORMALITY
NO YES NO YES IN
CULTURE ROI
FORMALITY
NO YES LC NO YES
NO YES FN
DURATION
VISIBILITY GOVERNANCE ENGAGEMENT
NO YES FG SC NO YES NO YES
SN YES KC PSC NO NOP IC
COHESION
PT WG
NO YES
* IEEE Software [2] 22
21. For Example…
NL Designers
India Testers
Appl.
Servic Appl.
e Servic
Cloud e
DB
Data
mgt. Data How can we use the decision tree to
mgt.
Servic
Servic
uncover the NL community type?
e
e
23
22. STRUCTURE
For Example… We answer NOT A COMMUNITY YES
questions! SITUATEDNESS
!
COP
YES
NO
DISPERSION
NO YES
PROBLEM INFORMALITY
NO YES NO YES IN
CULTURE ROI
FORMALITY
NO YES LC NO YES
NO YES FN
DURATION
VISIBILITY GOVERNANCE ENGAGEMENT
NO YES FG SC NO YES NO YES
SN YES KC PSC NO NOP IC
COHESION
PT WG
NO YES
24
23. RQ2 Key Finding: use of the tree
The decision-tree uncovers observable social community types:
Adapt
networks to Identify
adapt communities
communities
Monitor Associate
service service
networks networks
Validating the tree:
– Empirical Evidence (CAPGEMINI + NOKIA Siemens Networks)
– Proof of correctness-by-construction for the decision tree
26
24. Roadmap
• Research Context
– Research Goal
– Questions and Methods
• Where are we now
– (Some) Key findings so far
• Next steps
27
25. Research Questions and Methods
• RQ1: What types of social communities are known in literature?
HOW Systematic Literature Review of Organizational-Social-Structures
for software engineering
• RQ2: How can one uncover an observable social community (e.g. a
GSE effort) using known types?
HOW formulate a decision problem and solve it
• RQ3: How can one represent the resulting “socio-technical web”
with services?
HOW Service Identification Methods to be applied on empirical data
• RQ4: How can one support the resulting “socio-technical web” with
service networks?
– Organizations and Systems Theory + Social-Network Analysis
28
26. RQ3: How can one represent the resulting
“socio-technical web” with services?
• empirical data describing communities (F+NF requirements)
• Use service identification methods* [4]
Adapt
• 13 community types networks to Identify
13 service cliques (?) adapt
communities
communities
Monitor Associate
service service
networks networks
• ServiceWave 2010 29
27. RQ4: How can one support the resulting “socio-
technical web” with service networks?
1. Analyze service network, e.g.
1. To locate and mitigate organizational barriers
2. To maintain socio-technical congruence [5]
3. …
2. Adapt service network, e.g. Adapt
1. To support change in communities networks to Identify
adapt communities
2. To support open-enterprises communities
3. …
Monitor Associate
service service
networks networks
30
29. Bibliography
• [1] D.A. Tamburri, P. Lago, Hans Van Vliet “Organizational Social Structures
for Software Engineering” - ACM Computing Surveys, 2012
• [2] IEEE Software, Special-Issue on Bridging Software Communities
through Social Networking, “Uncovering Latent Social Communities in
global software development” 2012
• [3] “supporting cooperation and collaboration in global software
engineering with agile service networks” – Proceedings of ECSA 2011 –
Essen (DL) - 2011
• [4] “Patricia Lago: Service Identification Methods: A Systematic Literature
Review. ServiceWave 2010: 37-50”
• [5] “Marcelo Cataldo, James D. Herbsleb, Kathleen M. Carley: Socio-
technical congruence: a framework for assessing the impact of technical
and work dependencies on software development productivity. ESEM
2008:2-11”
32
Editor's Notes
In GSE ci sonotantiproblemiconnessialladistanza, e.g. riduzionedeicosti Ma non sicapisceancora se ci sonoeffettivamente. La maggior parte di questecomunitàlavorano online. Il paradigma di ASNs riflette le stessecaratteristiche di social communities for GSE e di conseguenza, ottimizzandoilsupporto con ASNs vogliamovedere se riusciamo a risolvere I problemi di GSE
In GSE ci sonotantiproblemiconnessialladistanza, e.g. riduzionedeicosti Ma non sicapisceancora se ci sonoeffettivamente. La maggior parte di questecomunitàlavorano online. Il paradigma di ASNs riflette le stessecaratteristiche di social communities for GSE e di conseguenza, ottimizzandoilsupporto con ASNs vogliamovedere se riusciamo a risolvere I problemi di GSE
The problem is that GSE has much more to do about people than it does technologies or frameworks… so the success rate is connected to how global development communities fare and their level of collaboration, etc. We think that technology and more in particular, services can support GSE by supporting the communities it creates.
ASNs are emerging networks of collaborative service applications (nodes) which interoperate through agile transactions (edges), i.e. transactions which react to context change dynamically adapting themselves (e.g. retrieving more nodes, or changing the transaction policy or its interested members). Moreover, ASNs should follow agile principles by design (i.e. focus on people, collaboration, interactions, responding to change, etc.) – in addition, ASNs transcend geographical distance and encompass multiple federate organizations, etc. so ASNs already have many similarities with both GSE and social communities (e.g. self- adaptability, self-management, self-similarity, etc.)There’s a much fancier definition in the S-cube knowledge-base: An Agile Service Network (ASN) comprises large numbers of long-running, highly dynamic complex end-to-end service interactions reflecting asynchronous message flows that typically transcend several organizations and span geographical locations. The term complex end-to-end service interaction signifies a succession of automated business processes, which are involved in joint inter-company business conversations and transactions across a federation of cooperating organizations. {SYN: ASN}http://www.s-cube-network.eu/km/terms/a/agile-service-network
It represents ultra-large-scale enterprise partnerships, using and allowing the collaboration of business-services, people, entirecompanies even.
Raccontiamounabellastoriellinasuquestocasostupido di GSE e poi ci chiediamo la domanda sotto
In GSE ci sonotantiproblemiconnessialladistanza, e.g. riduzionedeicosti Ma non sicapisceancora se ci sonoeffettivamente. La maggior parte di questecomunitàlavorano online. Il paradigma di ASNs riflette le stessecaratteristiche di social communities for GSE e di conseguenza, ottimizzandoilsupporto con ASNs vogliamovedere se riusciamo a risolvere I problemi di GSE
In GSE ci sonotantiproblemiconnessialladistanza, e.g. riduzionedeicosti Ma non sicapisceancora se ci sonoeffettivamente. La maggior parte di questecomunitàlavorano online. Il paradigma di ASNs riflette le stessecaratteristiche di social communities for GSE e di conseguenza, ottimizzandoilsupporto con ASNs vogliamovedere se riusciamo a risolvere I problemi di GSE
In GSE ci sonotantiproblemiconnessialladistanza, e.g. riduzionedeicosti Ma non sicapisceancora se ci sonoeffettivamente. La maggior parte di questecomunitàlavorano online. Il paradigma di ASNs riflette le stessecaratteristiche di social communities for GSE e di conseguenza, ottimizzandoilsupporto con ASNs vogliamovedere se riusciamo a risolvere I problemi di GSE
In GSE ci sonotantiproblemiconnessialladistanza, e.g. riduzionedeicosti Ma non sicapisceancora se ci sonoeffettivamente. La maggior parte di questecomunitàlavorano online. Il paradigma di ASNs riflette le stessecaratteristiche di social communities for GSE e di conseguenza, ottimizzandoilsupporto con ASNs vogliamovedere se riusciamo a risolvere I problemi di GSE
Whatever the approach might be, the goal at this point is clear, we must find a way to support communities working in global software engineering. Of course as diligent scholars, we also have a falsifiable hypothesis… can service networks really support communities? Well we hope to know this by the end of the year…
The goal we have just stated leads to a minimal set of research questions: each focusing on a key component – community types, a decision mechanism to identify them, a set of services for each community type and finally, methods to analyze, adapt and evolve the community.
Starting from those research questions we set out to explore this uncharted area of software engineering… so far we were able to provide an answer to our first two research questions: 1 with the state-of-the-art in social communities ; 2 with a decision tree to identify communities… well, let’s take a look
We started off with an SLR on organizational social structures and we found 13 types… you can see them here arranged by meta-types <descrivere I metatipi>
And here you have the very same representation in a comfty UML-style meta-model3messaggi:1- caratterizzato 13 tipi ma sofware engineering associa solo project teams2- in realtà per Sweng solo due sonotradizionalmenteusati3- per poterstudiare come risolvere I problemi GSE dobbiamocapireboottom-up (decision-tree) chetipo di social communitiesistono in aziendanowsdays, come funzionano e a quali tipi di community corrispondono, questo ci permette di capirne I problemi e tentare di risolverli in manieriasemiautomatica con ASNs; quandosappiamochetipo di commuitysupportano GSE e per risolverequaliproblemi, possiamousare I risultati di ricerca per deployare la community in maniera top-down
Let’s focus on ourconfort-zone for a second… immediately when we think of a software engineering or development problem, you think of a team that can be tasked with solving that problem…you think of skills decomposition, you think of roles in a team, software engineering team, design team, etc. why is that? Project-teams are merely one out of 13 relevant types we observed in literature. Now in software engineering practice we know that another type has emerged somewhat recently, social networks for example, in open-source communities…
Bisognaintrodurre I due tipi centrali in software engineering… e poi usarel’argomentazione per introdurre ASNs come strumenti bottom up per supportare lo sviluppo e top down per ingegnerizzare la community e supportarla (e.g. supportarnel’evoluzione)
To uncover observable community types, we formulated a decision problem and proposed a solution with this decision-tree. We used empirical evidence from our survey [1] to identify mutual-exclusion (i.e. “this type doesn’t work with that type”), implicational (i.e. “this attribute is necessary but not enough for this type”) and sufficiency relations (i.e. “this attribute is sufficient to identify this type”) between types. The nodes on the tree represent key defining attributes that need to be observed before a type is identified (or rather, both necessary and sufficient attributes) They are formulated in terms of a question, e.g. “do you use informal interactions only?”
Raccontiamounabellastoriellinasuquestocasostupido di GSE e poi ci chiediamo la domanda sotto
To uncover observable community types, we formulated a decision problem and proposed a solution with this decision tree. We used empirical evidence from our survey [1] to identify mutual-exclusion (i.e. “this type doesn’t work with that type”), implicational (i.e. “this attribute is necessary but not enough for this type”) and sufficiency relations (i.e. “this attribute is sufficient to identify this type”) between types. The nodes on the tree represent key defining attributes that need to be observed before a type is identified (or rather, both necessary and sufficient attributes)
I read all the material I had and tried to understand it with support by martin. After I finished reading I started the case-study. I started from the tree. Trying to find an answer to each question following the descending visit. I then found that the organizational information available was too much to reduce it into a single visit. The tree by itself was not enough. A Template with all the questions was needed.REFLECTION ON THE TEMPLATE:This can be used as a checklist to get organizational information which might be missing (and should maybe be evident)It can be used also as a guideline to structure or engineer a social community for software engineeringIt covers the possibility of multiple social communities be merged together (e.g. it might be possible that all the infos you have do transcend location, therefore they all regard the macrostructure)What if we switch between “community members” an “you” and transform this into a questionnaire .e.g. for an online survey? This could be used as a set of questions to determine the rich structure and microstructure.