Академический Документы
Профессиональный Документы
Культура Документы
AGILE STARTUPS
Finding guidelines for students to handle initial
bottlenecks in agile from-scratch projects.
Abstract
During a web development project carried out at Uppsala University, winter 2012, by
twelve students, a number of initial bottlenecks caused many tasks of the first sprint to
“lag” and cause some programmers to idly await the “freeing” of their tasks. Pairing this
case study with literature and a survey this paper reach four conclusions on that and how
this has happened. Further the author provides three logically supported suggestions on
how to provide students of future projects with sufficient guidance as to break the
bottlenecks themselves.
4.965 WORDS
Table of contents
Introduction! 3
Research questions! 3
Method! 3
Scope! 4
The case study & survey! 5
Observed bottlenecks! 5
Confirming existence of bottlenecks! 7
A database example! 7
Eliminating idle time! 8
Literature review! 12
Having two roles improve both collaboration and result! 12
SCRUM will make team members more helpful! 12
Conclusion! 15
Suggestions! 16
(SG1) Shoot first, ask questions later (suggesting a principle)! 16
(SG2) Let somebody else do the job (suggesting a principle)! 16
Discussion! 17
Further research! 17
References! 18
Introduction
During a web development project carried out at Uppsala University, winter 2012, by
twelve students, all fairly new to agile practices, it was noticed how a number of initial
bottlenecks caused many tasks of the first sprint to “lag”. Which consequently not only
caused frustration, but also idleness amongst programmers and members, as well as a
feeling of work being non-agile. This paper looks further into how these bottlenecks, more
efficiently, could have been eliminated.
Research questions
Consequently the questions of interest within this paper regards the idea of eliminating the
initial bottlenecks often found in startup (or: from-scratch) projects. Also, how this
elimination technique can be communicated in a pedagogical manner so students with
little or no industry-experience can “kick-start” as fast as possible.
So, the first question that must be answered is merely whether agile methods in itself is
enough to turn team members into adaptable ninjas in the sense that they can easier
discover and avoid startup bottlenecks.
Secondy, given that the answer to the first question is no, a new way of eliminating these
initial bottlenecks must be found. The author suspect, there are still seeds of ideas within
agile practices that will support an idea of elimination of initial bottlenecks. Consequently
this will be further explored.
Method
To answer the research questions, this paper use a three-tier method, approaching the
same issues from thee different points of view. The three legs of the method are (1) a case
study based on material gathered throughout the project, (2) a quantitative survey given to
a subset of the students, and (3) literature studies on agile subjects.
Regarding the case study, the author himself was part of the actual project. Issues that the
author has been reflecting upon in retrospect and during the project has been used as a
starting point to formulate the research questions. However, to avoid potential bias, the
further methods have been introduced as to ensure objectivity in the results.
Regarding the quantitative survey, extracts of the questions and answers are represented
inline (for a full review of the survey, please contact the author at christopher.okhravi.
8305@student.uu.se). The survey was conducted as to ensure that what the author
perceived problematic was also by fellow team members (programmers) perceived as
problematic.
Regarding the literature studies, web searches has been conducted. Much of the
reasoning around student behavior is based around another article discussing agility in
student projects, and much reasoning around the concept of agility is based on the Agile
Manifesto. Most references are articles published in IS journals.
Since the case study and the quantitative survey much handle the same topics they will be
reviewed simultaneously.
Scope
This paper will only concern itself with the given research questions within the context of
academia. While it is assumed that small startups with novice team members will be
equally applicable to the results of this study, no conclusions can be explicitly drawn
outside the context of academia.
The case study & survey
The project under study was carried out within the course “Agile Methods”, given at
Uppsala University over the period of two months. During this course the students were
expected to from-scratch carry out a SCRUM project with some elements of XP. The group
consisted of twelve students with essentially no, or little, experience of agile work. Many
also lacked real-world experience of software development in a corporate (or professional)
environment.
To the best of their abilities, and with moderately successful result the students carried out
the work over the course of three weeks, divided into three sprints. The following sections
list and discuss a number of issues that were experienced during the first sprint.
Observed bottlenecks
During the first sprint of the project the team suffered from a number of stacking
bottlenecks. This paper refers to a bottleneck, as the unexpected need to, longer than
expected, maintain work with a specific task, and thus pushing depending tasks into the
future.
“Were you ever waiting (idle) for SOMEONE (one or many people) to finish some task so 2 (3)
that YOU could perform your own task?”
“Did you ever feel SOMEONE (one or many) were waiting for SOMEONE else (one or 2 (3)
many) to finish a task?”
“Did you ever feel people were waiting for YOU to finish a certain task?” 1 (3)
Did the developers experience “idle time” because of bottlenecks? An extract from
the results of the questionnaire answered by a part of the developers.
these developers also felt others were idly waiting for him or her to complete a certain
task. The questionnaire only concerns the first sprint so consequently this idle time was
experienced during the same time as the bottlenecks were hit.
A database example
As to further discuss an example, letʼs look at the bottleneck of backbone wireframing.
More specifically, a situation occurred during the project, were a smaller number of
developers were more concretely concerned with the creation of the database while the
other developers were occupying themselves with other productive or non-productive
tasks. A bottleneck was hit because too many unexpected errors spawned and created
confusion.
Simply put, since there was no code base at the time, there was, from a developerʼs
perspective, nothing to work upon expect the elimination of the bottleneck - producing a
first version of the database. Hypothetically - if the same errors would have spawned
during the second sprint it is, by the author, assumed that it would not have caused a
bottleneck. Because during the second sprint there actually was an environment already
set up and consequently there was some kind of code that “the other” developers could
concern themselves with.
During a reflective meeting upon the ending of the second sprint the author of this paper
raised this issue and the idea that this was a bottleneck, or “showstopper”, was confirmed
with the other developers.
What now becomes interesting is if we ask the question - so if the developers could not
work with development - what could they work with? If we assume that there were other
bottlenecks that could have been handled, idle developers could have addressed these. If
we assume researching the errors of the current bottleneck would aid in itʼs breaking, that
idle developers could have helped this way. This would however require of developers to
step outside their given role, which by experience, didnʼt seem to happen.
If you at any point lacked a task at hand, did you instead conduct some kind of 1 (3)
research?
What does idle programmers do? An extract from the results of the questionnaire
answered by part of the developers.
When asking if the developers, at these times, indeed did conduct research, unfortunately
only one out of three answered yes. The authorʼs personal suspicion is that the underlying
reason for this is the lack of understanding that research might be part of a developerʼs
role. Also it is believed that since the team members of this particular team all were fairly
novice, a stricter respect was held towards the concept of roles.
The problem is assumed to be of a logic nature and will consequently not be further
discussed. However, letʼs reformulate the statement as a condition.
Simply, an active workforce can only be maintained as long as the number of available
tasks equal or exceed the number of available workers.
This suggest that if bottlenecks are handled simultaneously, a workforce can be kept more
active. In the following sections an attempt will be made to group the bottlenecks and
understand dependencies between them as to allow for simultaneous attacking.
This also suggest we can maintain an active workforce simply by increasing the number of
available tasks.
Grouping the bottlenecks
So far, the bottlenecks have only CUSTOMER-RELATED TECHNICAL LOGISTICAL
been discussed in relation to the
order they were carried out as
USER STORIES BACKBONE Identifying an
tasks within the project. formulation wireframing AGILE WORKFLOW
Bottleneck dependencies
The following diagram illustrate the dependencies between the different bottlenecks as
perceived by the author. To
understand the diagram, use
to following general FIRST CONCRETE
TASK IN SPRINT
description: If task A has an
arrow pointing towards task
B, then task B cannot be
carried out before task A has
been completed. Simply, the
BACKBONE
wireframing 2
DEPENDENCIES
arrows are pointing from the
simpler task to the more
complex task.
Observing this diagram it
ENVIRONMENT
setup
USER STORIES
formulation 1
becomes evident that DEPENDENCIES
If the above quote is true then it seems SCRUM team members, in relation members of
teams practicing classical software development methodologies, are more willing to step
outside their own given tasks to help a colleague.
Another statement strengthening the one above, is the SCRUM principle suggesting the
hosting of an “energized working environment” where developers in the best-case-
scenario hold a “can do” attitude (Fruhling & Tarrell, 2008).
Tasks must be assigned to individuals
One finding of the article discussing an attempt to involve SCRUM into smaller teams in an
already existing organization (Rising & Janoff, 2000) was that tasks indeed had to be
assigned to one single individual. That even if the workload of a task would have to be
distributed or shared the task must still hold one primary responsible person (Rising &
Janoff, 2000).
Consequently this means the second research question (RQ2) becomes relevant - can we
introduce techniques or practices that help students avoid these issues? To be able to
suggest new principles, letʼs first look at the areas identified as problematic.
The case study (C2) prove that having single-role individuals does not avert the existence
of bottlenecks. However, in problematic contrast, both the literature (L1) and case study
(C3) suggest that not all team members will take the initiative to aid other members when
faced with idle time. Potentially this could be a product of lacking experience (which is an
idea supported by the case study). However these two pieces of information support the
paradoxical statement that: inexperienced team members need guidance as to take
initiative upon bottlenecks outside their role, but on the other hand - giving roles cause
bottlenecks to stagnate.
Confusing? Well, there is of course one fundamental miss weʼre making - the idea that
roles wonʼt avert bottlenecks actually only applies to the specific set where members have
one single role (developer) in contrast to two roles. Consequently nothing is yet known
about multiple roles.
The last conclusion to draw is that even though agile development methodologies seems
to create teams with flat hierarchy it doesnʼt seem that all issues must at all times concern
everyone. Firstly, it seems useful to address bottlenecks, simultaneously by separate
groups (according to the case study, C4), and supported by literature (L3) it seems
sensible from an agile perspective that not every decision or action must concern
everyone.
So to conclude the answer to the second research question weʼve identified three pieces
of information that will lead us closer to eliminating the initial bottlenecks faced by students
in agile startup projects: (1) Roles are needed, (2) roles cannot be single-roles, and (3)
bottlenecks can be addressed simultaneously.
Suggestions
While the conclusion summarize evidence drawn from logical conclusions, the following
section gives a number of suggestions based on these conclusions. Consequently the
author consider the following points to indeed have logical support, but however to be
more of the subjectively speculative nature.
Further research
Further research would be beneficial as to evaluate the actual effects of implementing the
suggested techniques in student projects.
References
Fruhling, A L & Tarrell, A E (2008). Best Practices for Implementing Agile Methods: A Guide
for Department of Defense Software Developers. IBM Center for The Business of
Government.
Turk, D, Frande R & Rumpe, B (2005). Assumptions Underlying Agile Software
Development Processes. Journal of Database Management, 16(4), pp. 62-87.
Dubinsky, Yael & Hazzan, Orit (2004). Roles in Agile Software Development Teams.
Springer Berlin / Heidelberg.
Rising, L & Janoff, N. S. (2000) The Scrum software development process for small teams.
Software IEEE, vol.17, no.4, pp.26-32, Jul/Aug 2000.
Fowler, M. & Highsmith, J. (2001). The agile manifesto. Software Development, 9 (8),
28-35.