![](https://csdnimg.cn/release/download_crawler_static/10232346/bg5.jpg)
5
Welcome changing requirements, even late in
development. Agile processes harness change for the
customer's competitive advantage.
3. Deliver working software frequently:
Deliver working software frequently, from a couple of
weeks to a couple of months, with a preference to the
shorter timescale.
4. Motivate individuals:
Build projects around motivated individuals. Give them
the environment and support they need, and trust them
to get the job done.
5. Interact frequently with stakeholders:
Business people and developers must work together
daily throughout the project.
6. Communicate face to face:
The most efficient and effective method of conveying
information to and within a development team is face-
to-face conversation.
7. Measure by working software:
Working software is the primary measure of progress.
8. Maintain constant pace:
Agile processes promote sustainable development. The
sponsors, developers, and users should be able to
maintain a constant pace indefinitely.
9. Sustain technical excellence and good design:
Continuous attention to technical excellence and good
design enhances agility.
10. Keep it simple:
Simplicity, the art of maximizing the amount of work
not done, is essential.
11. Empower self-organizing teams:
The best architectures, requirements, and designs
emerge from self-organizing teams.
12. Reflect and adjust continuously:
At regular intervals, the team reflects on how to become
more effective, then tunes and adjusts its behaviour
accordingly.
We will use these principles to identify possible high level
bottlenecks of agile software development methods (see
subchapter 4.1).
Subchapter above shortly presented main values and principles of
agile software development. The following subchapter will
present four specific agile software development methods used in
this master thesis research.
2.3 Agile Software Development Methods
There is a number of software development methods that follow
the values and principles described above. They all fall under
agile software development methods classification. For this master
thesis research, due to time and scope constraints, we decided to
choose four agile software development methods for further
analysis. They are: Lean software development, Extreme
Programming (XP), Scrum, and Feature Driven Development
(FDD). We choose them due to different approaches they have to
achieve agile goals. Lean development is about reducing the
development timeline by removing all no value-adding wastes
[29]. Besides, it is the closest method to current agile software
development method Ericsson is implementing [29]. XP is one of
the most agile methods that take common sense software
engineering practices to the extreme level [31]. We choose Scrum
because of its strong focus on self organizing teams, daily team
measurements, and avoidance of predefined steps [15]. FDD,
unlike other agile software development approaches, encourages
an up-front architectural modelling and accomplishes core goals
in different ways [14].
Further subchapters will shortly introduce these methods
describing their proposed development processes and main
principles they follow. In the end, principles are presented in a
tree that is based on TOC “Cause and effect” principle described
in paragraph 2.1.1. “If then” logics is used to read the tree. As an
example see Figure 1.
2.3.1 Lean Software Development
Lean Software Development is an agile development method that
applies Lean production principles which were created in Toyota
Motor Company in 1980s to software development [16][22].
“Lean thinking focuses on giving customers what they want, when
and where they want it, without a wasted motion or wasted
minute” [21].
Lean Software Development suggests following iterative style of
development, that creates incremental results at a steady pace.
Lean Software development process is composed of four phases:
1. Preparation
2. Planning
3. Implementation
4. Assessment
At the beginning of development effort an initial backlog of
prioritized desirable stories (features) is assembled. This is the
preparation phase. Backlog items are usually features in terms of
business goals since the Lean approach is to delay detailed
analysis until the last responsible moment.
Planning meeting is held at the beginning of iteration. The whole
team makes estimations how long the top priority stories from
backlog will take to develop, test, document and deploy.
According to these estimations and team capacity they pick the
amount of stories they will be able to implement during the
iteration. Team members decide and commit to iteration goal,
which describes the theme of the feature set they picked for
iteration.
During implementation phase a team develops, tests, documents
and prepares for deployment the feature set they picked. Daily 10-
15 minute team meetings are held to discuss what each team
member has accomplished since the last meeting, what they will
be doing till the next meeting, what problems they have, and
where they need help. A story is not considered done until the
team updates all associated artefacts (user documentation, design
documents and other artefacts).
A review meeting is held at the end of iteration. The goal of the
meeting is to show for the customer how much value was added to
the product during the iteration. Feedback from customer is