280 likes | 482 Views
Software Development: Interdependence & Coordination. Software Engineering Project Management ELG 5100. Introduction. The success of software development projects depends on carefully coordinating the effort of many individuals across the multiple stages of the development process.
E N D
Software Development:Interdependence & Coordination Software Engineering Project Management ELG 5100
Introduction • The success of software development projects depends on carefully coordinating the effort of many individuals across the multiple stages of the development process. • Insufficient team collaboration often challenges global software engineering projects. Group awareness can improve teams’ trust, relationships, and efficiency.
Mismatches between coordination requirements derived and coordination behavior have been shown to have a negative impact on the quality of complex systems such as airplane engines or automobiles. In software engineering, coordination breakdowns can lead to higher number of defects and higher costs. • More than half of all distributed projects fail, most often owing to insufficient communication and trust. Awareness is necessary to coordinate group activities and ensure that individual contributions are relevant to the whole group.
Why S/W projects fail • More than 8000 projects indicate that major sources of software project failure lie - • Less with shortfalls in formal method skills • More with shortfalls in skills to deal with stakeholder value propositions Top 6 reasons – • Incomplete requirements • Lack of user involvement • Lack of resources • Unrealistic expectations • Lack of executive support • Changing requirements and specifications
Results None of the six have to do with choices of platform, development environment, language, or hardware. Five of the six have to do with • Communications between Builders. • Stakeholders (users or clients).
Interdependence Interdependence is a dynamic of being mutually responsible to and sharing a common set of principles with others andrely on each other in order to effectively function.
Interdependence Software development effort estimates are frequently too low, which may lead to poor project plans and project failures. One reason for this bias seems to be that the effort estimates produced by software developers are affected by information that has no relevance for the actual use of effort. We attempted to acquire a better understanding of the underlying mechanisms and the robustness of this type of estimation bias. For this purpose, 374 software developers were studied working in outsourcing companies to participate in a set of three experiments. The experiments examined the connection between estimation bias and developer dimensions: self-construal (how one sees oneself), thinking style, nationality, experience, skill, education, sex, and organizational role.
Results • It was found that there was negative impact on the software development due to thinking style, nationality, experience, skill, education. • The most interesting finding may be that the estimation bias increased significantly with higher levels of interdependence, i.e., with stronger emphasis on connectedness, social context, and relationships.
Cultural Differences National culture – • American managers have a hamburger style of management. They start with sweet talk – the top of the bun. Then the criticism is slipped in – the meat. Finally, some encouraging words – the bottom bun. • With the Germans, all one gets is the meat. • With the Japanese, all one gets is the bun; one has to smell the meat.
Awareness is must – • Activity awareness: • What are the others doing? • Availability awareness: • When can I reach them? • Process awareness: • What are they doing? • Perspective awareness: • What are the others thinking, and why?
Improving awareness and familiarity with other members helps
There are four types of group awareness: • Informal awareness, also called presence awareness, provides information about who is around and their availability through IM and VoIP tools. • Group-structural awareness provides knowledge about team members’ roles and teams’ internal structures. • Workspace awarenessprovides information about team members’ interactions with shared artifacts within a workspace. • Social awarenessrefers to the information that team members maintain about others in a conversational context and the understanding that they have about social connections within a group.
ALM • Group Awareness Support in Application Life-Cycle Management Platforms. • Application Life-cycle Management (ALM) is a continuous process of managing an application’s life cycle through platforms that provide a project workspace with an integrated tool set encompassing all software development activities including requirements management, design, coding, testing, tracking, and release management.
Trac: Tracis an ALM platform that takes a minimalistic approach to project lifecycle management. It combines an integrated wiki, an issue tracking system, and a front-end interface to a Subversion source code management system, with plug-ins providing other features. • Google Code: Google Code offers a project-hosting service similar to Trac. However, unlike Trac, Google Code is a hosted service and as such can’t be extended through plug-ins. It supports both workspace awareness, by email and RSS notifications, and group-structural awareness, by managing permissions to edit artifacts. • Assembla: Assemblais a Web-based ALM platform that hosts both open source and commercial software. Assemblaimproves on other Web-based environments in a few notable aspects. First, with respect to group-structural awareness, Second, as for workspace awareness, notifications of changes within a workspace are available via Twitter, in addition to email and RSS feeds, Third, Assembla supports synchronous communication via instant messaging.
Jazz: IBM Rational developed Jazz as an extensible platform that’s part of a development suite of tools called collaborativeALM. Jazz has two clients: one is a Web application for project management tasks and the other is a full-featured desktop application called Rational Team Concert (RTC). • Team Foundation Server: TFS is Microsoft’s ALM platform. Its characteristics and features are similar to those of IBM Jazz. TFS provides support levels similar to Jazz with respect to group-structural and workspace awareness. It also supports informal awareness.
Case study Sam and Sara are working in a distributed team that is developing a mobile app. Whereas Sam likes to frequently check his code changes and thus ensure growing functionality, Sara tries to see the bigger picture of usability and wants to first implement a consistent handling of all functions. In working with Sam, she’s frustrated that he seemingly doesn’t care about the overall performance. Both have a different working style and neither adjusts to the other. They’re unaware of each other’s strengths, behaviors, and communication needs. Worse, they’re unaware of the growing tensions, thus endangering the project, although both are individually trying to make it a success.
TFS and Visual Studio augmented with a social awareness plug-in
A user’s profile with connected services, education, and work-related experience.
With use of ALM tool The social awareness plug-in installed in the ALM platform regularly updates developers’ awareness networks to incorporate the posts from the people who are involved in the same work items (for example, those who have reported or commented on the same issue). Other than Twitter, Sara has connected her LinkedIn account to the plug-in, so Sam can also see from her profile that Sara is very well known in the human-computer interaction community. Therefore, when Sam looks at some of the user-interface views that Sara modified, he realizes that she is right and that her reputation as a usability expert is well deserved. Therefore, he decides also to apply the same solution to the new view before committing. Sara then reviews and approves the change set committed by Sam.
Concept of Tagging • A tag is a freely chosen keyword or term that is associated with or assigned to a piece of information. In the context of software development, tags are used to annotate resources such as source files or test cases in order to support the process of finding these resources. • Multiple tags can be assigned to one resource. We use the term tag keyword to indicate the term that is used (e.g., usability), and the term tag instance to indicate instances of the tag keyword being applied to one or more resources.
Tagging Advantages • Not only is tagging used to support informal processes within the teams, it has also been adapted to the specific needs of software developers. • Different kinds of tags have emerged over the duration of a software project for processes that require metadata but are not formalized, ranging from architecture and planning to collaboration and testing.
Conclusion • The role of interdependence and coordination among the software developers remains the bottleneck for the development of a software engineering project. • In order to understand software development as a whole and in order to provide appropriate tool support, we have to understand both the technical and the social aspects of software development. • Therefore we strive for a working environment which incorporates high level easy to use tools to develop cooperation and understanding among the working classin order to get successful finl product.
References • MagneJørgensen and Stein Grimstad ”Software Development Estimation Biases: The Role of Interdependence” IEEE transactions on software engineering, vol. 38, no. 3, may/june2012 • Marcelo Cataldo and James D. Herbsleb “Coordination Breakdowns and Their Impact on Development Productivity and Software Failures” IEEE transactions on software engineering, vol. 39, no. 3, march 2013 • FilippoLanubile, Fabio Calefato, and ChristofEbert “Group Awareness in Global Software Engineering” • C. Ebert, Global Software and IT: A Guide to Distributed Development, Projects and Outsourcing, Wiley, 2012. • ChristophTreude and Margaret-Anne Storey “Work Item Tagging: Communicating Concerns in Collaborative Software Development” IEEE transactions on software engineering, vol. 38, no. 1, january/february 2012
Thank you Submitted by: Harman Singh Sidhu(7100594) Inderpreet Singh (7106543)