SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
International Journal of Computer and Technology (IJCET), ISSN 0976 – 6367(Print),
International Journal of Computer Engineering Engineering
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME
and Technology (IJCET), ISSN 0976 – 6367(Print)
ISSN 0976 – 6375(Online) Volume 1                                     IJCET
Number 2, Sep - Oct (2010), pp. 47-56                              ©IAEME
© IAEME, http://www.iaeme.com/ijcet.html

         AGILE PROGRAMMING-A NEW APPROACH

                                 Prema.S.Thomas
                                Assistant Professor
               Department Of M.C.A,Rajagiri College Of Social Sciences
                               Kalamasserry, Kochi
                        E-Mail: prema.s.thomas@gmail.com

ABSTRACT
The paper “Agile Programming- A New Approach “intends to present the need for a new
method in agile programming. A brief introduction about the traditional methods used in
agile programming is discussed .The reasons for moving to agile programming is
explained. A comparative study of the various technologies like Scrum, Extreme
Programming and Lean Development in agile programming is presented. The study
reveals quite a few drawbacks such as inability to cater to large sized projects, does not
support multi site projects and so on. The research is on “what methodology could be
designed” such that it takes advantage of all the existing methods while the deficiencies
of the current agile techniques are overcome.
The key points addressed in this paper on Software Project Management are:
  Issues With The Traditional SDLC methods
  Reasons For Moving To Agile Programming
  Strategies In Agile Programming
  Various Techniques In Agile Programming
  Comparison Between The Different Methods
  Drawbacks Of The Existing Methods
  Need For A New Approach
  Proposed Features Of The New Approach To Agile Programming




                                           47
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME


The paper focuses on
o An overview of the existing methodologies in agile programming

o It also analyzes the differences among the various methods.

o Proposing a new methodology.
Keywords: Agile programming, Scrum, Extreme Programming, Lean Development,
Sprint, Burn Down chart.
WHY AGILE PROGRAMMING?
        Agile Programming is an outcome of the difficulties encountered in the traditional
methods like waterfall model, spiral model etc. where you need to wait till the end of the
complete cycle to know the flaws. Agile Programming, a Software Project Management
technique aims at developing the product with a clearly defined series of steps that are
recursively iterated to get the ultimate product. The methodology involves defining clear
cut tasks that are to be executed in a short time period which is reviewed at the end of the
term. In agile programming the tasks are precise and the time period short, that the results
become visible at the end of this time period. Hence changes can be done easily since the
flaws are identified in the early stages itself. The effective communication among the
peer members of the team helps in reducing the issues that might exist in the
development process.
HISTORY
        Agile Programming had its start way back in 1970, when Dr.Winston Royce
analyzed his thoughts on the traditional waterfall model. In his paper “Managing the
Development of Large Software Systems” he analyzed the steps in the waterfall model
and found that the entire development cycle lacked effective communication. Though the
precise steps in the model helped identifying the process, lack of communication among
the team members created flaws in the ultimate product. In fact it was an eye opener to
him and so he decided to have a more effective development method-Agile
Programming.
        In the traditional models, the developer assumes the requirements based on the
requirements specifications and proceeds developing the product .But when the final
product is released the client realizes that he had a different requirement. This issue could


                                                 48
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME


have been sorted out through a simple and effective communication before the release of
the product. Hence it revealed the need for frequent and timely meetings that could make
the development process more precise. When the requirement is documented, it becomes
a good proof but misinterpreted most of the time. This gives enough reasons why agile
programming has been introduced.
STRATEGIES
A few strategies used in agile programming which could be the key rules in agile
programming are:
1. Simple Design – Design in such a way that the steps are self-explanatory

2. Progress as you proceed – Steps that are upgraded once you complete a particular task

3. Iterative Steps – Steps are automatically incremented after each task

4. Optimal Principle – Use methods that leads to a solution to the problem

5. Self reliant steps – Design in such a way that the steps are independent

6. Tools with a purpose – Use tools which serve a definite task
AGILE DEVELOPMENT TECHNIQUES
Scrum
        The most popular agile programming technique is the scrum. The scrum method
of agile programming helps in attaining a smooth work flow on a day to day basis guided
by sprints. It reduces the unnecessary documents which are being generated and which is
often misinterpreted by the developers. A very efficient method of developing a product
which follows a divide and conquer strategy for achieving the requirements specified by
the customer. Sprint with its time box of around two weeks to one month helps in
defining clear cut deadlines and specifications to be met on that day. Though the no. of
days cannot be increased, the sprint backlog can be modified if needed.




                                                 49
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME




                                               Figure 1.1
