Agile Software Development Li

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Agile Software Development

Jinjin Li
Technische Universitt Berlin
Berlin, Germany
E-mail:[email protected]

Abstract—With the further development of computer technol- customer requirements in the process, in the process people
ogy, the software development process has some new goals and will invest resources and then convert it to outputs of project.
requirements. In order to adapt to these changes, people has Before the 1960s, computers had just put into practical use,
optimized and improved the previous method. At the same time,
some of the traditional software development methods have been the software design was often only for a particular application
unable to adapt to the requirements of people. Therefore, in re- in the specified design and preparation. The scale of software
cent years there have been some new lightweight software process was relative small and usually didn’t have documentation,
development methods, That is agile software development, which rarely use a systematic metohd to development. Design and
is widely used and promoted. In this paper the author will firstly programming was often equated.
introduces the background and development about agile software
development, as well as comparison to the traditional software In mid-1960s, large capacity, high speed computers have
development. Then the second chapter gives the definition of agile enabled the rapid expansion of computer applications, the
software development and characteristics, principles and values. quantity of software development has increased dramatically.
In the third chapter the author will highlight several different The Appearance of High-level programming language and
agile software development methods, and characteristics of each operating system, causing of changes in the way of computer
method. In the fourth chapter the author will cite a specific
example, how agile software development is applied in specific applications. Large amounts of data processing led to the birth
areas.Finally the author will conclude his opinion. This article of first generation database management system. The software
aims to give readers a overview of agile software development systems became more and more complex and large, software
and how people use it in practice. reliability problems were also more prominent. The original
personal design, personal method can no longer meet the
I. I NTRODUCTION requirements, software need to change the mode of production.
Before we know the definition of agile software develop- ”Software crisis” broke out[5].
ment, what’s exactly agile software development, let’s first
look at its origins and development, as well as its achievements
in the field of computer technology.

A. Background and progress


