Presentation is loading. Please wait.

Presentation is loading. Please wait.

Agile Development – a new way of software development?

Similar presentations


Presentation on theme: "Agile Development – a new way of software development?"— Presentation transcript:

1 Agile Development – a new way of software development?
By Iustina Achim

2 What this presentation is about
Classical models in software development What is an Agile model Being Agile in software development How to apply Agile model in real projects?

3 Classics in software development:
Waterfall model Iterative development model

4 My favourite joke.. 1. what customer explained:
2. what project leader understood: 3. how the architect designed it:

5 My favourite joke.. 4. what the programmer wrote:
5. how it was documented: 6. what operations installed:

6 My favourite joke.. 7. how sales described it:
8. how the customer was billed: 9. what the customer really wanted!!!!

7 What counts? Budget Features Time

8 Being Agile initial requirements modeling (days) design storming
(minutes) test-driven implementation (hours) feature delivering (weekly)

9 Agile development model
Example of one iteration Agile development model test-driven implementation (hours) design storming (minutes) feature delivering (weekly) initial requirements modeling (days) new user stories + acceptance tests initial requirements modeling backlog iteration test-driven implementation (hours) design storming (minutes) feature delivering (weekly) initial requirements modeling (days) new user stories +acceptance tests Next Iteration planning prioritized user stories make acceptance tests working new functionality unfinished tasks test-driven implementation feature release

10 Example of one iteration
new user stories + acceptance tests initial requirements modeling backlog new user stories +acceptance tests Next Iteration planning prioritized user stories make acceptance tests working new functionality unfinished tasks test-driven implementation feature release 2 weeks

11 Example of one day in an iteration
refactor integrate pair-up + quick design session stand-up meeting test go home code 17:00 9:00

12 Agile development model
iteration initial requirements modeling (days) design storming (minutes) feature delivering (weekly) test-driven implementation (hours) Agile development is a collection of practices based on several values and proven software engineering principles

13 Values Communication Simplicity Feedback Courage Humility
developer<->customer and developer<->developer Keep the design as simple as possible Communicate your ideas in the simplest way (diagrams,..) and act on the quick feedback you gain You need to make important decisions and be able to change direction by either discarding or re-factoring your work The best developers know that they don't know everything fellow developers and customers also have their own areas of expertise and add value to the project. 

14 Principles Assume Simplicity Embrace Change
Enabling the Next Effort is Your Secondary Goal Incremental Change Maximize Stakeholder ROI the simplest solution is the best solution Requirements and our understanding of them evolves over time. To enable it you will not only want to develop quality software but also create just enough documentation and supporting materials Not all at once but instead evolve the design over time Stakeholders deserve to invest their resources the best way possible

15 How to apply Agile model in real projects?
Webcam project Assets: team: 2 (initially)  5(eventually) [Niels, Prashant, Jill, Michiel, Joseph] source code from NXP - documentation domain: DriverDevelopment + COM, 64bit, Vista hard deadline How to start?? How to measure progress?? How to assure the deadline?

16 How to apply Agile model in real projects?
Webcam project What were the bad signs : initial investigations on the domain are not conducted setting up and do a first test of existent functionality – not easy poor existent design in the code from NXP no feedback/support from NXP technical people redesigning the system completely seemed implying a lot of work adding some small new functionality -> difficult to test. (component based) What were the good signs : requirements crystal clear... source code available ( big part of it)

17 How to apply Agile model in real projects?
Webcam project How it went : no spikes  difficult to estimate upfront (re)design clear task definition for each team member  difficult to interact. Each member owned one part, nobody owned the whole! testing using different versions of the code, component-wise, was not done . Unreliable test results. Not documenting tests. no feedback from NXP!! Frustrating to plan the work in time

18 How to apply Agile model in real projects?
Common Practices that could have helped test first, then code no upfront design, do design storming everyday for few minutes with whole team have as many investigations as needed, before committing to a feature delivery rotate team members on different tasks, pair, spread knowledge test code refactor

19 How to apply Agile model in real projects?
Test Driven Development test code refactor test first, then code !!!

20 How to apply Agile model in real projects?
Pair Programming rotate team members on different tasks, pair, spread knowledge

21 How to apply Agile model in real projects?
Continuous build environment Works on top of your repository Exposes compile errors Saves time compiling multiple branches Improves collaboration with others, “automated TRUST”

22 How to apply Agile model in real projects?
Automated testing Works on top of continuous build environment Validates contracts between modules Tests integrity of module after code changes Improves collaboration with others, “automated TRUST”

23 Questions ?

24


Download ppt "Agile Development – a new way of software development?"

Similar presentations


Ads by Google