0% found this document useful (0 votes)
42 views

Agile Programming: A Brief Presentation by Pradeep

The document discusses Agile programming and its benefits over traditional approaches. It describes the history of Agile emerging in response to long development times in the 1990s. Agile focuses on rapid feedback, flexibility and accommodating change. Specific Agile methods discussed include Scrum, Kanban, and extreme programming. Continuous integration and development are also covered as important aspects of Agile.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Agile Programming: A Brief Presentation by Pradeep

The document discusses Agile programming and its benefits over traditional approaches. It describes the history of Agile emerging in response to long development times in the 1990s. Agile focuses on rapid feedback, flexibility and accommodating change. Specific Agile methods discussed include Scrum, Kanban, and extreme programming. Continuous integration and development are also covered as important aspects of Agile.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

AGILE PROGRAMMING

A brief presentation
By Pradeep

1
TABLE OF CONTENTS

• 1. Title Page

• 2. Table of contents

• 3. Table of contents(continued)

• 4. History of AGILE programming(continued)

• 5. Benefits of AGILE approach

• 6. Problems faced

2
TABLE OF CONTENTS

• 7. What does AGILE mean?

• 8. Various AGILE systems around the world

• 9. Scrum vs AGILE

• 10. Scrum vs KANBAN

• 11. Waterfall vs AGILE

• 12. KANBAN vs AGILE

• 13. Benefits of AGILE approach

• 14. AGILE VS previous models

• 15. Continuous Integration and Continuous Development

• 16. Continuous Integration and Continuous Development(continued)

• 17. Continuous Integration and Continuous Development(continued)

• 18. References

3
HISTORY OF AGILE PROGRAMMING

• In early 90s there was “application development crisis” or “application delivery lag”

• Industry experts estimated that the time between a validated business need and accrual application in the production was about three years.

• In certain industries, the lag was far greater than three years.

• Thought leaders and industry experts got frustrated because of such delays.

• A need for a better way to build software in an additionally dynamic and timely manner without the process and documentation overhead of
waterfall and other popular software engineering techniques at that time.

• Hence AGILE approach of software development was born.

4
BENEFITS OF AGILE APPROACH

• Firstly, it helped users to get the business benefits of the new software much faster.

• Secondly, it enabled the software team to get rapid feedback on the software’s scope and direction.

• Rapid feedback and willingness to change turned out to be the key features of the agile movement.

5
PROBLEMS FACED

• We cannot expect to know all the requirements in the most precise manner until we get going through the various stages of project.

• Requirements may keep changing as we go through various stages of development of the software solution.

• Hence a hard-coded approach wherein we know all the requirements and details of the project before initiating the project is impractical in
most cases.

6
WHAT DOES AGILE MEAN?

• The conventional dictionary meaning of AGILE is quick moving or being nimble footed(fast reflexes)

• A process is required for creating changes and responding to changes

7
WHAT ARE THE VARIOUS AGILE SYSTEMS
BEING FOLLOWED IN THE WORLD?

• In the United States:

• Extreme Programming, Crystal Programming, Lean Development, Scrum, Adaptive Software

• In Europe:

• Dynamic Systems Development Method

• In Australia:

• Feature Driven Development

8
SCRUM VS. AGILE

Scrum Agile

Philosophy yes

Methodology yes

Adds process yes

Transparency yes yes

Deliver software easily and open yes yes

Iterative yes yes

Accommodates change yes yes

Continuous improvement yes yes

9
SCRUM VS. KANBAN

Scrum Kanban

Specific Roles yes

Timeboxed iterations yes

Accommodates change yes

Estimation yes

Empirical yes yes

Lean and agile yes yes

Limits WIP yes yes

Work can be done simultaneously yes yes

Board is continuously used yes

Team must be cross functional yes

Pull scheduling yes yes

Transparency yes yes

Deliver software early and often yes yes

10
WATERFALL VS. AGILE

Waterfall Agile

Sequential yes

Flexible yes

