Solved by verified expert:provide a 1 – 2 page summary:APA formatWhat is Kanban?What is the problem identified in the article?How did Kanban solve it?
kanban_paper.pdf

Unformatted Attachment Preview

Journal of Software
A New Approach for Distributed Software Engineering
Teams Based on Kanban Method for Reducing
Dependency
Maha Khaled Yacoub1*, Mostafa Abdel Athim Mostafa2, Ahmed Bahaa Farid3
1 Arab
Academy for Science and Technology, Department of Information Systems, Cairo, Egypt, Egyptian.
Academy for Science and Technology and Maritime Transport, Cairo, Egypt, Department of
Information Systems, Cairo, Egypt.
Helwan University, Information Systems Department, Helwan, Egypt.
2 Arab
* Corresponding author. Email: Maha.k.yacoub@gmail.com
Manuscript submitted February 2, 2016; accepted April 10, 2016.
doi: 10.17706/jsw.11.12.1231-1241
Abstract: In today’s globalization with the shift towards Agility. Agile practices highly evaluates
communication to achieve improvement in the software development process and among development
team members. Stable communication can be difficult and a challenge in distributed agile environment.
Pointless communications and actions in software development projects do not decrease work in progress
and may cause failure. Getting rid of such a waste leads to a continuous flow process improvement,
decreasing team dependency. This is astudy of a distributed Kanban, for web portal as a proposed solution
for mitigating the communication challenges encountered in such environment. The declared benefits of
Kanban have gained. significant importance as an agile project management method in the software
development industry. Kanban approach helps managing and measuring the flow of work across developing
teams. Results show that Kanban has a positive effect, leading the team to communicate together when it is
needed. Compared to the previously used Scrum method by the sample teams, the use of Kanban causes
dependency reduction for the distributed team by 27%, keeping the pace of the development harmonized
across the whole team and improving maturity. This led to 98.9 of a done status for user stories, and 30%
customer satisfaction increase.
Key words: Kanban, agile, software development, communication, dependency; software engineering.
1. Introduction
Shifting software development industry from co-located software development to distributed Software
Development, led to a great competition between software developments companies around the world.
Growing interest continued by applying Agile development practices alongside distributed software
development in order to gather the benefits of both approaches. Organizations are more and more likely
distributing their production globally. They do that in order to catch some distribution fruits including , but
not limited to; time-zone production independence, access to well-educated labour, technical infrastructure
maturation,and cost reduction[1], improved proximity to the market and customers, and ability to reduce
time to-market, Therefore, software development is increasingly distributed to multiple sites involving
different cultures.
1231
Volume 11, Number 12, December 2016
Journal of Software
Agile software development success process depends on team interaction. The performance of the
development team determined by the interaction among team members, team interactions affects in
distributed teams. Distribution of teams globally struggle number of challenges. Top issues interactions in
distributed development projects are process management, communication, culture, technical and security.
With consistent, timely, and effective communication while developing software, in order to achieve and
improve the profession, communication is essential and must be effective to ensure that the benefits of
global delivery aren’t lost between the distributed parties. However, there are several factors contributes in
thechallenges that hinder communication in distributed environment.Geographical, cultural and temporal
distances as the key barriers for communication in globally distributed environments [2] and could cause
communication waste [3]. Results of observations about communication and distance highlight the
importance of understanding the dependencies among team members involved in software development
and how it affects the communication between members.Dependenciescan be understood in two ways.
First, dependencies between collaborators could causea delay waste represented by developer waiting for
the analyst, tester waiting for the developer, and so on. The second, dependencies are those between tasks
themselves. Waste is defined as any human activity consuming resources but not providing value [4].The
concept of waste as a lens used to identify non-value producing communication elements. Eliminating
waste helps companies to identify communication issues that are present in their development efforts[5].
Lean thinking was the practice used by Toyota to manage production operations for decades.Later on it
was adopted by the software engineering field [6]. As Lean is the most recent addition to the Agile software
development, it is used to eliminate all kinds of waste from the development process.
Kanban is one way to execute Lean thinking, in this study we focus on communication waste.Adopting the
Kanban method has become more popular in the software development and has obtained powerful
practitioner-driven movement born to support. This expectation is based on Kanban’s characteristics of
adaptability (welcoming changes) and visualization (visualising the progress for an easy management), as
well as being successful in driving team members to cooperate and communicate [7].
The rest of the paper is structured as follows: Section two defines the problem. Section three:presents a
literature review for the previous research efforts on the case study. Section4: describes the research design
proposed method, including the process for collecting the data as well as the design of the survey and
interviews. Section 5: presents the Thinkloud case study conducted design and results. Finally, Section 6:
concludes the paper summarising the findings.
2. Problem Definition
Though with the global high tech industry super abounds with smart developers yet many teams
continue to struggle to deliver projects on budget, on time, and with high quality [8], [9]. While people and
technology remain part of the equation, much can be obtained from a systematic view of processes.
Adopting wrong concepts as a practical method can crash your organization streamline, adding useless
practice that casues wates. Waste is the opposite of value (a capability delivered to the customer through
which the customer attains a tangible or intangible benefit) [10], [11]. So whatever feature or functionality
or process step that neither adds value nor is used will be considered waste and should be eliminated from
the process. Mary and Tom Poppendieck have defined seven wastes that are appropriate for software
development. Understanding waste in software development, can help teams eliminate them (or at least
reduce their impact) with respect to Agile software development. Generally, you will find these wastes
during sprint planning or during sprint execution. Those seven types of waste can be stated as follows:
partially done work, extra features, relearning, hand-offs, delays, task switching, defects. The following
diagram in Fig. 1 of effects analysis the team dynamics, reflecting the effect of dependencies. As a result,
1232
Volume 11, Number 12, December 2016
Journal of Software
dependency will increase communication, cycle time, bugs, and stress. Task switching and working under
stress may result in more bugs and will eventually decrease productivity, which, in turn, will decrease
Throughput. In addition, as long as there is unclear requirements and lack of knowledge there will be a
possibility for communication to occur among team. As a result, team members will start depending on
each other in a way to accomplish work in progress. So reducing the amount of communication and
coordination is a must; hence the team is a radical attack on the communication problem.
Fig. 1. Diagram of effects analysis the team dynamics, reflecting the effect of dependencies.
Ref. [12] state that there is much potential for conflict in distributed teams as members work across
cultural, geographical and time-bound environments. Conflict leads to ineffective communication and as
soon as team members stop communicating effectively, barriers begin to form between them leading to a
decrease in productivity and interaction [13]. According to the study made by [14], 74% of the problems of
distributed development were related to communication [15]. They found that the lack of communication
or poor quality of it was often the root cause behind adopting un-suitable agile practices [16].
Using Scrum, Scrum is strict. Close communication is necessary, making the pure Scrum practice
problematic [17], where un-needed communication in planned (daily stand up meeting), causing lack of
motivation and waste.As a result Scrum promotes a negative impact (waste)Waste is anything that does not
contribute to the value creation for the customer; hence, it should be removed (Al-Baik and Miller 2014).
3. Literature Review
Since software processes are largely dynamic and cooperative activities, the impact of software process
technology with its modelling languages, editors, and interpreters has only been small. In the 1980s, crucial
support processes, such as learning, technical communication, requirements negotiations, and customer
interaction, were poorly described in software process practices[18]. The reasons for most project failures
were not in the technical sector but seen in the managerial, due to poor team performance. This is caused
by careless attention to teamwork issues since people have a intentions to concentrate on the technical
aspects (hardware and software) rather than the people ware [19].
3.1. Scrum Challenges
Ref. [20] reported some results from surveys by the Design for Hybrid Agile Adoption Institute. 30% of
respondents are using distributed Agile, 40% use local Agile development, and about 85% of them have
distributed teams. In addition, the 30% of respondents that stated they are using distributed Agile
explained their use of this approach by the advantages and successes they achieved from this kind of
development, such as reducing the development cost, accessing the talent pool and resources, increasing
1233
Volume 11, Number 12, December 2016
Journal of Software
team productivity, and decreasing the cost of having high quality software[21].
The key features of agile methods are continuous requirements gathering; frequent face-to-face
communication; daily meetings, pair programming; refactoring; continuous integration; early expert
customer feedback; and documentation [22].
Based on theoretical predictions and empirical observations;dependencies between software
components create dependencies between the developers implementing those components[23].
Tom Allen (professor at MIT, 2008) mentioned that the rich interaction in Scrum of face-to-face work,
there is very convincing evidence that the frequency of communication drops off sharply with physical
separation among co-workers’ offices, and that the sphere of frequent communication is surprisingly small
[14].
A systematic review [3] studied the application of Scrum practices in global software development using
27 literature studies, and analysed the challenges of using Scrum with distributed teams can be categorized
into three types of deficiency: communication, trust, and control[4].
Each organized human activity involves the division of labour into various tasks, as well as the
coordination of those tasks until the activity is done [16]. Coordination is the management of these
dependencies. If there are no dependencies, there is nothing to coordinate and communicate. But if a task
depends on the result of another task, or if the execution of a task depends on the expertise of the person
that performs the task, the dependencies must be managed. Coordination of work is therefore an important
challenge for teamwork and team leadership [18] that may cause communication waste [8].
Team size is another important aspect we tend to ignore. In Scrum, the team size should not exceed 9
people. Two or more Scrum teams will require more time for synchronizing, so you should be prepared to
pay for communication overhead. Without extensive communication and work on soft skills, we may not
achieve the expected performance boost for Scrum. [21] As a result effective Distributed Scrum is possible
only when the customer is ready to invest in communication tools and cross-location business trips [3].
Communication tools themselves can create challenges. Sound quality of teleconferencing tools may be
poor. (Williams and Stout, 2008)This can create misunderstanding and communication overhead can occur
when messages need to be repeated several times [14].
Ref. [5] discussed the influence of the software architecture in the coordination of distributed software
development. They argue that “the more cleanly separated the modules, the more likely the organization
can successfully develop them at different sites”, because this will remove the communication required
among the different sites. According to [6], Kanban model is getting popularity from last few years due to its
flexibility, responsiveness and reliability.
3.2. Kanban Agile/Lean Practice
Kanban means sign board or visualisation of inventory used in the scheduling system for just in time (JIT)
production.It was developed by TaiichiOhno, and was introduced in the Japanese manufacturing industry in
the 1950s. Kanban development concept was about finding a system to maintain and improve production. It
is a flow management and control mechanism for pull-driven JIT production. Kanban has proven an
excellent way of promoting improvement as it runs the production system as a whole. Kanban was
successfully used in practice by Toyota [19].
Research by the National Institute of Standards and Technology found that effective implementation of
lean manufacturing techniques can generate significant benefits; improve quality 25-75%, reduce work in
process up to 90%, improve productivity 10-40%, reduce lead time up to 95%, multiple other benefits
related to improved product flow, and enhance teamwork and communication, as shown in Fig. 2.
1234
Volume 11, Number 12, December 2016
Journal of Software
Reduction
Improvement
Fig. 2. The positive impact of Kanbanby the national institute of standards and technology.
Kanban encourages the pull technique. In traditional software development, the push approach is used
where the work items are given to each team member, who is then charged to finish as many of them as
quickly as possible. As a result delays occur in the whole process when the next member in the line is
overloaded or has a problem with his/her work. The reason behind that is that traditional development
work is in the form of a chain in which one team member’s work item is handed over to another.
However, with Kanban things work in another way. It promotes a pull system Instead of pushing work
items. Each member of a team has one item to work on at a time. When he/she finishes it, he/she will
automatically pull the next item to work on. Kanban aims to communicate priorities, provide visibility to the
software development process, and highlight bottlenecks, resulting constant flow of releasing work items to
the clients, as the developers focus only on those few items at a given time. Fig. 3 bellow shows the typical
structure of a Kanban board and its principles in action.
Fig. 3. Example of one implementation of Kanban board used in our software development project.
Kanban has five core principles: visualise workflow, limit work in progress, measure and manage flow,
make process policies explicit, and use models to recognise improvement and opportunities. Kanban
principles are applied using a board that visualises the flow of activities of the process in various columns.
Cards are used for each working item on the Kanban board to show its current state. The flow of work items
through the process is optimised by limiting the work in progress in each activity column to a maximum
number of items that can be pulled into the column. In this manner, the team effectively visualises their
workflow, limits work in progress items in each stage, and monitor the cycle time from start to finish [2].
3.3. Positive Correlation between Dependency and Communication
Ref. [5] recognized the relationship between communication and dependencies. He concluded that by
reducing dependencies, it is possible to reduce developers’ dependencies on one another, creating a
managerial advantage. A breakdown in communication efforts constitutes a major problem in software
development streamlining the process.That is why software engineers have recognized the need to deal
with dependencies between components and software team. The large number of dependencies among
different software artefacts and the dependencies among activities in the software development process
and are one of the reasons for these problems [5].
1235
Volume 11, Number 12, December 2016
Journal of Software
4. Distributed Software Teams Based on Kanban Methodology
With the entrance of Kanban to the software engineering field in 2004, new principles showed up in the
literature review section. Kanban is looking for continues delivery, team communication improvement,
rapid software development, improving the flue of value and optimizing cycle time. This section presents
all steps taken in designing and conducting the case study [24].
4.1. Research Approach
At first stage, Kanban has been implemented in a three software development projects. Each project is
developed through a geographically distributed team. The second stage was A Kanban survey that was
conducted among software development teams. The survey was conducted using an Internet survey tool.
The survey included questions on different Agile methodologies usage, and if team member is willing to use
Kanban, to decrease the challenges faced adopting any other method.
5. Conducted Kanban Design and Results
The key results in this section briefly presented from the study. Firstly, the analysis of the questionnaire
responses will be reviewed. Secondly, Kanban use case findings will be discussed.
5.1. Questionnaire Results
Based on the previous questionnaire (Table 1), 50 responses were analysed based on team members
during the development process. The table below presents the responses:
Table 1. Present the Questionnaire Ranking Response
Other Agile practices impact team communication
Dependencies: -Waiting for long time
– Dose Dependence diminishes over time
– Rearrange work difficulty
Communications: -un-needed communication
Meetings: -a lot of formal meetings
– daily meeting are boring
– Dose meetings affect your motivation and creativity
Visualization: -degree of understanding the work process
– What do you think of the work flow being on board
Bugs: -degree of finding bugs
– degree of locating a problem
Information:-degree of finding information
Changing requirement: -degree of changing requirements
Ranking
1 2 3 4 5
×
×
×
×
×
×
×
×
×
×
×
×
×
The results reflect that there is a high percentage of software developing team members faces some
obstacles when adopting Scrum as agile practices. Responses show that Scrum is the most popular agile
practices used; although Scrum and Scrumban are used for many years, teams struggle(70% using scrum)
from getting to information needed easily(30% using Kanban), as developers get bored from informal
stand-up meeting every morning (90% scrum, 10% Kanban)and their motivations of continuing their
works is no more available. Stakeholders confirmed that for new initiative the business needed an approach
to speed-up the delivery of individu …
Purchase answer to see full
attachment