Transcript
Page 1: Task Pattern to support Task-centric Social Software Engineering

Task Pattern to Support Task-Centric Social Software Engineering

Benedikt Schmidt, SAP Research CEC Darmstadt Wolfgang Reinhardt, University of Paderborn21. August 2009

Workshop on Social Information Retrieval in Technology Enhanced Learning (SIRTEL) 2009

Page 2: Task Pattern to support Task-centric Social Software Engineering

2009 / Page 2

1. Motivation

2. Tasks and Task Patterns

3. Task Patterns to support task-centric software development

4. Outlook

Agenda

Page 3: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Motivation – Software Development and Tasks

2009 / Page 3

Connect to flickr APIConnect to flickr API Include Plug-in to RCPInclude Plug-in to RCPHow to make UIHow to make UI

Build Plug-In to manage del-icio-us Bookmarks in RCP application

Build Plug-In to manage del-icio-us Bookmarks in RCP application

Tas

k D

ecom

posi

tion

Tas

k D

ecom

posi

tion

Kno

wle

dge

inte

nsiv

e pr

oces

ses

Kno

wle

dge

inte

nsiv

e pr

oces

ses

Production

Retrieval & ConsumptionOrganization

Developer

Page 4: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Motivation – What now?

©2009 / Page 4

Collecting, distributing and structuring community knowledge in a task-centric

manner

Product process complementarity

NOT: structure in detail,See [Schmidt,Riss09]

Automation of creation/access

Software development domain

Page 5: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Social Software Engineering

Aspects Software Engineering as knowledge work, as teamwork Experts exist, but not at hand Very specific problems Complex domain with tons of specializations and different expertise

Chances [Social Software] Engineering vs. Social [Software Engineering]

Community of developers Understanding SE as a social process

Need for assisted knowledge sharing Enhance transparency and (personal/artifact) awareness in software teams

Page 6: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

SIR in Social Software Engineering

2009 / Page 6

Information as externalized artifacts and personal expertise SIR can allow the retrieval of stored data or domain experts Already different methods and techniques applied

Collaborative filtering Social bookmarking Recommender systems Social search

SIR… why? …come from to information and to knowledge

Information: syntactic/semantic dimension is not enough [Peirce] Knowledge: rational capacity, action oriented [Dretske, Polanyi, Kern],

problem oriented

SIR… why? …come from to information and to knowledge

Information: syntactic/semantic dimension is not enough [Peirce] Knowledge: rational capacity, action oriented [Dretske, Polanyi, Kern],

problem oriented

Page 7: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Task ExecutionTask Execution

Process and Product in Software Development

2009 / Page 7

Externalization of tasks is key to supportExternalization of tasks is key to support

Weakly-structured, iterative, unpredictable processWeakly-structured, iterative, unpredictable process ProductProduct

CodeCodeProblemSolvingProblemSolving

KnowledgeCollectionKnowledgeCollection CodingCodingOrganizationOrganization

Share contextualized information to enable knowledge building Take process and product seriously

Software Development product process complementarity [Floyd]

SIR… in Software DevelopmentSIR… in Software Development

Page 8: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Information Retrieval in Software Engineering

2009 / Page 8

Idea of a structure which balances different information requirementsIdea of a structure which balances different information requirements

Difficulty: Knowledge Requirements are individual Different knowledge levels require different material to learn

– Abstract information– Concrete information

Solved by: Ask colleagues Just read “everything”

Page 9: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Tasks in Software Development

Tasks in Software engineering: Support structured decomposition of tasks Easy integration of ticket systems Accelerate access to code resources

Frequently used plug-ins to Eclipse IDE: MyLyn

Task List Highlighted Code Resoruces to task

Filter by task

Page 10: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Going beyond MyLyn

MyLyn supports the coding process What about the process of knowledge acqusition,

organization, etc. Tasktop completes the picture Holistic support of the software development process

with information objects in the PC …so everythings all right?

No… as the knowledge is not re-used

Resource List in Tasktop

Require re-use structureRequire re-use structure

Page 11: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Task Pattern

Task Patterns are:

Structure for experience management… learn how to execute a programming task Cluster tasks with similar goal in similar context Giving meaning of heterogeonous resources in task context Abstraction Services realize different abstraction degrees: instance, concept, example Decisions/Directions to identify execution scope Problems/Solutions to address deviations Task Pattern execute a life-cycle

Task Pattern life-cycle

Task Pattern structure

Page 12: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

How to re-use…

Tasktop: Hints to:

knowledge acquisition and organization process Clusters with respect to “sense in the task context” (manually)

MyLyn: Software as task product First step: Create Examples Vision: abstract from examples and create very domain specific “patterns”

Page 13: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

What does it mean for the Task Pattern structure

Extend to differentiate between process and product Abstraction Services as described in [Schmidt, Riss 2009]

Information Abstraction Service Person Abstraction Service Subtask Abstraction Service

Additionally an Abstraction Service for the product: Code Abstraction Service Provide an access layer for Task Pattern in an IDE

Retrieve Task Pattern Instantiate Task Pattern Create / Enhance Task Pattern

Page 14: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

How does it look like?…Eclipse plug-in

Information Abstraction Service

Code Abstraction Service

Task Pattern functionalities for the task-side bar in eclipse

Plug-in for interaction with code abstraction Service

Organize contexts Easy copy-paste

Page 15: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Difficulties

2009 / Page 15

Identify domain scope, context of a pattern Classify or categorize

May be: Make categories from free text names Systemic functional grammar

Page 16: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Conclusion

Outlook Currently a master thesis to realize the concept is running Apply it to university courses which each year extend a given

software , the MoKEx project

the knowledge is lost each year

Summary Show application area of Task Pattern in very specific area Benefit of Task-centric organization of work with respect to user

support

Page 17: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

© SAP 2009 / Page 17

Thank you!... Let’s discuss…

Page 18: Task Pattern to support Task-centric Social Software Engineering

MotivationMotivation Tasks and Task PatternTasks and Task Pattern Support task-centric Software engineeringSupport task-centric Software engineering ConclusionConclusion

Floyd, Christiane: Outline of a paradigm change in software-engineering.

Polanyi, M.:The tacit dimension

Dretske, F.: Knowledge and the flow of information


Recommended