Upload
stefano-paluello
View
2.091
Download
0
Embed Size (px)
Citation preview
Teamwork & Agile MethodologiesStefano Paluello – PaSteSoft (www.pastesoft.com)
In the 90s more than 75% of the IT projects was delayed, was MORE expensive than expected or the project failed (was closed before an end)
Why do we need Agile?
In the 90s more than 75% of the IT projects was delayed, was MORE expensive than expected or the project failed (was closed before an end)
A part of the (few) released in-time projects was poorly developed (last minute check-in), tested bad, in few words “bad quality”
Why do we need Agile?
In the 90s more than 75% of the IT projects was delayed, was MORE expensive than expected or the project failed (was closed before an end)
A part of the (few) released in-time projects was poorly developed (last minute check-in), tested bad, in few words “bad quality”
Why? What was wrong with those projects?
Why do we need Agile?
Typical scenario…
The “Waterfall” model:
Before Agile…
Cyclical, spiral, model (eg.:MSF)
First improvement
Iterative and incremental development (eg.: RUP)
Another step closer…
Then: SCRUM!
What is Scrum?
Definition: Scrum is a “process skeleton”, which contains set of practices and predefined roles (Wikipedia)
What is Scrum?
Definition: Scrum is a “process skeleton”, which contains set of practices and predefined roles (Wikipedia)
Scrum is based on Sprint, a short time (2/4 weeks) focused effort toward fixed goals (listed in the Sprint Backlog)
What is Scrum?
Definition: Scrum is a “process skeleton”, which contains set of practices and predefined roles (Wikipedia)
Scrum is based on Sprint, a short time (2/4 weeks) focused effort toward fixed goals (listed in the Sprint Backlog)
All the Sprint Backlog together compound the Product Backlog, the list of all the requirements or changes for the next product
What is Scrum?
On a Scrum team there are two different kind of “Role”: the “chicken” and the “pig”.
Committed or involved?
On a Scrum team there are two different kind of “Role”: the “chicken” and the “pig”. The “pigs” are actually committed to
build the software or to accomplish the tasks
All everyone else are the “chicken”, involved or simply interested in the project (they can provide needs, desires, ideas, feedback and so on…)
Committed or involved?
The “pig” roles are the most important, the ones that actually perform the work. Scrum Master is a
coach/fixer/gatekeeper of the team, whose primary job is to facilitate the delivery of the Sprint. The SM is not the leader but acts as a shield or a buffer between the team and all the external influences
Pig roles
The “pig” roles are the most important, the ones that actually perform the work. Scrum Master is a coach/fixer/gatekeeper of the
team, whose primary job is to facilitate the delivery of the Sprint. The SM is not the leader but acts as a shield or a buffer between the team and all the external influences
Scrum Team perform the actual work of design, develop and test. Normally consist on 5-15 people. The team member decide how the work is arranged and how assignments are distributed. There are no set project roles (this not prevent to be an expert)
Pig roles
Product Owner is often a customer but also an internal person as a Project Manager. The main task of the PO is to manage the Product Backlog that it will be a public document/to-do list, so everyone is aware of what to except in future releases. The PO also ensures that the Scrum Team is doing “the right thing” from a business perspective. This role requires knowledge about engineering, marketing and business processes
Pig roles (2)
People not part of the process but interested on it. Stakeholders Managers Other team players Guests
Chicken roles
Make a Backlog The Product Owner compiles all the requests
and specifications. A prioritized list is made and ordered according to the customer/market’s requests and the foremost items will compose the Sprint Backlog
Sprint Phase It starts with the PO and the Scrum Team
creating the Sprint Backlog prioritizing and setting the right time for every item. All the phase last from 2 to 4 weeks
The process
Daily Scrum A very short (max. 15 minutes) daily meeting
between the Scrum Master and the Scrum Team. Every partecipants should answer three questions: What have you done since last meeting? What will do between this and the next meeting? Is there anything blocking or slowing down your job?Anyone can attend and listen to this meeting, but only
the “pig roles” may speak.A good way to handle the meeting could be in a shared
area in the office with all the people standing up (this is my favorite part )
The process (2)
Demonstration (Review meeting, max 4 hours) The functioning software is showed up to
Stakeholders, Product Owner and other teams The not completed/working software is analyzed
Evaluation (Retrospective meeting, max 3 h.) All the team reflects on the past Sprint, making a
continuous process improvement Two questions have to be answered:
What went well during the sprint? What could be improved in the next sprint (or went
bad in last)?
The process (3)
OK, Scrum is agile but is still full of meetings! Daily meetings:
Daily Scrum It’s timeboxed (15min) and starts always at the same
time! All people are welcome
Scrum of Scrum usually after the daily scrum One person from each team can attend (usually the
Scrum Master ) Useful specially with big projects or to allow clusters
of team to integrate their work
Meetings
Other meetings: Sprint Planning Meeting
Select what work is to be done and details the Sprint Backlog with the entire team
Sprint Review Meeting Review the work deployed, analyzing the not-
working and presenting the working one It’s timeboxed (4 hour)
Sprint Retrospective All team reflect on the past sprint, making
continuous process improvement It’s timeboxed (3 hour)
Meetings (2)
We’re still Agile, but we need some documents too… Sprint burn down chart
Updated by the team daily progress for a sprint
Product Backlog A prioritized list of high level requirements
Sprint Backlog A prioritized and detailed list of tasks to be
completed during the Sprint
Artifacts
Scrum is a very powerful method focused on a good team working, on improve interaction communication and collaboration and that aims to reduce wasted and waiting time to increase productivity and the ability to adapt to changes…… Wow, nothing else?
So.. Is it all? After this all our projects will be in time and good? I hope so, but…
The end?
Scrum is a method for project management and is a part, important but still a part, of the Agile “world”.
Scrum is good for a lot of reasons, but it doesn’t take care about “how to” make the things, it ignores the “engineering” part!
Ok, so Scrum is crappy?!? No, wait… Scrum is quite good, but with
some other Agile friends could be really good!
What Scrum is and it’s not..
Adding some technical practices to a Scrum process could really help the team to achieve the best result with the Agile methodologies.
Some of the most famous, used and useful practices are: eXtreme Programming (XP) Test Driven Development (TDD) Continuous Integration
Scrum and its friends
It’s a method based on twelve practices, focused on how to work.
The most important practices are: pair programming, two people share the
same computer, where the less skilled one will work with the “senior one” standing on his shoulders
Test case production, that lean on the TDD principles
eXtreme Programming (XP)
Red, Green, Refactor principles: Write a test (Red, the test will fail cause
there isn’t any code to test yet) Write the code to pass the test (green) Insert your code into your application and
architecture (Refactor, let your code adhere to your guidance and program structure)
Test Driven Development
Maintain a code repository Automate the build Add automated tests (build self-testing) Everyone commits every day Every commit should be built
Keep the build fast (and the automated test too) Deploy and test in a clone of the production
environment Everyone can see the result of the latest build Automate deployment
Continuous Integration