Software Engineering gives the procedures and practices
to be followed in the software development and acts as a
backbone for computer science engineering techniques[1].
Software development process is a structure imposed on Fig. 1. Process of software development
the development of a software product[2],which based on the
theory of software engineering.People use it to implement a
variety of different software. B. Traditional development methods
Software development methods are attempting to offer an Software crisis has more or less promoted the maturity of
answer to the eager business community asking for lighter software engineering. In the 1990s, the software development
weight along with faster and nimbler software development began to use repeated process with the documentation, based
processes[3]. on the theory of software engineering theoretical system. At
The word agile software development comes from the that time, some traditional models came out. Waterfall model
project management, so what is project management? What was as the representatives of the traditional software project
is the definition of project management. As William R. management and had occupied a very important position.
Duncanillam[4] in the book ”A Guide To The Project Man- According to the waterfall model (as shown in Figure 2
agement Body Of Knowledge” said, ”Project management is is a model which was developed for software development;
the application of knowledge, skills, tools, and techniques that is to create software. It is called as such because the
to project activities in order to meet or exceed customer’s model develops systematically from one phase to other in
requirements and expectations from a project”. Every project a downward fashion, like a waterfall”[]. Waterfall model
aim to product and delivery products or services to meet emphasizes the software development cycle shown in figure
2. And the cycle stage of each step and should be planned it is very valuable for projects which focus on the exchange.
and the investment of time, manpower and the use of related Its disadvantage is that customers must have some knowledge
technologies in each step should be thoughtful deployed. In of UML, because this method owned by a company. RUP also
the end of each step the results should be reviewed. When needs a lot of documentation.
customer is satisfied with results, then the next step can be With the further development of software project manage-
continued. Waterfall method is best suited to the the user ment, software project management began to emphasize self-
whose needs is fixed or results is predictable. Advantages and adaptive to face various requirements of the market. At that
disadvantages of waterfall model shown in figure 3. time the traditional software project management has been
unable to meet all aspects of the requirements. And then agile
software development came out.
The word agile development was mentioned in the Agile
Manifesto since 2001. Later agile development achieved great
success. More and more people started to pay attention on
it and will to use agile development to complete their own
projects. Today, agile development has also very many types,
for example,Extreme Programming, Adaptive Software Devel-
opment, Lean Software Development and so on.

Fig. 3. Advantages and disadvantages of waterfall model


Fig. 2. Waterfall Model
II. W HAT IS EXACTLY AGILE S OFTWARE D EVELOPMENT ?
Structured Analysis and Structured Design (SASD)[6] is a
software development method that was put forward in the The concept of agile development was proposed in 2001 by
1970s by Yourdon, Constantine. It emphasizes that divide the agile team, and then many software development teams
the whole project or task into a sub-projects or sub-tasks, and companies recognized and accepted it, and gradually been
depicting the various relationships between sub-projects or widely used in many projects. Agile Software Development[7]
sub-tasks . This saves time and greatly improved efficiency. published the Agile Manifesto shwon in figure II at the same
SASD became one of the most popular software development time, on behalf of software development has entered a new
method in the 1980s, and then IBM also incorporated in this era.
approach to their software development process. Of course
some people have criticized for SASD, because it ignore the
participation of users.
Rational Unified Process (RUP) is ”a software engineering
process framework that captures many of the best practices
in modem software development in a form that is suitable
for a wide range of projects and organizations. It embeds
object-oriented techniques and uses the UML as the prin-
cipal notation for the several models that are built during
the development.”[6],was developed by the Rational Software
Corporation (acquired by IBM in 2003). It is also an iterative
style of development, it introduces a lot of success examples
in software development, so it is very suitable for large-scale
software development and project. RUP put focus on internal Fig. 4. Manifesto for Agile Software Development
and external communication and exchange of engineering,so
A. 12 principles behind the Agile Manifesto 7) Working software is the primary measure of progress:
In agile development, each iteration is to deliver a working
1) Our highest priority is to satisfy the customer through
software, so the measure of progress is no longer the number
early and continuous delivery of valuable software: Agile
of lines of code was written, the number of test cases was
development is an iterative method using an incremental and
implemented, but the number of software that was tested,
delivery of valuable software. Continuous delivery, reflecting
achieve release standards and can work.
the continued iterative process of agile development. Through
8) Agile processes promote sustainable development. The
the early delivery of valuable software in order to listen
sponsors, developers, and users should be able to maintain
to customers’advice as soon as possiblethe .That avoid to
a constant pace indefinitely: In software companies, work
deviation at the understanding of the users’ requirements.
overtime is a very common thing. However, agile development
The earlier error was found, smaller was the cost at the
oppose to in the form of work overtime to complete iterative
correction of deviation. Customers can with this principle
tasks. Overtime will lead to team members to become fatigue,
fully experience software company’s efficiency and attention,
boredom, it is difficult to ensure efficiency.
satisfaction.
9) Continuous attention to technical excellence and good
2) Welcome changing requirements, even late in develop-
design enhances agility: In agile development need to respond
ment: Even in later time of development, agile development
positively to change, communicate with each other is also
is also willing to make the appropriate changes according to
important, people pay more attention to good design and
requirments. When software really meet the needs of user
technology, better agile ability will become.
and market, is a valuable software. As agile development
10) Simplicity–the art of maximizing the amount of work
has reserved the space in system design for changes, so
not done–is essential: Anyone could be completely expected
agile development can minimize costs arising from changes
changes in requirments accuratly. Agile teams advocate that
in requirments.
everyone should pay attention to what is the easiest way to
3) Deliver working software frequently, from a couple of complete the current problems, rather than to build a future
weeks to a couple of months, with a preference to the shorter software features that may be required. Agile development
timescale: Short period of iterations can ensure that the project does not advocated using complex technology to implement
team to make cooperation more closely with customers. In software.
each new delivery, the project team will deliver improvements 11) The best architectures, requirements, and designs
to the software or add new features on basis of previous emerge from self-organizing teams: Self-organizing team is
delivery. And these improvements and new features must be able to positive communicate with each other to form a
tested, can work and achieve the quality standards that can be common work ethic and culture.They do not need detailed
released. instructions, this let team members have more confidence.
4) Business people and developers must work together 12) At regular intervals, the team reflects on how to become
daily throughout the project: Information in the transmission more effective, then tunes and adjusts its behavior accordingly:
process would inevitably lead to the case of distortion. When When the projects is during the progress, not only the require-
business people describe the requirments of customers to the ments may change, but also there are many uncertain factors,
developers, developers may have misunderstanding of the busi- such as changes in team members, According to a predefined
ness. Therefore, throughout the project development, business plan to work is difficult to achieve agility. It requires in a
and developers would need more frequently and meaningful certain time intervals, the team need to reflect on their work,
interaction to identify problems as early as possible. Project and make appropriate adjustments.
team members work together every day, from the time and Of course,just like Scott Ambler in his book
space, to ensure that the communication between business and wrote[8],”These principles form a foundation of common
developers are more convenient. sense upon which you can base successful software
5) Build projects around motivated individuals.Give them development efforts.” That means these priciples are the
the environment and support they need, and trust them to get foudation of succeed, they are not enough to let your project
the job done: Only with such a trust, motivation and support or software to work.
full potential of all team members would be released.
6) The most efficient and effective method of conveying B. Differences between the agile development and traditional
information to and within a development team is face-to-face development
conversation: In large team, in order to transfer knowledge So What is exactly agile software development and the
in the form of the document, it is more appropriate to What is the differences between it and traditional software
communicate with each other, he can make people accept both development model ?Before giving the definition, we firstly
knowledge and information at the same time. But the agile compare differences between the agile development and tra-
team has normally only 7 to 10 people, the use of document ditional development based on Agile Manifesto.It is not dif-
to communicate will waste a lot of time by writing the ficult to summarize that there are two points[?] which agile
document. Face to face conversation between team members devolopment obviously emphasis on.The one is adaptability,
could transmit information more quickly and efficiently. the another one is teamwork.
requirments were identified in this stage, but some non-
functional requirements have no way to show the user, such
as performance, smooth operation and so on. It’s just like
that someone give an iPhone manual and an andorid phone
manual, let you to evaluate which cell phone is better. Besides
the beautiful look and user interface of iPhone, you can not
really imagine which execellent advantages does iPhone has
that make so many young people to seek after it. Until you
actually hold it in your hand when using and experience the
thrill of the iPhone’s smooth operation. Then you can feel on
iPhone what is exactly distinguishes.
Fig. 5. Differences between the agile development and traditional develop-
ment Agile development is not completely closed, the develop
team seek positive communication with customers, even to
understand the changing needs of customers. Cooperation with
1) Adaptability: The difference to traditional model, agile the customer does not stay in the contract negotiations, but
development take more emphasis on adaptability, rather than more concerned about the investigation in customer-related
the predictability of traditional model. The person who choose business of software products and technical aspects.
the traditional development mode , when starting a project, Thirdly, traditional model would completely separate code
always think of a very detailed and complete documentation. and design, it is unrealistic for many projects. However, if
They will analyze the entire development process and details the demand in the project later with a greater risk have to be
of each sub-process for example, how many times or how changed, so do it early in more detail may be inappropriate. So,
many people will be invested in, finally the results are written assuming that demand can be determined, but can design also
in the document. The most important thing is that the docu- be determined? My understanding is that in case when we are
ment can not be change after it once was identified. All project very familiar with the technology in the area is possible. But
developers are requird to strictly follow the document.When how should the technology of one field is very familiar with?
someone want to change the document or timeplan, that is Like some small companies which just implement some office
not allowed. Although this development model also has its systems (OS), they have implemented a OS for company A,
advantages when the demand from the beginning to the end did When they also implemented a similar system for company
not change. But gradually people also found many problems. B, The used technology is almost the same, but there are
Firstly, the part of the design document takes a lot of time, some similarities and only small differences in the business.
because a very comprehensive documentation required all the However, when a company want to develop a projects in a
details of the project have been implemented. In this way unfamiliar field. Before you investe many people into the
to create a documentation in itself is no problem, but this features of pre-design, you would find it hard to refine the
development efficiency will be lower. Most of the modern design. Pre-desig for the project usually takes a long time.
project hope that in whole phase the demand didn’t change, it Completing design refinement at the beginning of a project
is unrealistic, too many incentives will cause the changes in may lead to backfire.
requirments. Agile will be divided into multiple sub-projects, the com-
Agile willing to accept changes, even in the latter prozess of pletion of each project is a small phased achievements. By
software development. Its own methods of system design and using visualize, actionable phased achievements instead of
system builders can quickly respond to changes in customer comprehensive documentation. Let customers to have a more
demand. It ensure that the results of the last iteration is the intuitive feel about the prozess of development and put forward
customer’s really needs, and it meets changes of market. a more accurate advice on the software in the next step.
Differs from the waterfall model, agile development fully Agile development focus on that in a short time to deliver
comply with plan. Agile development would at the beginning valuable software to customer to make them satisfied and
of a project to develop a rough plan, providing more space to during development ongoing delivery of runable software. The
changes of project. time for delivery should be as short as possible.
Secondly, If there is no real users that participate in require- 2) Teamwork: The goal of traditional process management
ments definition process, the definition may be difficult to meet is to ensure that the process within the organization as ex-
the needs of end-user’s work habits. Even if the requirements pected execute and the defined process is strictly adhered
is defined, and then show it to the end user, let them to to. Document-centric process tend to define people’s roles as
confirm the result, but there is a risk that demand would be interchangeable, reliable machine parts.
changed. The reason is that everything is imaginary until the Agile software process is people-centered rather than
user can run the system, because users could not understand process-centric.They believe that individuals and their inter-
programming, when there is something unreasonable, he can actions important than processes and tools. Practice is the
not see it. Let’s assume that the user had already carefully life of methodology[9]. A key point of Agile development
participated in confirmation of requirments and most of the is let people to accept a process rather than impose a pro-
cess. Developers must have the right to make all decisions of project development.In order to successfully implement
of the technical aspects. Process is the second point, so it Extreme Programming, Extreme Programming has defined
should be minimized. The center of Agile development is to four values and twelve principles. Extreme Programming is
establishment project team with positive staff. Give them the a very large knowledge base, each of which is a scholarship
necessary environment and support, having full of confidence worth studying.
to their work. In the project group, the most useful and most Extreme Programming was proposed by Kent Beck in 1996.
effective way of communication is face to face conversation. It is the development methodology that suitable for small
It embodies the principles of human-centered. and medium team and rapid changes in demand. It developed
This form of oral communication compared to document- software that should meet the changing needs of customer, it
centric that the interaction is more faster and efficient to is the goal of Extreme Programming. Extreme Programming
transmit the information and sovle the problem. It requires also is similar to spiral development, which divide the develop-
during the entire project development, developers and business ment process into a relatively simple cycle. Through positive
people should always be together. Focusing on communication communication, feedback and a range of other methods, de-
between team members, this is the embodiment of agile velopers and customers can have a very clear understanding of
development project. The end of research for business people software development progress, change, problem to be solved
is not to write a requirement analysis and then send it to and the potential difficulties, and adjust development process
developers. But should more effectively communicate with according to the actual situation in time.
developers to ensure that developers understand the business Compared with the traditional way of project development,
correctly. Extreme Programming emphasis on that do the best by its
After we have a full understanding of agile development list of methods and ideas, other Extreme Programming are
und also understood the difference between it and traditional not advocated, flatly ignored. A strict implementation of
development, now we give the definition of agile development. Extreme Programming project, its development process should
Agile software development is a capability that can rapidly be efficient and fast, able to do one week in 40-hour instead
response to changing needs of the software, which focus on of delay in project progress.
rapid delivery of high quality software, and achieve customer
satisfaction[9].
III. W HICH AGILE S OFTWARE D EVELOPMENTS ARE
BEING WIDELY USED
We know from the previous chapter’s introduction, agile
development is a way that with a human-centered, focusing
on iterative, step by step to development approach. In agile
development, software project is split into several subprojects,
the subprojects will be developed in a certain period. In
other words, agile development divide a large project into the
small projects that multiple interrelated, but can also be run
independently, and then separately completed.
The initial concept of agile development is agile process,
including Extreme Programming, Scrum, Lean Development,
and so on. Extreme Programming is a plan for the project
management practices, Scrum is an agile project management
framework.
A. Extreme Programming
Extreme Programming is a lightweight software develop-
ment methodology.Extreme Programming is from practice,
it is also a summary of the practice, its main feature is
to adapt to changes in the environment and requirment and
give full play to the subjective initiative of the developers. Fig. 6. Components of Extreme Programming
Extreme Programming commitment to reduce software project
risk, improve responsiveness to business changes, increase 1) Extreme Programming Process: Extreme Programming
productivity during development, the software development consists of four components: values, principles, practices and
process to increase the fun, I believe that is enough to attract behavior. Principles from the value; the values and principles
everyone. are based on 12 practices; 12 practices associated with the
In Extreme Programming, at first the four variables are four main software development activities. Figure 6 shows
introduced, cost, time, quality and scope, by studying the inter- the dependencies between them, this four-part behavior is
action between variables, we can get a beeter thorough analysis throughout the entire life cycle[10].
2) Extreme Programming Values: Extreme Programming developers need to solve pressing problems, and often make
provides a global, values-driven development process view. appropriate adjustments to changes in reruirements.
To achieve high iterative process, the team need to have four 4) Extreme Programming Activities: Traditional software
values: communication, simplicity, feedback and courage[9]. development consists of four main activities: requirements,
Communication. A tacit understanding is the biggest chal- design, coding and testing. The four activities of Extreme
lenge of the development team need to face, the most effective Programming have the same name with these, but their es-
way to solve the problemto is to strengthen communication. sentially is different. The following is brief description of the
Simplicity. There is often a feedback in iterative, so that four activities of Extreme Programming[9].
developers do not need to plan the expansion of system design, Listening. Extreme Programming is based on communica-
only need to consider the simplest possible solution and try tion. It depends not so much on formal written document.
to simplify the steps to complete the work. At a later stage, if Developers not only need to listen to customer requirements,
necessary, and then make a change, this avoids the resources but also the development team needs to listen to opinions
spent on the program that is complex and not meet real needs from other people of team. Developers need grasp good
of customer. communication skills.
Feedback. Developers and customers need to communicate Designing. Extreme Programming has a rather novel point
constantly and through continuous, clear feedback, when they of view, the design is followed for the development of the
meet problems in EXtreme Programming project. At the same project. Design is no longer a static or a project phase, but
time, the software developers need to quickly implement some instead of a dynamic process. It is no longer the task the
functionality, presentation to customers, get customers’ high developer.
quality, accuracy feedback on the current progress. Coding. In Extreme Programming, many of the practices
Courage. Once an error or changes in requirment occur, such as pair programming, code refactoring, test driven de-
developers may need to drop some previous work and then velopment are focus on programming, to get high-quality
reimplement. In this case, the developers undoubtedly need program. Extreme Programming developer s considered code
for courage. Ignored for the past mistakes is to against the the as interesting text, rather than the encrypted text which difficult
principles of high-iterative process. Courage can be likened to to understand. So the meaning of the code should be obvious,
playing the maze game, when the wrong way was founded, that means with high readability to make the other team
the developers must immediately turn back, this does not mean members can understand the logic, algorithms and processes.
just a waste of the time, but rather the price to find a maze’s Testing. In Extreme Programming, Test is one not easy
exit. to perform[11].Good test is the key to ensure the quality of
Extreme Programming is actually driven by these four software product. Extreme Programming test is run through
values. In other words, if you want to achieve an Extreme the entire development process. From the beginning the code
Programming practice, and did not get the four values, then it could be tested,the most of the issues of software should be
will lose the meaning of Extreme Programming. resolved at an early stage, rather than to wait until a later
3) Extreme Programming Principels: Built on the basis of stage. In this way developed software’s quality is guaranteed,
the values of Extreme Programming, there are five key princi- the development costs will be reduced.
ples to guide software development: quality work, incremen- 5) Extreme Programming Practices: 12 Extreme Program-
tal change, rapidfeedback, assume simplicity and embracing ming practices is summed up by the developer of Extreme
change[9]. Programming, it reflects well the principles of Extreme
Auality work refers to the quality of work and product can Programming[12].
not be ignored, developers can not give up the software quality Planning game. The purpose of the Planning Game is to
because of the development progress, and make concessions. guide the product into delivery[13]. In the project planning
Incremental change. Developers should through a series of stage, you need to get the user’s needs. The way how Extreme
small changes to solve a problem. In the planning, develop- Programming get the requirements from customers is different
ment and design process, this principle should be adopted . form traditional way. In Extreme Programming customers
Rapid feedback. Developers through the short iterative cy- get story card from developer and then write down all their
cles to get feedback and quickly check the current product if requirements on the cards. Developers predict the time that
it meets customer requirements. required to achieve on each card, and then According to
Assume simplicity. Try to solve each issue with the simplest the priority from users and the estimated time developers
way. This means that developers only need to considered would select the the tasks which in first iteration of should be
the problem within the current iteration. Design should be completed. After the first iteration and the result will compare
as simple as possible, just to meet the needs of the current with the original story card. Before the start of the next
iteration. iteration, the user can modify the user card, and then start
Embracing change. In solving pressing problems, adopt the next iteration.
an tolerant strategy. Developers need to understand customer Simple design. Extreme Programming consider code should
needs are constantly changing, so the features and functions of be designed as simple as possible, just meet the requirements
the priority needs are constantly changing. To embrace change, of the current function. Traditional software development is a
top-down design, emphasizing the design first, before you start that if a customer is on site, can improve the accuracy and
writing the code, there must be a perfect model. In contrast, efficiency of the development.
in Extreme Programming developers according to the present 40 hours a week. Extreme programming requires developers
requirements to work hard to find the simplest design. to work every day for no more than eight hours working time
Small releases. Extreme Programming emphasizes that ev- per week does not exceed 40 hours, no overtime continuously
ery 3 weeks should give an iterative version of the distribution for more than two weeks, so as not to affect efficiency. Smooth
system to the user. It also gives customers more opportunities development process ensure that programmers can continue
to communicate with developers. Customers will provide to complete the task, team can continue to deliver release to
feedback based on this small release, telling developers where its customers. Continue to work for a long hours will kill
are problems, which would allow developers in the next release efficiency, fatigue developers will make more mistakes.
to make adjustments in time.
Metaphor. System metaphor is through the system’s descrip- B. Scrum
tion let all developers have a very clear outline of the project to Scrum is proposed by Ken Schwaber and Jeff
help everyone understand the system’s basic elements and their Sutherland[14], seeking full play to object-oriented
relationships. Because developers are not familiar with the development approach, is also a improvement of iterative
term of the business, customers also do not understand.term object-oriented method. Scrum is from Rugby (in the game
of software development. Through these metaphors to enhance each player should keep the overall judgments of the court,
understanding between customers and developers to avoid and through collective action, struggling to achieve the same
misunderstanding. goal–victory). Scrum was practiced for the first time in
Pair Programming. It means that there are two developers Easel (1993), is suitable for software development, which
in each small group, the one of role is driver and the another requirements are difficult to predict[15]. Scrum’s meeting,
is navigator, they can chang their role with each other during sprint, backlog, Scrum Master, Scrum Team have been used
programming. Two programmers to do ”a programmer’s work” by PLOP as the standard of Organizational and Process
seem inefficient, but in fact is just on the contrary. In addition Pattern[16].
to providing better code and tests, it also provided for the
transfer of knowledge in the team. Everyone can also learn
new knowledge from each other. Work will become fun.
Coding standards. In order to be able to understand each
other developers must follow a common coding standard when
whey write code. In Extreme Programming the document
should be minimized, better understanding code are considered
as the best documentation.
Coneetiveownership. No one can have any part of the code
alone. All the code are released into the version of repository.
Anyone has the right to modify code and does not require any
other person’s permission.
Continuous integration. It means that put continuously the
complete modules together. Purpose is to get the ongoing
customer’s feedback, and to early detect errors. Traditional Fig. 7. Scrum process
method works as follows: perform big-bang integration after
all code were written, and then spend a long time to correct Scrum’s basic idea is: To develop software like new products
the problem. Obviously continuous integration is conducive to development, you can not at the beginning define the final
detect problems early. Integration should be done many times product specifications. Process requires research, creativity,
a day. attempt and error, so there is no process can guarantee a
Refactoring. It is a process that improve the code has been fixed success of the project. Scrum has a clear ultimate goal,
done. It optimize the code’s internal structure, when in case familiar with the best sampel model and technology, which are
that the external behavior does not change. Its purpose is to necessary for the development process. With a high autonomy
improved software design and code quality and maintainabil- and flexibility, closer communication and cooperation to solve
ity. the challenges. Ensure that every day, every stage has a clear
Testing. Extreme Programming emphasizes test should be increment. Therefore, Scrum is ideal for product development
written before the start of coding. The tests are mainly projects.
performed is unit testing and functional testing. Scrum development process is usually an iterative cycle of
On-site customer. Extreme programming requires at least 2-4 weeks[14],shown in figur 7. Each iteration cycle is called
one representative of the customers in the entire development a Sprint, a new products start with customer requirement.
cycle responsible for ensuring requirements, answering ques- Development team must make every effort to deliver results in
tions and writing functional testing. Experience has shown each cycle. Team hava a meeting for 15 minutes a day to view
each member’s progress and plans, in order to understand the points. It Support not so good for distributed development en-
difficulties and try to figur out, then make decesion to arrange vironment and lack of support for large and complex software.
the next day’s tasks.
1) Role: Only three roles in Scrum: Scrum master, Scrum IV. A REAL EXAMPLE OF AGILE S OFTWARE
team and Product Owner D EVELOPMENT
Scrum master is a little different from project manager. The railway of Netherlands transported 1.2 million passen-
His duty is to help Scrum team to handle the things besides gers every day. They use a new information system, provide
developing, such as arranging and hosting meetings with more accurate information on the train, reducing human inter-
customers, management. Scrum master is to guide the team, vention. AgileDo have developed the PUB distribution system,
rather than control them. He is also a interface between it controls the information display and audio broadcasting of
development team and external. all stations[17].
Scrum team is self-organization, that means everyone in the
team can disscus that which task is by whom, each member has A. Start
the same responsibility and authority. The size of each Scrum Someone tried to develop this PUB system with Waterfall
team is between 5 and 9 person. What is the specific structure model. Just like the way of Waterfall, they have written a
within the team has not been defined, but the actual project detailed documentation and given it to developers. After 3
team determine the size and complexity of the structure. years, this project was cancelled, developers haven’t finished
Product owner is responsible for all requirements, ROI it because of some reasons, maybe changs in requirement or
(Return Of Investment), project Objectives and the entire something unexpected. Then the railway company employed
project. He is also responsible for updating product backlog AgileDo to develop it.
and the order of requirements’ priority. The project started with a 3 weeks preparation phase that
2) Sprint: Sprint is usually a 30-day cycle. During a sprint prepare everything they need in sprint. One project manager,
people do development and test. After the end of a Sprint, the one architect and one Scrum master were responsible for this
another one will begein till all of the tasks were finished, this phase. They have choose two business analysts as project
process is a iteration. At the end of each sprint, should be owner who with experiences on PUB, because they found it
able to demonstrate a working product. If some work is not not enough for one people to be owner in this project.
done at the end of sprint, then they should be written back Project manager will decide the priorty of tasks in each
to the Product Backlog in order to discuss them in the next sprint. But he was often absent. Therefore, the manager had
Sprint Planning Meeting. If the sprint task is completed before modified the priority for several times on the day he was
the end, with the help of product owner some tasks would be absent. Ideally, every person who has the final decision on
selected from the product backlog into Sprint Backlog. the priority should participate in sprint planning meeting.
Sprint Planning Meeting will be divided into two parts. In
the first part Scrum master, Scrum team, management, Product B. Group work
owner discuss what and how will task developed in next Sprint. This project have 7 member. They had formulated some
Only Scrum master and Scrum team participate in the second rules in Wiki which show how the team member works
part. Participants refine the selected task into several small together, for example, about development tools, work time,
steps, then write Sprint Backlog. quality etc. With Wiki the members can have a better consen-
There is a Review meeting in the end of each Sprint for sus. When someone want to modify or update something, they
Product Owner. In the meeting Scrum team show in the Sprint must write it in Wiki. It’s good when new menber join in.
what have they done. The merits of the solution should be In the first few iterations they had build, tested and verfied
described and analyzed at the meeting. Results of presentation the user stories. That makes customer very satisfied. After
would be compared with goals identified in the Sprint Planning several iterations they had expanded the project. The indian
Meeting to determine whether the development team have member came back to India, then the project had two Scrum
complete their tasks. At the meeting, the customer can have team, every team had 5 people, the 2 team shared a tester.
the opportunity to change the direction of future product Then the project was divided into 3 teams, each had a tester.
development. Each team had dutch and indian.
After Review Meeting there is a retrospective meeting. How each team contace with each other? Firstly, They
Purpose is to summarize the Sprint. Each participant should used Skype to have one to one or whole meeting. To ensure
answer the following two questions: What is good in previous the progress of meeting can be successful holded, they had
Sprint and what could be improved in next Sprint. used UPS. Pair programming was builded with the member
3) Scrum advantages and limitations: In the process of the who comes from the same country. They felt that no matter
project, all project team members have a very strong sense that with which tools the partner in pair programming should sit
Scrum brought many positive changes such as: Adapt quickly together.
to changes in requirements and released on time, improve They used Scrumworks to make record about sprint process
efficiency and reduce risk and product quality. and who had finish something. When they disscus something
What are the limitations of that Scrum? There are two with product owner, Scrumworks is very helpful and useful.
Thet had met some problems. For example, product owner V. AGILE S OFTWARE D EVELOPMENT IN UNIVERSITY
can’t speak english. According to Scrum, plan meeting was Programmers, or people who do something refers to project
divided into 2 parts. In the first part, product owner tell the management. Is that a truth that peoople could really un-
user story only to dutch member, then they discuss the user derstand or use agile software development only only have
story together and estimate it with skype. After sprint was participated in specialized training or gone through some real
showed in Netherlands, the member in Netherlands will write agile development? The answer is no. The university student
a report to the team in India. have already got the chance to experience what will Agile
C. Team for architecture Software Development bring to them.
Project has already become to one of favorite course in
They also need to know the non-functional requirements
many universities. Becasse in project student could learn some
from user. Although the product owner was familiar with the
thing practical and useful. Just like the student in majority
core functional requirements, but he didn’t know well about
in Computer Science and Technology, they can apply their
the security, log, usability and so on. So they need build a
knowledge in project and learn experience, rather than write
team to contact with the other department in company. Their
”hello world” in their own mind. As university apply the
job is only pay attention to architecture and non-functional
project more mature, people are think about how could they
requirements, then change it into user story in backlog.
make it better.
D. Requirements management University School professors and teachers began to think, in
The product owner was responsible for requirement doc- addition to technical factors, how could they improve project
umentatin and backlog, because the user requires a deteiled efficiency and increase student’s communication between each
documentation. Usually the team just need the user story in other, so that they can learn from each other, have a good
backlog and product owner can explain it, that is enough. understanding of each other. Ultimately it will improve the
This documentation is also useful for external tester. quality of project products, reduce errors, save time.