Important                                     More important
• Processes and tools                   • individuals and interaction
• Detailed documentation                • functioning software
• Contract negotiations                 • collaboration with the
• Following a plan customer              • adapting to changes
        (Source: Manifesto for Agile Software Development http://agilemanifesto.org/)




                                                 Figure 1.2


                                                 50
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME


EXTREME PROGRAMMING
          The next most popular agile development technique is Extreme Programming. It
is a way of programming that focuses on how to work in a project.
          Following are the 12 practices which is followed in the case of Extreme
Programming:
1. Planning –The requirements are listed by the customer, the team checks for the
feasibility based on several factors such as cost, time, resource etc and then both the
parties negotiate for the most feasible plan that meets the business needs. This game is
played at the beginning of each iteration in the development process.
2. Small Releases – The team then decides on the divisibility of the tasks and then
makes small units of work that can be completed within a week or two.

3. Metaphor- Extreme Programming metaphor is a high level view of the system to be
developed. Any detailed description is maintained as a separate document and not given
in the high level vision of the system

4. Simple Design - Simplicity is one important feature of Extreme Programming. The
design is kept as simple as possible in order to avoid the complexity of any rework in the
future.

5. Test First – To make the task simpler, before they write a single line of code , they
should have a clear idea about the test cases to be applied to check for the correctness of
the code. Hence it is often advisable to code a little and then test a little till the code is
bug free.

6. Refactoring – Refactoring is a clean up of the code in order to make the non
functional software functional without changing the behavior of the code.

7. Pair Programming – The most healthy and visible feature of XP Programming is
the pair programming. It help the pair (a team of developers) double check on the code as
well as the testing phase of the code.

8. Collective Ownership – In XP programming, there is no single ownership for the
code. The code is owned by the complete team.


                                                 51
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME


9. Continuous Integration – The integration of the system is a continuous process
and not just done once the complete system is build. The pair will have to integrate the
code with the base line system once they have completed the code and then test it for
errors. .

10. 40-hour Week – The time frame for XP Programming is 40 hour week in order to
motivate the team to see the results at the end of 40 hour week.

11. On-site Customer – The person who will have hands on experience with the
system is the on-site customer. The on-site customer is responsible for trying out the
needs of the customer and suggests any modifications needed.

12. Coding Standards –X Programming follows some standards such as pair
programming, collective ownership etc which maintains the order of the system. When a
collaborative work is done, some standard has to be maintained in order to avoid flaws in
the system.
COMPARISON OF SCRUM & EXTREME PROGRAMMING
Scrum                                             Extreme Programming
Scrum is based on sprints that are                Extreme Programming is generally one to
normally two weeks to one month long              two weeks long
Scrum does not allow changes in its               Extreme Programming is more flexible
sprint
Scrum prioritizes the product backlog but         Extreme programming works in a strict
the team decides in which order it is to be       priority basis set by the product owner
executed
Scrum does not insist on any engineering          Extreme programming works on the
practices                                         engineering practices such as refactoring,
                                                  automated testing etc
Scrum is a project management process             Extreme programming is a project
                                                  management practice
The main aim of scrum is to get an                The main of extreme programming is to help
estimate of how long will the                     developers to get the things done quickly
development take
LEAN DEVELOPMENT
        Lean development is an agile development technique that is developed by first
understanding “value “ and then what are the resources needed to create the value. Lean
development helps to develop a high quality, lowest cost product within the given time



                                                 52
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME


frame. The main focus of lean development is the development of software that is open to
changes.
The principles of Lean Development are:
  Eliminate waste by selecting only the truly valuable features for the system;
  Satisfy stake holders;
  Empowerment;
  Deploying Comprehensive testing;
  Deliver as fast as possible;
  Refactoring;
  Learn by Experimentation;
  Measure Business impact;
  Optimize across organization;
COMPARISON OF SCRUM & LEAN DEVELOPMENT
Scrum                                                   Lean Development
Scrum starts at the team                                Lean development starts at the process
Scrum first creates a self organizing team with         Lean concentrates on value creation
a clear set of objectives                               and elimination of waste
Scrum restricts itself to a basic framework of          Lean gives specific hints as to how to
project management practices                            create a project
Scrum has a set of well defined roles ,                 Lean consists of more general advices
meetings etc..                                          with a value system
Scrum is more specific on time boxes                    Lean is less specific on time boxes
Less emphasis on quality                                More emphasis on quality
Burn Down Chart of Agile Programming
        The burn down chart of agile programming helps in realizing how much work
remains to implement and the time left for delivering the product. It is a tool for
comparing the percentage of work left in comparison with the no of days left for the
release of the product.




                                                 53
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME




                                      Figure 1. 3 Burn Down Chart
PROS & CONS OF AGILE PROGRAMMING
        Agile programming is best suited for small sized projects. It cannot be applied for
large sized projects that run for years together and which involves a bigger team of more
that 100 members in the team.
Pros                                              Cons
The team is fully focused                         Suitable for small sized projects
The delivery of the product is fast               Easily leads to burnouts
There is a good feedback system                   May lead to social issues if decisions are
                                                  not mature
It discovers optimal solutions faster             It might lead to overheads such as testing
based on the feedback                             after each iteration
There is less chance of deviating from            Might affect the product if the sprints are
the actual product                                mutually dependant
It gives way to good learning                     Delay due to waiting for resources
                                                  outside the team
Identifies the flaws easily and can be            May lead to complexities as the projects
corrected easily                                  become larger
A NEW APPROACH TO AGILE PROGRAMMING
        The major drawback of agile programming is that it cannot be applied to large
projects. Another key issue is that it does not support multi site projects. Hence there is a
need for a new methodology apart from the scrum, XP Programming and Lean


                                                 54
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME


Development. A technique that takes advantage of the three techniques and gives a better
method that best suits larger applications. The basic idea of this method is to review the
existing agile programming techniques and extract the limitations of the same. Further
based on various case studies generate a new technique that suits larger applications. The
study basically aims at focusing on multi site project , projects of large size and so on.
The key factor in this new technology is the deployment of the method to practical
scenarios. Some of the features of the proposed methodology are
  Support projects of large size(more than 100 people)

  Support multi site projects

  To be able to do overall optimization on schedule using fast tracking
CONCLUSION
        The paper titled “Agile Programming – A New Approach” presents the
methodology used in agile programming. The basic intention of introducing this concept
is to give a comparative study of the various methodologies that exist in agile
programming. The existing methodology can be applied only to small projects and so
aims to design a new methodology for agile programming that can be applied to larger
projects. The new methodology should be applicable in all the larger projects while
retaining the benefits of the existing methodologies. It gives way to research on a few
questions such as , why is it not applicable to larger projects?, what are the drawbacks of
the existing methodologies?, and so on. Hope with the comparisons and with a brief
overview of the existing agile development methods, a newer and better method would
evolve that suit any type of projects.
REFERENCES
1. Ian Sommerville, Software Engineering, Pearson Education, Eight Edition

2. Beck, K., Extreme Programming Explained, Reading, MA: Addison-Wesley Longman,
    Inc., 2000.

3. http://www.agilesolutionsgroup.com

4. David Berger, Bill Cloke, Lean products start with Lean design,




                                                 55
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),
ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME


