Introduction from the conventional plan driven approach because

 

Introduction

Changing business trends,
changing business disciplines create a direct impact on the software
development process because all businesses use these software. What is required
from the software developers is to accommodate these changes in the system
being developed so that they are compliant to the changing scenario around
them. This flexibility to accommodate changes in the software development
process is what  as simple as the plan of
Agile is. The software development life cycle in Agile comprises of several
iterations lasting over few weeks. Each iteration comprises of building a part
of the system . At the end of each sprint, working code is delivered to the
customer and any changes to be introduced are finalized now and are ready to be
added in any of the subsequent sprints. Agile process is different from the
conventional plan driven approach because of the following principles which is
the called as 14 Agile Manifesto. The
agile manifesto clearly points out-

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

·      
Individuals and
interactions
over processes and tools –

·      
Working software over comprehensive
documentation –24

·      
Customer collaboration over contract negotiation

·      
Responding to change over following a plan5

All these values helps us
understand the high level picture of Agile -how an Agile system reduces process
overheads and documentation  focuses on
incremental software delivery , involves Customer collaboration in development
phase and  is flexible to embrace change
in the current requirements.

Agile
Process-Key Points

 2 After each iteration, the team meets
for a retrospective meeting wherein the development team demonstrates the
working code. It is quite common for a team to have some unfinished work at the
end of each sprint/iteration. There could be a variety of reasons for the same.
What follows this , is the analysis of the cause of delay and based on the
priority of the impending task it’s moved to subsequent product backlogs. One
thing to notice here is that it all depends on the effectiveness of the people aiming
to remove the impediments and deficiencies in the software as well as welcome
the change in the system requirements, if any from the customer’s side. Their
prime focus should be to invent simple solutions so that if changes are to be
made anytime later, it is easy to make them. This requires the skill and
knowledge of technically sound individuals who are able to provide innovative
and simple solutions . 4With earlier stages eliminated, Agile developers now
have more time to concentrate on the development activities. It is true that
Agile teams are self organized, but this doesn’t mean that they are leaderless .Team
members should be ready to exchange their roles in the team (team reorganization
)based on their expertise with respect to the matter in focus. This is what
they say as-3Agility is possible only
through greater discipline on the part of everyone involved.

Individual
competence versus team competence1

Agile teams clearly focus
on both individuals and interaction over process and tools, so it will not be
wrong to say that Agilest value both individual and team competence. Agile
processes require more skilled and competent workforce .They should be able
accomplish any task at their hand even if the requirements or process change
over time. Competent individual  possess
greater problem solving skill and are an  asset to the team and organization they work
for. They fit in to model of 
self-organized and self-motivated 
individuals very aptly and set an example for others. As quoted by
Cockburn1-“Agile processes are designed to capitalize on each individual
and each team’s unique strengths”. 
If there is flaw or vagary in the process, it can be easily overcome by
a competent staff however lack of competency cannot overcome the shortcomings
of a process. It is owing to this reason that all the agile process-XP,
Scrum,  Adaptive Software Development,
Crystal methods or DSDM all emphasize on people, their talent , skill and
knowledge. However, it is also true that individual competence plus good
communication and interaction is what makes a good team-a competent team and
this is better than a competent individual  because it makes the process and system
dependable and reliable.1Such team models self organization, intense
collaboration, mutual trust and respect and possess good decision making and
problem solving abilities.

For instance if few
individuals in a team come up with a simple innovative solution to a problem that
includes changing to a new technology that would produce the same results in lesser
time  .This demonstrates individual competence.
Now if the  proposed solution is approved
after analysis by the other team members and upper management, sets an example of
team competence.

Team competence greatly depends
on communication and collaboration. During each sprint, all team
members, the Scrum Master, the Product Owner, stakeholders and most importantly
the customers collaborate to work towards achieving the best solution for the
goal5. Talking about communication, all agile process are based on
communication because it involves less documentation and more face-to-face
communication  in the form of daily scrum
meeting that helps team members get prompt and real time answers to their
question .This also increases amicability between individuals as more is shared
and less is concealed.

Micromanagement
in Agile

As there are several
iterations and each iteration includes daily scrum meeting wherein team meets
daily, some team members particularly developers and testers4 might find this
as a form of micromanagement if they have to answer on daily basis to their
managers about the impending work. In the absence of process and project
management activities, the managers could be mistaken in assessing the
situation and could complain about backlogs. Having worked in both Agile and
Waterfall setup I personally feel that, it is due to absence of a proper, well
formulated progress tracking mechanism like a Gantt chart  and 
other documents that is widely used in industry explaining the work
breakdown, deadlines which are not explicitly mentioned in the burndown charts
that may cause the leaders to micro manage.