E. Test VI. C ONCLUSION


They had made a test after each sprint to ensure they can Agile Software Development have brought us many many
hand out the runnable software. The external tester hadn’t good things in software development. The most intuitive is
found many bugs. the improved quality of products, improved efficiency of
The test had two parts, unit testing and acceptance testing. developers and less errors. But we can not ignore its limita-
They did unit testing with JUnit and Clover. The target was tions. Especially in distributed development and large projects
that 80 Agile Software Development can still not good show the
They had a trouble to test a complex client. It is more harder its advantages. In my opinion, Agile is an attitude which is
than server site. So they did test manual. But the test time positive, efficient, and cooperative.
become longer and longer, the even worse thing is, the external
tester founded bugs only in this part. This problem would be ACKNOWLEDGMENT
solved with auto testing. So they advise that it deserve to do I would like here to thank my superviser Ulrich Bareth, he
auto testing, espacially in later time of project. helped me a lot by writting this paper.
F. Result R EFERENCES
Customer was very satisfied with the result. The improtant [1] D. N. M. S. V. TAPASKAR, “Enacted software development process
thing was that they discuss with customer how to improve the based on agile and agent methodologies,” International Journal of
software. Engineering Science and Technology, vol. 3, no. 11, 2007.
[2] D. D. Jamwal, “Analysis of software development models,” IJCST,
Customer found a audit outsourcing company to audit the vol. 1, no. 2, 2010.
software. The conculusion was maintainability of the system [3] J. R. J. W. Pekka Abrahamsson, Outi Salo, “Agile software development
is very good and the source code was with a very high quality. methods - review and analysis,” VTT Elektroniikka, 2002.
[4] W. R. Duncanillam, A Guide To The Project Management Body Of
G. Experience Knowledge, 1996.
[5] W. Royce, Software Project Management:A Unified Framework, 1998.
It is difficult to find a product owner with wealth of [6] P. Kruchten, “Introduction to the rational unified process,” Proceedings
knowledge about requirement and also know how to set the of the 24th International Conference on Software Engineering, p. 703,
2002.
priority. The project team need at least one product owner, [7] K. B. Marten Folwer, James A.Highsmith, Manifesto for Aigle Software
espacially in big project. To ensure the project will be finished Development, http://agilemanifesto.org/, 11 2011.
on schedule, it need a good backlog and estimation. Although [8] S. Ambler, Agile Modeling:Effective Practices for eXtreme Programming
and the Unified Process. Wiley Computer Publishing, 2004.
the software development process does not require a lot of [9] J. Highsmith, Agile Software Development Ecosystems. Addison
documentations, but the customer may need. Scrum is also Wesley, 2002.
suitable for distributed development. Before the project start [10] M. L. Back R. J., Hirkman P., “Evaluating the xp customer model and
design by contract,” in Euromicro Conference, 2004, pp. 318–325.
a meeting should be holded to let all the member have a [11] D. Karlstrm, “Introducing extreme programming an experience report.”
consensus. Proceedings 3rd Conference on extreme programming XP 2002, 2002.
[12] K. Beck, “Embracing change with extreme programming,” IEEE, pp.
70–77, 1999.
[13] M. G. M. Frank, “Introducing agile methods: Three years of experience,”
IEEE, pp. 334–341, 2004.
[14] K. Schwaber, Agile Project Management with Scrum. Microsoft Press,
2004.
[15] J. Sutherland, “Agile can scale: Inventing and reinventing scrum in five
companies,” Cutter IT Journal, 2001.
[16] Y. S. K. S. J. S. Mike Beedle, Martine Devos, “Scrum: An extension
pattern language for hyperproductive software development,” in PLoP:
The 1998 Pattern Languages of Programs Conference, 1998.
[17] A. Yuan, A real example about Agile Software Development, AgileDo,
2009.

You might also like