5. James P. Womack, Daniel T. Jones et. Al (1990), The Machine That Changed the
    World: The Story of Lean Production.

6. Jones, D.T. & Womack, J.P. (1996). Lean Thinking: Banish Waste and Create Wealth
    in Your Corporation,

7. Kent Beck and Martin Fowler, Planning Extreme Programming, Addison-Wesley.

8. Kent Beck and Cynthia Andres. Extreme Programming Explained: Embrace Change,
    Second Edition, Addison-Wesley.

9. Alistair Cockburn: Agile Software Development, Addison-Wesley.

10. Agile Modeling: Effective Practices for eXtreme Programming and the Unified
    Process by Scott W. Ambler




                                                 56

Mais conteúdo relacionado

Mais procurados

Agile Software Development Approaches
Agile Software Development ApproachesAgile Software Development Approaches
Agile Software Development Approachesdcsunu
 
Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Marcello Thiry
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710Nikhil Todkar
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1Samura Daniel
 
Software Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsSoftware Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsJesminBinti
 
Chapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsChapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsPiyush Gogia
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive SystemsTom Mueck
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introductionPiyush Gogia
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Prateek
 
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...wepc2016
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALAlex Tarra
 
ECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENT
ECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENTECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENT
ECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENTijseajournal
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software EngineeringNandhini S
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 

Mais procurados (18)

Agile Software Development Approaches
Agile Software Development ApproachesAgile Software Development Approaches
Agile Software Development Approaches
 
Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
 
Software Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsSoftware Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process models
 
Ch01
Ch01Ch01
Ch01
 
Chapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsChapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_models
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive Systems
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
 
