Agile Software Development
Not being too attached to your initial idea of what the project will look like and to be ready for change and to refactor.
Agile software engineering combines a philosophy and a set of development guidelines.
To be agile you need to put the agile values and principles into practice.
Assistant Operations Data Management Officer at UNHCR, Software Engineer at Freelancer
Agile Software Development
Not being too attached to your initial idea of what the project will look like and to be ready for change and to refactor.
Agile software engineering combines a philosophy and a set of development guidelines.
To be agile you need to put the agile values and principles into practice.
1.
Software Development
with Agile Methodologies
E L M O Z A M I L E L A M I R
C O N T A C T @ M Z T E C H . I N F O
@ E L M O Z A M I L
H T T P S : / / W W W . L I N K E D I N . C O M / I N / E L M O Z A M I L - E L A M I R - A B 5 5 3 1 5 0
1/10/2016 WWW.MZTECH.INFO JAN. 2016 1
2.
About
Software engineer with experience for more than 5 years.
MSc holder in software engineering.
MCP, MCTS, MCITP, MCSA, MCSE, MCSD, ITIL certified and more.
Blogger, contributor in different online forums.
Author of Cloud Software Development Life Cycle (Cloud SDLC) book.
Co-author of Concurrency control in distributed database.
Interested in software engineering and database.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 2
3.
Outline
Introduction
Rapid Business Change
Coping with Change
Software & Software Engineering
Software Engineering Methodologies
Agile Development
Plan-Driven Vs Value-Driven
Agile Software Development in Business
Database Agility
Mobile Game Development
Agile Developer Skills
Tools
What’s Next
Case Study
1/10/2016 WWW.MZTECH.INFO JAN. 2016 3
4.
Introduction
Software Development has become one of the world’s most important technologies.
Developers produce intangible ideas not a physical product so our methods all had a primary
focus on managing software requirement.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 4
5.
Rapid Business Change
In a modern economy, market conditions change rapidly.
Governmental policies and procedures
BBC News interview (Jan 19th, 2012) with Yale Professor Richard Foster predicts that (by 2020,
more than three-quarters of the S&P 500 will be companies that we have not heard of yet”.
Nokia*.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 5
6.
Coping with Change
Rapid development and delivery
In a fast-moving business environment, by the time the software is available for use, the original
reason for its procurement may have changed.
Focus is on quickly bringing product to market.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 6
7.
Software
Software evolve over time.
Almost everyone in the industry uses software that build and support by software engineers,
either use it directly or indirectly, so we all affected by it.
It is important because it affects nearly every aspect of our lives and has become necessary in
our commerce, our culture, and our everyday activities.
Software is instructions (computer programs) that when executed provide desired features,
functions, and performance; data structures that enable the programs to adequately manipulate
information, and descriptive information in both hard copy and virtual forms that describes the
operation and use of the programs[1]
1/10/2016 WWW.MZTECH.INFO JAN. 2016 7
8.
Software Engineering
Software engineering enables us to build complex systems in a timely manner with high quality
and acceptable cost.
Computer software continues to be the single most important technology on the world stage.
Software engineering is (1) the application of a systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of software; that is the application of
engineering to software. (2) The study of approaches as in (1). [IEEE definition]
1/10/2016 WWW.MZTECH.INFO JAN. 2016 8
10.
SE Methodologies Cont…
Adaptive (Agile)
◦ SCRUM.
◦ XP eXtreme Programming.
◦ FDD: Feature-Driven Development.
◦ Lean.
◦ Crystal Methods.
◦ … and manay.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 10
11.
Agile Development
Not being too attached to your initial idea of what the project will look like and to be ready for
change and to refactor.
Agile software engineering combines a philosophy and a set of development guidelines.
To be agile you need to put the agile values and principles into practice.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 11
12.
Manifesto for Agile Software
Development
Written in 2001
Consider it as guide not a rule.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
1/10/2016 WWW.MZTECH.INFO JAN. 2016 12
14.
Principles
1. Our highest priority is to satisfy the customer through early and contiguous delivery of
valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change
for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 14
15.
Principles
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity – the art of maximizing the amount of work not done – is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behavior accordingly.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 15
17.
Plan-Driven Vs Value-Driven
Plan-Driven (Traditional) Value-Driven (Agile)
Requirements won’t change Welcome changes
There will be no obstacles There will be obstacles
The business can wait for several months. Quick releases
1/10/2016 WWW.MZTECH.INFO JAN. 2016 17
19.
Example
1/10/2016 WWW.MZTECH.INFO JAN. 2016 19
20.
Agile Development
Requirements
◦ A top level feature list is maintained.
◦ Usecases forms the basis for the development.
Design
◦ Design is small iterations, but have a complete overview of system.
◦ Refactor the design
Coding
◦ Clean Code.
◦ Source Control.
◦ Code Reviews.
◦ Refactoring.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 21
21.
Agile Development
Unit Tests
◦ Every core function has a Unit test written.
◦ Every module has a test suite that has number of test cases.
◦ The entire system put together also has a system test suite.
◦ Test suite is run daily and feedback is given to respective users.
◦ Testing is not a separate its part of development.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 22
22.
Scrum
Can be described as framework of feedback loops.
Has five values:
◦ Focus: Focus only on a few things at a time.
◦ Courage: Feel supported and have more resources.
◦ Openness: Work together, express how we are doing.
◦ Commitment: Committed to success.
◦ Respect: Respect each other, and support each other.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 23
23.
eXtreme Programming
Focused on customer interaction and involvement.
Has five values:
◦ Simplicity: We will do what is needed and asked for, but no more.
◦ Communication: Everyone is part of the team and we communicate face to face daily.
◦ Feedback: We will take every iteration commitment seriously by delivering working software.
◦ Courage: We will tell the truth about progress and estimates.
◦ Respect: Everyone gives and feels the respect they deserve as a valued team member.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 24
25.
Agile Software Development in Business
For some types of software, such as safety-critical control system, where a complete analysis of
the system is essential, a plan-driven approach is the right one.
Apply agile when it is the best solution, don’t force it.
People hesitate from any change.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 26
26.
Advantages
Agile Optimizes ROI through Incremental Value Delivery
Customer satisfaction by rapid, continuous delivery.
Face-to-Face communication.
Close, daily cooperation between business people and developers.
Even late changes in requirement are welcomed.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 27
27.
disadvantages
It is difficult to assess the effort required at the beginning of the software development life
cycle.
There is lack of emphasis on necessary designing and documentation.
The project can easily get taken off track if the customer representative is not clear.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 28
28.
When should you use Agile?
Client be able to change the requirement.
Clear picture of final product isn’t clear.
When you have skilled developers who are adaptable and able to think independently.
When product is intended for rapidly changing industry.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 29
29.
Database Agility
Model Agility: ease and speed of changing data models.
Operational agility: ease and speed of changing operational aspects.
Programming agility: ease and speed of application development.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 30
31.
Mobile Game Development
Mobile app growing very fast.
Analyst firm Gartners in 2012 predict that by 2015, mobile app projects for smartphones and
tablets will outnumber those for PCs by 4:1 ratio.
As mobile technology and platform are changing very quickly we need to be more agile.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 32
32.
Agile Developer Skills
For agile team:
◦ Competence.
◦ Common focus.
◦ Collaboration.
◦ Decision-making ability
◦ Fuzzy problem-solving ability.
◦ Mutual trust and respect.
◦ Self-organization.
You are one of the team
1/10/2016 WWW.MZTECH.INFO JAN. 2016 33
34.
Tips
Learn from other’s experiences, but for each project practices may differ.
Each project is a unique.
Agile is not rule so make it agile.
It is not necessary to do Scrum meetings everyday and in the morning.
1/10/2016 WWW.MZTECH.INFO JAN. 2016 35
35.
What’s next
Traditional Methodologies.
Agile Methodologies.
?????????
1/10/2016 WWW.MZTECH.INFO JAN. 2016 36
Coding Example: Sorting bubble sort vs quick sort Quick sort run time is lower than bubble sort Bubble Sort O(n^2) Quick Sort O(n log n)
Axosoft OnTime Scrum helps development teams manage backlog, releases, and sprints. This HTML5-based offering features burndown charts and a management dashboard, and it tracks time spent coding features and fixing bugs. It is part of Axosoft's OnTime platform, which includes other useful collaborative tools, such as a wiki and bug tracker.
LeanKit LeanKit uses a cloud-based whiteboard metaphor for mapping out organization processes. Cards represent work items, and status updates are provided. Teams that use LeanKit can see workload distribution and export historical data.
Rally Platform for Agile Lifecycle Mangement This cloud-based agile lifecycle management platform scales to an unlimited number of teams and features custom pages and dashboards to automate various development processes.
Starting developers’ mornings with low energy is not best for productivity.
You can make agile agile by making it fit your organization.
It appears that you have an ad-blocker running. By whitelisting SlideShare on your ad-blocker, you are supporting our community of content creators.
Hate ads?
We've updated our privacy policy.
We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data.
You can read the details below. By accepting, you agree to the updated privacy policy.