Accommodates change yes

Defined requirements yes

Deliver quality products yes yes

Continually evolving yes

Rigid process yes

11
KANBAN VS. AGILE
Kanban Agile

Continuous flow yes

Iterations yes

Visualization yes

Cross functional team yes

Equally beneficial for all industries yes

Philosophy yes

Continuous improvement yes yes

Transparency yes yes

Don’t require upfront planning yes yes

Faster delivery yes yes

Break projects into smaller chunks yes yes 12


BENEFITS OF AGILE APPROACH

• Working Codes tell the developers and sponsors what they have in front of them rather than telling them what they will have at the end of
the project.

• Using people effectively achieves cost savings, maneuverability, portability and speed

• People can have face-to-face interactions and communicate their valuable ideas regarding the project…

13
AGILE VS. PREVIOUS MODELS

Additional Emphasis… Over…

Individuals and Interactions Processes and tools

Working Software Comprehensive Documentation

Customer Collaboration Contract Negotiation/Dictation

Responding to changes Following a plan

14
CONTINUOUS INTEGRATION &
CONTINUOUS DEVELOPMENT

• Continuous integration and continuous development are integral aspects of AGILE software development methodology which is a much
better alternative to traditional software management practices.

• Continuous integration is an agile software process where developers are required to integrate code into main repository at various times of
the day.

• Benefits:

• Cost of integration is reduced and simultaneous updates are enabled.

• Unlike traditional cycle where developers need to develop the components separately in isolation and then reintegrate the components, CI
enables frequent integration during development.

• Objectives of continuous integration:

• Reduce the cost of integration

• Discover conflicts and bugs early and fix them

• Fast-tracking the development process

• Continuous integration requires high level of automation since continuous integration is not practical with manual integration.

• The automation includes automated build and robust testing.

15
CONTINUOUS INTEGRATION &
CONTINUOUS DEVELOPMENT
• Key concepts:

• A. Iterations:

• One of the key concepts of CI is to encourage smaller updates. Developers are required to break complex work into micro work and commit them as early
as possible.

• Small changes are faster to develop and easier to integrate.

• When minor updates are integrated it also reduces the possibility of errors which will reduce the cost of integration. Even when integration problems
arise, they are diagnosed early and fixed on a daily basis.

• B. Trunk based development:

• The idea behind Trunk-based development is to make sure that the development is always in the main branch or integrated back to main branch in frequent
intervals.

• In some cases, smaller branches are allowed provided they are small changes and integrated back to the main branch.

• Except main branch all other permissible branches are short lived. The main objective is to avoid larger changes which might result in error.

• For the purpose of release, a dedicated release of branches is allowed where no development takes place.

• C. Fast track build and test:

• Each of the changes is handled by an automated build and test suites to ensure the highest quality is maintained throughout the project.

• Automation and streamlining of entire process is important since each and every minor change has to go through build and testing.

• Increases in both build time and testing time should be considered with serious attention.

• Various tests can be run simultaneously to minimize testing time.

• Try to focus relatively more on unit tests and integration tests for quality as they are faster to implement rather than acceptance testing. 16
CONTINUOUS INTEGRATION &
CONTINUOUS DEVELOPMENT

• D. Consistent deployment:

• As each change undergoes the same pipeline of tasks like integration, build, testing etc. It is crucial to maintain consistency throughout the
development.

• There should be no change in the sequence of activities, the code should always be built first and there should not be changes at any intervals
after integration.

• Automation of building and testing should make use of the same tools and procedures for deploying all the changes.

17
REFERENCES

• www.wikipedia.com
• https://www.agilealliance.org/agile101/
• http://www.agile-process.org/
• http://agilemethodology.org/
• https://agilemanifesto.org/
• https://www.smartsheet.com/agile-vs-scrum-vs-waterfall-vs-kanban
• https://chunksofco.de/front-end-vs-back-end-vs-client-side-vs-server-side-
7a04b3ec8764

18

You might also like