Ch1
Ch1Ch1
Ch1
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design
 
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
ECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENT
ECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENTECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENT
ECONOMIC OUTPUT UNDER THE CONDITIONS OF SOCIAL FREEDOM IN SOFTWARE DEVELOPMENT
 
Cu32604607
Cu32604607Cu32604607
Cu32604607
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software Engineering
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 

Semelhante a Agile programming a new approach

Software process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various modelsSoftware process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various modelsiaemedu
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product developmentiaemedu
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product developmentiaemedu
 
Software metric analysis methods for product development maintenance projects
Software metric analysis methods for product development  maintenance projectsSoftware metric analysis methods for product development  maintenance projects
Software metric analysis methods for product development maintenance projectsIAEME Publication
 
A study of critical success factors for adaption of agile methodology
A study of critical success factors for adaption of agile methodologyA study of critical success factors for adaption of agile methodology
A study of critical success factors for adaption of agile methodologyIAEME Publication
 
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patentIAEME Publication
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patentiaemedu
 
Hybrid model for software development
Hybrid model for software developmentHybrid model for software development
Hybrid model for software developmenteSAT Journals
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptRedHeart11
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfVijayakumarKadumbadi
 
Deepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine LearningDeepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine LearningIRJET Journal
 
chapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptchapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptNakulP3
 
G0313036040
G0313036040G0313036040
G0313036040theijes
 
DESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGY
DESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGYDESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGY
DESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGYijseajournal
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
“Scrumbear” framework for solving traditional scrum model problems
“Scrumbear” framework for solving traditional scrum model problems“Scrumbear” framework for solving traditional scrum model problems
“Scrumbear” framework for solving traditional scrum model problemsjournalBEEI
 

Semelhante a Agile programming a new approach (20)

Software process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various modelsSoftware process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various models
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product development
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product development
 
Software metric analysis methods for product development maintenance projects
Software metric analysis methods for product development  maintenance projectsSoftware metric analysis methods for product development  maintenance projects
Software metric analysis methods for product development maintenance projects
 
A study of critical success factors for adaption of agile methodology
A study of critical success factors for adaption of agile methodologyA study of critical success factors for adaption of agile methodology
A study of critical success factors for adaption of agile methodology
 
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
 
50120130405029
5012013040502950120130405029
50120130405029
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patent
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patent
 
Hybrid model for software development
Hybrid model for software developmentHybrid model for software development
Hybrid model for software development
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
 
Deepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine LearningDeepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine Learning
 
chapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptchapter-03-Agile view of process.ppt
chapter-03-Agile view of process.ppt
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
G0313036040
G0313036040G0313036040
G0313036040
 
DESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGY
DESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGYDESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGY
DESIGN OF A MULTI-AGENT SYSTEM ARCHITECTURE FOR THE SCRUM METHODOLOGY
 
Software engg unit 1
Software engg unit 1 Software engg unit 1
Software engg unit 1
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
“Scrumbear” framework for solving traditional scrum model problems
“Scrumbear” framework for solving traditional scrum model problems“Scrumbear” framework for solving traditional scrum model problems
“Scrumbear” framework for solving traditional scrum model problems
 

Mais de iaemedu

Tech transfer making it as a risk free approach in pharmaceutical and biotech in
Tech transfer making it as a risk free approach in pharmaceutical and biotech inTech transfer making it as a risk free approach in pharmaceutical and biotech in
Tech transfer making it as a risk free approach in pharmaceutical and biotech iniaemedu
 
Integration of feature sets with machine learning techniques
Integration of feature sets with machine learning techniquesIntegration of feature sets with machine learning techniques
Integration of feature sets with machine learning techniquesiaemedu
 
Effective broadcasting in mobile ad hoc networks using grid
Effective broadcasting in mobile ad hoc networks using gridEffective broadcasting in mobile ad hoc networks using grid
Effective broadcasting in mobile ad hoc networks using gridiaemedu
 
Effect of scenario environment on the performance of mane ts routing
Effect of scenario environment on the performance of mane ts routingEffect of scenario environment on the performance of mane ts routing
Effect of scenario environment on the performance of mane ts routingiaemedu
 
Adaptive job scheduling with load balancing for workflow application
Adaptive job scheduling with load balancing for workflow applicationAdaptive job scheduling with load balancing for workflow application
Adaptive job scheduling with load balancing for workflow applicationiaemedu
 
Survey on transaction reordering
Survey on transaction reorderingSurvey on transaction reordering
Survey on transaction reorderingiaemedu
 
Semantic web services and its challenges
Semantic web services and its challengesSemantic web services and its challenges
Semantic web services and its challengesiaemedu
 
