Experiences from Human-Centric Software Engineering · PDF file · 2013-07-20•...
Transcript of Experiences from Human-Centric Software Engineering · PDF file · 2013-07-20•...
Experiences from Human-Centric Software Engineering Research
Muhammad Ali Babar Lancaster University, UK & IT University of Copenhagen
‣ Human-Centric software engineering (SE) research
‣ Empirical research in SE
‣ Examples of our efforts
‣ Structures of global software development (GSD) teams
‣ An infrastructure for supporting ABC for GSD (ABC4GSD)
‣ Leveraging cloud computing for GSD
‣ Concluding remarks
Outline of the Talk
Background Brief
M. Ali Babar Reader in Software Engineering Lancaster University, UK Other work engagements: ITU, CPH: Dec. 2009 … Lero, Ireland: 2007 – 2009 NICTA, Australia: 2003 – 2007 JRCASE, Macquarie University: 2001 – 2003 Various industrial roles in IT: Prior to 2001 Research in software architecture, Service Orientation, Cloud Computing, and Software Development Paradigm http://malibabar.wordpress.com
Key Motivators ‣ Software engineering is a human-intensive activity but most of
the research is artifact-centric
‣ Human-centric software engineering research
‣ Empirically understanding and supporting humans’ interactions with artifacts and with each other for SE
‣ Enabling humans to work with artifact-centric research
‣ Empirically directing the development and/or assessment of methods, techniques, and tools from human-centric perspective
‣ Improving support for empirical SE research
Empirical Research in SE ‣ Empiricism
‣ Generally being regarded at the heart of the modern scientific methods – theories should be based on our observations of the world rather than on intuition or faith
‣ Empirical SE
‣ The scientific use of quantitative and qualitative data to understand and improve software product and software development process (Vic Basili)
‣ Data is central element to address any research question
‣ Issues related to the validity form the core
‣ Status of Empirical Software Engineering
‣ 1.9% Controlled experiments in 5453 articles (1993 – 2002)
‣ 1.8% Empirical studies on Agile approaches in 1,996 articles
‣ Application of Activity Theory
‣ Leveraging Cloud Computing
Why isn’t Much Empirical Research in SE? ‣ Getting data from SE projects is hard
‣ Involvement of people, who are hardly available or expensive
‣ Large undertaking in complex organizational settings
‣ Research needs to be cost-justified & timely
‣ Non-standardized and rapidly changing technologies
‣ Seeking resources can be harder compared to other areas
‣ Needs skills and good understanding of several disciplines, e.g., statistics, sociology, psychology etc.
Examples of Our Efforts ‣ Sources of our inspiration
‣ Lack of understanding of structures for improving the quality of human, processes, and products!
‣ Addressing the limitations of existing tools and processes!
‣ Provision of tools more effectively and efficiently!
‣ Areas of exploration
‣ Theories of coordination and affordances
‣ Leveraging Activity Based Computing (ABC) and Cloud Computing
Global Software Engineering
Extended Team Model (ETM)
How the Work, Communication and Social structures look like?
Work structure
• Dynamicity • Interdependent Tasks • Formal hierarchies but tolerance for informality
Communication structure
• Frequent and Flat pattern • Use of divers media • Communication facilitator
Social Structure
• Cooperative culture • Leveraging existing social ties • Individual-driven socialization
Social Structures and Collaboration
Social supportive mechanisms
Company-Level
• Introducing Equality Model
• Nurturing Collegial Behavior
• Encouraging Information seeking and sharing
• Minimizing hierarchical hurdles
• Defining Facilitator Role
Team-Level
• Dynamic role selection
• Fair task allocation
• Ad-hoc P2P communication but keeping managers informed
• Scheduled team updates (e.g. daily progress report, customized scrum meetings)
• Communication with end-user over Bug tracking system
• Frequent iteration and delivery
Individual-Level
• Socialization and sharing cultural trainings
• Informal knowledge sharing
Structures of ETM and GSD challenges
Providing Tooling Support
Knowing the Current Landscape
160
ACM
480
IEEE
246
Springer Link
122
Science Direct
950
InterScience
1958
182
Data extraction
Protocol definition and assessmentsep.2011
Pilot searchessep.2011
sep.2011
sep.2011
oct.2011
Time
Duplicates
1328Tiltes
744Abstract
459Full text
228
oct.2012
[PS134]183
Data extraction
Tools
Activity-Based Computing
“The basic idea is simple. Make it possible to have all the material needed for an activity ready at hand, available with little or no mental overhead.”
[D. Norman, 1999]
Bardram, J. E. (2009). Activity-based computing for medical work in hospitals. ACM Transactions on Computer-Human Interaction (TOCHI), 16(2), 1–36. doi:http://doi.acm.org/10.1145/1534903.1534907
“Instead of seeing support for collaboration as an external application, the ABC framework integrates support for collaboration as a basic feature.”
[J.E. Bardram, 2009]
Activity Theory
ABC - Principles ‣ Activity is the core of the metaphor; an entity that collects all
the information needed for an activity
‣ Activity suspension and resumption - switching between different activities
‣ Activity roaming for providing a persistent model of the activities to enable them resume any where
‣ Activity sharing among users
‣ Activity adaptation to different devices based on the available resources
‣ Context-awareness to enable an activity adapt and adjust according to the context
‣ Activity Roaming
‣ Activity Awareness
Application of Activity Theory
A. Analysis
A. Design
A. Synthesis A. Evaluation
Activity
Action
Operation Plan AE ...Prepare and
manage results
B
A. EvaluationActivity
Action
Operation
Plan AE ...Prepare and
manage results
Interpret artifacts
Prepare reports
Presentresults
A. Design
A. Evaluation
D
Software architecture design framework
Context rules, e.g., organizational,
ethical, ...
Project manager, evaluation manager,
architect, ...
Collective knowledge
Stakeholders, organization staff
Capabilities. experience, and
competences
Software architecture
design
A
Software architecture evaluation framework
Context rules, e.g., organizational,
ethical, ...
Evaluation managerCandidate
architecture
Stakeholders, project manager, evaluation
manager, evaluation team, …
Capabilities. experience, and
competences
Validated architecture
C
Presentation tool
Context rules, e.g., organizational,
ethical, ...
Presenter Presentation
Evaluation team, sponsor, ...
Capabilities. experience, and
competences
Deliver presentation
E
Identifying Requirements
ABC4GSD Infrastructure
Asset
ArtifactApplication
User
Ecology
Activity
RelationshipInfo
Property
**
*1
1
*
**
Legend:
Aggregation
Entity
AssociationAssociation class
InheritanceComposition
Serverworkstation
Clientworkstation
App.1 [Python]
Server
Middleware
Queue
Forwarder
MasterClient
AppInterface [Python]
...
EclipsePlatform
Main server component Logger
Persistency Layer
Logger
App.1[Java]
AppInterface [Java]
...Plug-in.1
AppInterface Plug-in ...
ZeroMQ TCP sockets
ZeroMQ communication
channels
Interface of ABC4GSD
ContactView B
Latest opened resource
ActivityView A
Resource opened through the needs mechanism
ArtifactView C
Automatically hiding notification mechanism
DE
Subclipse delegation
Examples of subscription mechanism
Another View
Activity participants
Contact View plug-in B
Latest opened resource
Activity View plug-in A
Resource opened through the needs mechanism
Artifact View plug-in C
Automatically hiding notification mechanism
D
E
Experimental Development
Leveraging Cloud Computing for GSE
Why Cloud Computing Matters for GSE? ‣ Cloud computing has huge potential for GSE
‣ Testing as a Service (TaaS)
‣ Stress testing with cloud infrastructure
‣ Enabling offshore testing of application for sensitive data
‣ Collaborative environment in Clouds
‣ Just-in-Time (JIT) tool composition
‣ Processes, tools & context aligned
Source: http://aws.amazon.com/solutions/case-studies/8kmiles/
NexGen Infrastructure for GSE ‣ Context
‣ Providing supportive technologies to GSE teams
‣ Challenges
‣ Dozens of different tools used without easy integration
‣ Misalignment between tools, processes, and culture
‣ No Just-In-Time (JIT) composition as a service
‣ Proposed solution
‣ Cloud-based infrastructure for Tools as a Service (TaaS)
Some of the Advantages of TaaS for GSE
!
Requirements & Potential Solutions 1/2 ‣ Support for multiple organizations & teams
‣ Multi-tenancy for providing isolation between multiple services and multiple projects….
‣ Privacy and security handling services
‣ Tools versioning and bundling
‣ Version management for maintaining partitioning between different versions of tools & combining them as a tool suite
‣ Integration with commercially available tools
‣ Platform neutral APIs and compatible data structures
‣ Tools working with private data and artefacts
‣ Workflow like distributable data processing services
Requirements & Potential Solutions 2/2 ‣ Support for multiple types of persistence methods
‣ Design & exploit a multi-tenancy database driver
‣ Accessibility from multiple types of devices
‣ Dynamic distribution of processing load on devices & clouds
‣ Hooks for implementing or inter-changing with services for defining & selecting optimal configuration strategy for tools
‣ Transform responses to formats recognizable by clients
‣ Compliance with service level agreement (SLA) – QoS
‣ Specify machine readable & dynamically changeable SLAs
‣ Continuous monitoring & dynamic execution of service according to SLA specification (e.g., scalability rules / elasticity algorithms)
!
An Overview of a Reference Architecture
Supporting Migration to Could Computing ‣ Methods, processes, and tools are required
‣ Experimentally developing and assessing process support
‣ A case of migrating a software metrics system - Hackystat
‣ Supporting large number of organizations for process and product metrics in GSE
‣ Requires elastic computing and storage resources
‣ SaaS on IaaS (Amazon) or SaaS on PaaS (Goolge)
Supporting multiple stakeholders
Architectural Views of Hackystat in Cloud
A Generic Migration Process
Concluding Remarks! ‣ Human-Centric SE research is very important to improve
the quality of SE processes and products
‣ Empirical SE provides scientifically valid approaches to systematically gather and use evidence for that purpose
‣ Interdisciplinary collaboration plays important role
‣ Consumes extensive human, physical, and material resources whose utilization needs careful thinking
‣ Interest in people is vital
‣ Appreciation isn’t wide spread yet, but increasing rapidly
‣ More solid theoretical foundation of applying ABC for building SE tools in general and GSE tools in particular
‣ Further refinement of architectural design and features, e.g., cloud-enabled infrastructure
‣ Empirical evidence for viability and potential benefits
‣ Imminent need for process and tool support for migration and/or upgrade of applications and tools
Acknowledgements
‣ Structures in GSE research is part of Mansooreh Zahedi’s PhD
‣ ABC4GSD work is being performed with Paolo Tell
‣ TaaS work is being performed with Aufeef Chauhan
‣ Several academic and industrial colleagues have provided useful inputs and feedbacks
Thank You!
Questions M. Ali Babar [email protected] malibabar.wordpress.com