Phases
in Agile

It is not possible to
believe that there is no planning in Agile .How can any process execute without
prior planning? The Agile process starts with identifying objective goals,
identifying possible user stories and getting a gross estimate of the time ,
cost and effort associated with the project. This estimate of the cost helps in
taking further decisions like  deciding
over hardware ,software requirements and architecture. Requirement definition
though not detailed, but also occurs in Agile. It is important in assessing the
value of software being developed. Design and development are integrated phases
in Agile process while testing and development go hand in hand. Since there is
no detailed documentation like Use Cases, UML,DFDs, it is in the hands of
developers to decide upon the framework of the system. Testers work closely
with the developers and test the code being developed during each iteration.
Usually testers contribute to Unit testing in Agile which involves running unit
test suite using Automation tools.

Conclusion

This report is an attempt
to understand and analyze Agile processes in depth. With the extensive
popularity of Agile, it is clear that many favor it for the promptness in
getting real time results, however not all models of Agile have been as
successful as the Scrum. Also owing to the lack of documentation, it is not
used by large scale organization and organizations developing critical
software. However, due to it’s simplicity and innovative approach, many large
scale organizations are now going Semi-Agile following combination of both
Agile and plan driven practices.

 

References

1 Cockburn, A. and Highsmith, J. “Agile software
development, the people factor”, Computer 34(2001) 131—133

2 Highsmith, J. and Cockburn,
A. “Agile software development: The business of innovation”, Computer
34(2001) 120-122

3 Beck, K. ; Boehm, B. “Agility
through discipline:  a debate” Computer,
June 2003, Vol.36(6), pp.44-46

4 Cohn, M. ; Ford, D.”
Introducing an Agile Process to an Organization “,Computer, June 2003,
Vol.36(6), pp.74-78

5 Williams, L. ; Cockburn,
A.” Agile software development: It’s about feedback and change “,
Computer, June 2003, Vol.36(6), pp.39-43

 

 

 

 

 

 

 

 

 

 

 

 Agile Software Development

By Tejasi Palkar

 

Introduction

Changing business trends,
changing business disciplines create a direct impact on the software
development process because all businesses use these software. What is required
from the software developers is to accommodate these changes in the system
being developed so that they are compliant to the changing scenario around
them. This flexibility to accommodate changes in the software development
process is what  as simple as the plan of
Agile is. The software development life cycle in Agile comprises of several
iterations lasting over few weeks. Each iteration comprises of building a part
of the system . At the end of each sprint, working code is delivered to the
customer and any changes to be introduced are finalized now and are ready to be
added in any of the subsequent sprints. Agile process is different from the
conventional plan driven approach because of the following principles which is
the called as 14 Agile Manifesto. The
agile manifesto clearly points out-

·      
Individuals and
interactions
over processes and tools –

·      
Working software over comprehensive
documentation –24

·      
Customer collaboration over contract negotiation

·      
Responding to change over following a plan5

All these values helps us
understand the high level picture of Agile -how an Agile system reduces process
overheads and documentation  focuses on
incremental software delivery , involves Customer collaboration in development
phase and  is flexible to embrace change
in the current requirements.

Agile
Process-Key Points

 2 After each iteration, the team meets
for a retrospective meeting wherein the development team demonstrates the
working code. It is quite common for a team to have some unfinished work at the
end of each sprint/iteration. There could be a variety of reasons for the same.
What follows this , is the analysis of the cause of delay and based on the
priority of the impending task it’s moved to subsequent product backlogs. One
thing to notice here is that it all depends on the effectiveness of the people aiming
to remove the impediments and deficiencies in the software as well as welcome
the change in the system requirements, if any from the customer’s side. Their
prime focus should be to invent simple solutions so that if changes are to be
made anytime later, it is easy to make them. This requires the skill and
knowledge of technically sound individuals who are able to provide innovative
and simple solutions . 4With earlier stages eliminated, Agile developers now
have more time to concentrate on the development activities. It is true that
Agile teams are self organized, but this doesn’t mean that they do not have
leadrers .Team members should be ready to exchange their roles in the team
(team reorganization )based on their expertise with respect to the matter in
focus. This is what  say as Kent says-3Agility is possible only through greater
discipline on the part of everyone involved.

Individual
competence versus team competence1