Website based patent information searching mechanism
Website based patent information searching mechanismWebsite based patent information searching mechanism
Website based patent information searching mechanismiaemedu
 
Revisiting the experiment on detecting of replay and message modification
Revisiting the experiment on detecting of replay and message modificationRevisiting the experiment on detecting of replay and message modification
Revisiting the experiment on detecting of replay and message modificationiaemedu
 
Prediction of customer behavior using cma
Prediction of customer behavior using cmaPrediction of customer behavior using cma
Prediction of customer behavior using cmaiaemedu
 
Performance analysis of manet routing protocol in presence
Performance analysis of manet routing protocol in presencePerformance analysis of manet routing protocol in presence
Performance analysis of manet routing protocol in presenceiaemedu
 
Performance measurement of different requirements engineering
Performance measurement of different requirements engineeringPerformance measurement of different requirements engineering
Performance measurement of different requirements engineeringiaemedu
 
Mobile safety systems for automobiles
Mobile safety systems for automobilesMobile safety systems for automobiles
Mobile safety systems for automobilesiaemedu
 
Efficient text compression using special character replacement
Efficient text compression using special character replacementEfficient text compression using special character replacement
Efficient text compression using special character replacementiaemedu
 
Adaptive load balancing techniques in global scale grid environment
Adaptive load balancing techniques in global scale grid environmentAdaptive load balancing techniques in global scale grid environment
Adaptive load balancing techniques in global scale grid environmentiaemedu
 
A survey on the performance of job scheduling in workflow application
A survey on the performance of job scheduling in workflow applicationA survey on the performance of job scheduling in workflow application
A survey on the performance of job scheduling in workflow applicationiaemedu
 
A survey of mitigating routing misbehavior in mobile ad hoc networks
A survey of mitigating routing misbehavior in mobile ad hoc networksA survey of mitigating routing misbehavior in mobile ad hoc networks
A survey of mitigating routing misbehavior in mobile ad hoc networksiaemedu
 
A novel approach for satellite imagery storage by classify
A novel approach for satellite imagery storage by classifyA novel approach for satellite imagery storage by classify
A novel approach for satellite imagery storage by classifyiaemedu
 
A self recovery approach using halftone images for medical imagery
A self recovery approach using halftone images for medical imageryA self recovery approach using halftone images for medical imagery
A self recovery approach using halftone images for medical imageryiaemedu
 
A comprehensive study of non blocking joining technique
A comprehensive study of non blocking joining techniqueA comprehensive study of non blocking joining technique
A comprehensive study of non blocking joining techniqueiaemedu
 

Mais de iaemedu (20)

Tech transfer making it as a risk free approach in pharmaceutical and biotech in
Tech transfer making it as a risk free approach in pharmaceutical and biotech inTech transfer making it as a risk free approach in pharmaceutical and biotech in
Tech transfer making it as a risk free approach in pharmaceutical and biotech in
 
Integration of feature sets with machine learning techniques
Integration of feature sets with machine learning techniquesIntegration of feature sets with machine learning techniques
Integration of feature sets with machine learning techniques
 
Effective broadcasting in mobile ad hoc networks using grid
Effective broadcasting in mobile ad hoc networks using gridEffective broadcasting in mobile ad hoc networks using grid
Effective broadcasting in mobile ad hoc networks using grid
 
Effect of scenario environment on the performance of mane ts routing
Effect of scenario environment on the performance of mane ts routingEffect of scenario environment on the performance of mane ts routing
Effect of scenario environment on the performance of mane ts routing
 
Adaptive job scheduling with load balancing for workflow application
Adaptive job scheduling with load balancing for workflow applicationAdaptive job scheduling with load balancing for workflow application
Adaptive job scheduling with load balancing for workflow application
 
Survey on transaction reordering
Survey on transaction reorderingSurvey on transaction reordering
Survey on transaction reordering
 
Semantic web services and its challenges
Semantic web services and its challengesSemantic web services and its challenges
Semantic web services and its challenges
 
Website based patent information searching mechanism
Website based patent information searching mechanismWebsite based patent information searching mechanism
Website based patent information searching mechanism
 
Revisiting the experiment on detecting of replay and message modification
Revisiting the experiment on detecting of replay and message modificationRevisiting the experiment on detecting of replay and message modification
Revisiting the experiment on detecting of replay and message modification
 
Prediction of customer behavior using cma
Prediction of customer behavior using cmaPrediction of customer behavior using cma
Prediction of customer behavior using cma
 
Performance analysis of manet routing protocol in presence
Performance analysis of manet routing protocol in presencePerformance analysis of manet routing protocol in presence
Performance analysis of manet routing protocol in presence
 
Performance measurement of different requirements engineering
Performance measurement of different requirements engineeringPerformance measurement of different requirements engineering
Performance measurement of different requirements engineering
 
Mobile safety systems for automobiles
Mobile safety systems for automobilesMobile safety systems for automobiles
Mobile safety systems for automobiles
 
Efficient text compression using special character replacement
Efficient text compression using special character replacementEfficient text compression using special character replacement
Efficient text compression using special character replacement
 
Adaptive load balancing techniques in global scale grid environment
Adaptive load balancing techniques in global scale grid environmentAdaptive load balancing techniques in global scale grid environment
Adaptive load balancing techniques in global scale grid environment
 
A survey on the performance of job scheduling in workflow application
A survey on the performance of job scheduling in workflow applicationA survey on the performance of job scheduling in workflow application
A survey on the performance of job scheduling in workflow application
 
A survey of mitigating routing misbehavior in mobile ad hoc networks
A survey of mitigating routing misbehavior in mobile ad hoc networksA survey of mitigating routing misbehavior in mobile ad hoc networks
A survey of mitigating routing misbehavior in mobile ad hoc networks
 
A novel approach for satellite imagery storage by classify
A novel approach for satellite imagery storage by classifyA novel approach for satellite imagery storage by classify
A novel approach for satellite imagery storage by classify
 
A self recovery approach using halftone images for medical imagery
A self recovery approach using halftone images for medical imageryA self recovery approach using halftone images for medical imagery
A self recovery approach using halftone images for medical imagery
 
A comprehensive study of non blocking joining technique
A comprehensive study of non blocking joining techniqueA comprehensive study of non blocking joining technique
A comprehensive study of non blocking joining technique
 