Agile teams clearly focus
on both individuals and interaction over process and tools, so it will not be
wrong to say that Agilest value both individual and team competence. Agile
processes require more skilled and competent workforce .They should be able
accomplish any task at their hand even if the requirements or process change
over time. Competent individual  possess
greater problem solving skilsl and are an  asset to the team and organization they work
for. They fit in to model of 
self-organized and self-motivated 
individuals very aptly and set an example for others. As quoted by
Cockburn1-“Agile processes are designed to capitalize on each individual
and each team’s unique strengths”. 
If there is flaw or vagary in the process, it can be easily overcome by
a competent staff however lack of competency cannot overcome the shortcomings
of a process. It is owing to this reason that all the agile process-XP,
Scrum,  Adaptive Software Development,
Crystal methods or DSDM all emphasize on people, their talent , skill and
knowledge. However, it is also true that individual competence plus good
communication and interaction is what makes a good team-a competent team and
this is better than a competent individual  because it makes the process and system
dependable and reliable.1Such team models self organization, intense
collaboration, mutual trust and respect and possess good decision making and
problem solving abilities.

For instance if few
individuals in a team come up with a simple innovative solution to a problem
that includes changing to a new technology that would produce the same results
in lesser time  .This demonstrates
individual competence. Now if the 
proposed solution is approved after analysis by the other team members
and upper management, sets an example of team competence.

Team competence greatly
depends on communication and collaboration. During each sprint,
all team members, the Scrum Master, the Product Owner, stakeholders and most
importantly the customers collaborate to work towards achieving the best
solution for the goal5. Talking about communication, all agile process are
based on communication because it involves less documentation and more
face-to-face communication  in the form
of daily scrum meeting that helps team members get prompt and real time answers
to their question .This also increases amicability between individuals as more
is shared and less is concealed.

Micromanagement
in Agile

As there are several
iterations and each iteration includes daily scrum meeting wherein team meets
daily, some team members particularly developers and testers4 might find this
as a form of micromanagement if they have to answer on daily basis to their
managers about the impending work. In the absence of process and project
management activities, the managers could be mistaken in assessing the
situation and could complain about backlogs. Having worked in both Agile and
Waterfall setup I personally feel that, it is due to absence of a proper, well
formulated progress tracking mechanism like a Gantt chart  and 
other documents that is widely used in industry explaining the work
breakdown, deadlines which are not explicitly mentioned in the burndown charts
that may cause the leaders to micro manage.

Phases
in Agile

It is not possible to
believe that there is no planning in Agile .How can any process execute without
prior planning? The Agile process starts with identifying objective goals,
identifying possible user stories and getting a gross estimate of the time ,
cost and effort associated with the project. This estimate of the cost helps in
taking further decisions like  deciding
over hardware ,software requirements and architecture. Requirement definition
though not detailed, but also occurs in Agile. It is important in assessing the
value of software being developed. Design and development are integrated phases
in Agile process while testing and development go hand in hand. Since there is
no detailed documentation like Use Cases, UML,DFDs, it is in the hands of
developers to decide upon the framework of the system. Testers work closely
with the developers and test the code being developed during each iteration.
Usually testers contribute to Unit testing in Agile which involves running unit
test suite using Automation tools.

Conclusion

This report is an attempt
to understand and analyze Agile processes in depth. With the extensive
popularity of Agile, it is clear that many favor it for the promptness in
getting real time results, however not all models of Agile have been as
successful as the Scrum. Also owing to the lack of documentation, it is not
used by large scale organization and organizations developing critical
software. However, due to it’s simplicity and innovative approach, many large
scale organizations are now going Semi-Agile following combination of both
Agile and plan driven practices.

 

References

1 Cockburn, A. and Highsmith, J. “Agile software
development, the people factor”, Computer 34(2001) 131—133

2 Highsmith, J. and Cockburn,
A. “Agile software development: The business of innovation”, Computer
34(2001) 120-122

3 Beck, K. ; Boehm, B. “Agility
through discipline:  a debate” Computer,
June 2003, Vol.36(6), pp.44-46

4 Cohn, M. ; Ford, D.”
Introducing an Agile Process to an Organization “,Computer, June 2003,
Vol.36(6), pp.74-78

5 Williams, L. ; Cockburn,
A.” Agile software development: It’s about feedback and change “,
Computer, June 2003, Vol.36(6), pp.39-43

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BACK TO TOP
x

Hi!
I'm Angelica!

Would you like to get a custom essay? How about receiving a customized one?

Check it out