Agile programming a new approach

  • 1. International Journal of Computer and Technology (IJCET), ISSN 0976 – 6367(Print), International Journal of Computer Engineering Engineering ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME and Technology (IJCET), ISSN 0976 – 6367(Print) ISSN 0976 – 6375(Online) Volume 1 IJCET Number 2, Sep - Oct (2010), pp. 47-56 ©IAEME © IAEME, http://www.iaeme.com/ijcet.html AGILE PROGRAMMING-A NEW APPROACH Prema.S.Thomas Assistant Professor Department Of M.C.A,Rajagiri College Of Social Sciences Kalamasserry, Kochi E-Mail: prema.s.thomas@gmail.com ABSTRACT The paper “Agile Programming- A New Approach “intends to present the need for a new method in agile programming. A brief introduction about the traditional methods used in agile programming is discussed .The reasons for moving to agile programming is explained. A comparative study of the various technologies like Scrum, Extreme Programming and Lean Development in agile programming is presented. The study reveals quite a few drawbacks such as inability to cater to large sized projects, does not support multi site projects and so on. The research is on “what methodology could be designed” such that it takes advantage of all the existing methods while the deficiencies of the current agile techniques are overcome. The key points addressed in this paper on Software Project Management are: Issues With The Traditional SDLC methods Reasons For Moving To Agile Programming Strategies In Agile Programming Various Techniques In Agile Programming Comparison Between The Different Methods Drawbacks Of The Existing Methods Need For A New Approach Proposed Features Of The New Approach To Agile Programming 47
  • 2. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME The paper focuses on o An overview of the existing methodologies in agile programming o It also analyzes the differences among the various methods. o Proposing a new methodology. Keywords: Agile programming, Scrum, Extreme Programming, Lean Development, Sprint, Burn Down chart. WHY AGILE PROGRAMMING? Agile Programming is an outcome of the difficulties encountered in the traditional methods like waterfall model, spiral model etc. where you need to wait till the end of the complete cycle to know the flaws. Agile Programming, a Software Project Management technique aims at developing the product with a clearly defined series of steps that are recursively iterated to get the ultimate product. The methodology involves defining clear cut tasks that are to be executed in a short time period which is reviewed at the end of the term. In agile programming the tasks are precise and the time period short, that the results become visible at the end of this time period. Hence changes can be done easily since the flaws are identified in the early stages itself. The effective communication among the peer members of the team helps in reducing the issues that might exist in the development process. HISTORY Agile Programming had its start way back in 1970, when Dr.Winston Royce analyzed his thoughts on the traditional waterfall model. In his paper “Managing the Development of Large Software Systems” he analyzed the steps in the waterfall model and found that the entire development cycle lacked effective communication. Though the precise steps in the model helped identifying the process, lack of communication among the team members created flaws in the ultimate product. In fact it was an eye opener to him and so he decided to have a more effective development method-Agile Programming. In the traditional models, the developer assumes the requirements based on the requirements specifications and proceeds developing the product .But when the final product is released the client realizes that he had a different requirement. This issue could 48
  • 3. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME have been sorted out through a simple and effective communication before the release of the product. Hence it revealed the need for frequent and timely meetings that could make the development process more precise. When the requirement is documented, it becomes a good proof but misinterpreted most of the time. This gives enough reasons why agile programming has been introduced. STRATEGIES A few strategies used in agile programming which could be the key rules in agile programming are: 1. Simple Design – Design in such a way that the steps are self-explanatory 2. Progress as you proceed – Steps that are upgraded once you complete a particular task 3. Iterative Steps – Steps are automatically incremented after each task 4. Optimal Principle – Use methods that leads to a solution to the problem 5. Self reliant steps – Design in such a way that the steps are independent 6. Tools with a purpose – Use tools which serve a definite task AGILE DEVELOPMENT TECHNIQUES Scrum The most popular agile programming technique is the scrum. The scrum method of agile programming helps in attaining a smooth work flow on a day to day basis guided by sprints. It reduces the unnecessary documents which are being generated and which is often misinterpreted by the developers. A very efficient method of developing a product which follows a divide and conquer strategy for achieving the requirements specified by the customer. Sprint with its time box of around two weeks to one month helps in defining clear cut deadlines and specifications to be met on that day. Though the no. of days cannot be increased, the sprint backlog can be modified if needed. 49
  • 4. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME Figure 1.1 Important More important • Processes and tools • individuals and interaction • Detailed documentation • functioning software • Contract negotiations • collaboration with the • Following a plan customer • adapting to changes (Source: Manifesto for Agile Software Development http://agilemanifesto.org/) Figure 1.2 50
  • 5. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME EXTREME PROGRAMMING The next most popular agile development technique is Extreme Programming. It is a way of programming that focuses on how to work in a project. Following are the 12 practices which is followed in the case of Extreme Programming: 1. Planning –The requirements are listed by the customer, the team checks for the feasibility based on several factors such as cost, time, resource etc and then both the parties negotiate for the most feasible plan that meets the business needs. This game is played at the beginning of each iteration in the development process. 2. Small Releases – The team then decides on the divisibility of the tasks and then makes small units of work that can be completed within a week or two. 3. Metaphor- Extreme Programming metaphor is a high level view of the system to be developed. Any detailed description is maintained as a separate document and not given in the high level vision of the system 4. Simple Design - Simplicity is one important feature of Extreme Programming. The design is kept as simple as possible in order to avoid the complexity of any rework in the future. 5. Test First – To make the task simpler, before they write a single line of code , they should have a clear idea about the test cases to be applied to check for the correctness of the code. Hence it is often advisable to code a little and then test a little till the code is bug free. 6. Refactoring – Refactoring is a clean up of the code in order to make the non functional software functional without changing the behavior of the code. 7. Pair Programming – The most healthy and visible feature of XP Programming is the pair programming. It help the pair (a team of developers) double check on the code as well as the testing phase of the code. 8. Collective Ownership – In XP programming, there is no single ownership for the code. The code is owned by the complete team. 51
  • 6. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME 9. Continuous Integration – The integration of the system is a continuous process and not just done once the complete system is build. The pair will have to integrate the code with the base line system once they have completed the code and then test it for errors. . 10. 40-hour Week – The time frame for XP Programming is 40 hour week in order to motivate the team to see the results at the end of 40 hour week. 11. On-site Customer – The person who will have hands on experience with the system is the on-site customer. The on-site customer is responsible for trying out the needs of the customer and suggests any modifications needed. 12. Coding Standards –X Programming follows some standards such as pair programming, collective ownership etc which maintains the order of the system. When a collaborative work is done, some standard has to be maintained in order to avoid flaws in the system. COMPARISON OF SCRUM & EXTREME PROGRAMMING Scrum Extreme Programming Scrum is based on sprints that are Extreme Programming is generally one to normally two weeks to one month long two weeks long Scrum does not allow changes in its Extreme Programming is more flexible sprint Scrum prioritizes the product backlog but Extreme programming works in a strict the team decides in which order it is to be priority basis set by the product owner executed Scrum does not insist on any engineering Extreme programming works on the practices engineering practices such as refactoring, automated testing etc Scrum is a project management process Extreme programming is a project management practice The main aim of scrum is to get an The main of extreme programming is to help estimate of how long will the developers to get the things done quickly development take LEAN DEVELOPMENT Lean development is an agile development technique that is developed by first understanding “value “ and then what are the resources needed to create the value. Lean development helps to develop a high quality, lowest cost product within the given time 52
  • 7. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME frame. The main focus of lean development is the development of software that is open to changes. The principles of Lean Development are: Eliminate waste by selecting only the truly valuable features for the system; Satisfy stake holders; Empowerment; Deploying Comprehensive testing; Deliver as fast as possible; Refactoring; Learn by Experimentation; Measure Business impact; Optimize across organization; COMPARISON OF SCRUM & LEAN DEVELOPMENT Scrum Lean Development Scrum starts at the team Lean development starts at the process Scrum first creates a self organizing team with Lean concentrates on value creation a clear set of objectives and elimination of waste Scrum restricts itself to a basic framework of Lean gives specific hints as to how to project management practices create a project Scrum has a set of well defined roles , Lean consists of more general advices meetings etc.. with a value system Scrum is more specific on time boxes Lean is less specific on time boxes Less emphasis on quality More emphasis on quality Burn Down Chart of Agile Programming The burn down chart of agile programming helps in realizing how much work remains to implement and the time left for delivering the product. It is a tool for comparing the percentage of work left in comparison with the no of days left for the release of the product. 53
  • 8. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME Figure 1. 3 Burn Down Chart PROS & CONS OF AGILE PROGRAMMING Agile programming is best suited for small sized projects. It cannot be applied for large sized projects that run for years together and which involves a bigger team of more that 100 members in the team. Pros Cons The team is fully focused Suitable for small sized projects The delivery of the product is fast Easily leads to burnouts There is a good feedback system May lead to social issues if decisions are not mature It discovers optimal solutions faster It might lead to overheads such as testing based on the feedback after each iteration There is less chance of deviating from Might affect the product if the sprints are the actual product mutually dependant It gives way to good learning Delay due to waiting for resources outside the team Identifies the flaws easily and can be May lead to complexities as the projects corrected easily become larger A NEW APPROACH TO AGILE PROGRAMMING The major drawback of agile programming is that it cannot be applied to large projects. Another key issue is that it does not support multi site projects. Hence there is a need for a new methodology apart from the scrum, XP Programming and Lean 54
  • 9. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME Development. A technique that takes advantage of the three techniques and gives a better method that best suits larger applications. The basic idea of this method is to review the existing agile programming techniques and extract the limitations of the same. Further based on various case studies generate a new technique that suits larger applications. The study basically aims at focusing on multi site project , projects of large size and so on. The key factor in this new technology is the deployment of the method to practical scenarios. Some of the features of the proposed methodology are Support projects of large size(more than 100 people) Support multi site projects To be able to do overall optimization on schedule using fast tracking CONCLUSION The paper titled “Agile Programming – A New Approach” presents the methodology used in agile programming. The basic intention of introducing this concept is to give a comparative study of the various methodologies that exist in agile programming. The existing methodology can be applied only to small projects and so aims to design a new methodology for agile programming that can be applied to larger projects. The new methodology should be applicable in all the larger projects while retaining the benefits of the existing methodologies. It gives way to research on a few questions such as , why is it not applicable to larger projects?, what are the drawbacks of the existing methodologies?, and so on. Hope with the comparisons and with a brief overview of the existing agile development methods, a newer and better method would evolve that suit any type of projects. REFERENCES 1. Ian Sommerville, Software Engineering, Pearson Education, Eight Edition 2. Beck, K., Extreme Programming Explained, Reading, MA: Addison-Wesley Longman, Inc., 2000. 3. http://www.agilesolutionsgroup.com 4. David Berger, Bill Cloke, Lean products start with Lean design, 55
  • 10. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 1, Number 2, Sep – Oct (2010), © IAEME 5. James P. Womack, Daniel T. Jones et. Al (1990), The Machine That Changed the World: The Story of Lean Production. 6. Jones, D.T. & Womack, J.P. (1996). Lean Thinking: Banish Waste and Create Wealth in Your Corporation, 7. Kent Beck and Martin Fowler, Planning Extreme Programming, Addison-Wesley. 8. Kent Beck and Cynthia Andres. Extreme Programming Explained: Embrace Change, Second Edition, Addison-Wesley. 9. Alistair Cockburn: Agile Software Development, Addison-Wesley. 10. Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process by Scott W. Ambler 56