Project
management
frameworks
vicente.bolea@gmail.com
Motivation
➢ Organizing a project is often a mess.
➢ Fail to deliver features by the deadline.
➢ Hard to estimate deadlines.
➢ Reduce your stress.
My inspiration
Index
● Waterfall
● Lean software development
● Extreme Programming
● SCRUM
● Kanban
● DevOps
Normal approach
(Waterfall model)
● First, find out the
requirements of your
software
● Second, design your
classes structure.
● Third, Implement the
software
● Fourth, test if your code
works well.
● Fifth, deliver your code
[and maintain it]
Wrong!
Why does it fails?
1. Normally requirements changes (or you got it wrong at
first), thus you will have to:
a. We need to modify the design of our project.
b. Then, modify the code.
c. Then, change the tests.
d. Then, release an update or re-submit your project.
2. 21st century project management is not like that!
Solution 1
● Cyclical waterfall model (Lean framework).
● Have a set of iterations
● The first iterations does not have to be perfect.
Just deliver some of the features.
● Then, repeat the process to perfectionate your
software.
● Remove ‘waste’ whenever is possible.
Solution 2
(speedup lean)
● Extreme programming
(XP)
● Unit tests
● Pair programming
● Refactor
● User stories vs. tasks
● Meetings!
Like this:
Solution 3
SCRUM
(XP framework)
● Add an strict timebox for
iterations
● Retrospective, sprint and
release meetings
● Scrum master
● Product owner
● Backlog for user stories
Maybe SCRUM is too
complicated for my
small project
Continuous
Integration
➢ Whenever we push to master in github,
run tests to check the integrity of the
code.
➢ If tests success, then deploy our project or
create release.
➢ This happens automatically, thus no need
to have a QA team.
➢ DevOps is in charge of maintaining this
infrastructure.
Lightweight
Solution
(Kanban)
➢ Remove sprints.
➢ Make sure one developer is doing one thing at any
time.
➢ Work in Progress (WIP).
➢ Incremental improvement.
➢ Highly dependent on continuous integration (CI).
➢ Suitable in highly automatized development
platforms.
DevOps
➢ Automatize!
➢ Infrastructure-as-code (Puppet, Salt)
➢ Continuous integration wizard
➢ Create release packets.
➢ Manage VCS (git and github)
➢ Monitor and test the application
Question?

Project management frameworks for software developing

  • 1.
  • 2.
    Motivation ➢ Organizing aproject is often a mess. ➢ Fail to deliver features by the deadline. ➢ Hard to estimate deadlines. ➢ Reduce your stress.
  • 3.
  • 4.
    Index ● Waterfall ● Leansoftware development ● Extreme Programming ● SCRUM ● Kanban ● DevOps
  • 5.
    Normal approach (Waterfall model) ●First, find out the requirements of your software ● Second, design your classes structure. ● Third, Implement the software ● Fourth, test if your code works well. ● Fifth, deliver your code [and maintain it]
  • 6.
  • 7.
    Why does itfails? 1. Normally requirements changes (or you got it wrong at first), thus you will have to: a. We need to modify the design of our project. b. Then, modify the code. c. Then, change the tests. d. Then, release an update or re-submit your project. 2. 21st century project management is not like that!
  • 8.
    Solution 1 ● Cyclicalwaterfall model (Lean framework). ● Have a set of iterations ● The first iterations does not have to be perfect. Just deliver some of the features. ● Then, repeat the process to perfectionate your software. ● Remove ‘waste’ whenever is possible.
  • 9.
    Solution 2 (speedup lean) ●Extreme programming (XP) ● Unit tests ● Pair programming ● Refactor ● User stories vs. tasks ● Meetings!
  • 10.
  • 11.
    Solution 3 SCRUM (XP framework) ●Add an strict timebox for iterations ● Retrospective, sprint and release meetings ● Scrum master ● Product owner ● Backlog for user stories
  • 12.
    Maybe SCRUM istoo complicated for my small project
  • 13.
    Continuous Integration ➢ Whenever wepush to master in github, run tests to check the integrity of the code. ➢ If tests success, then deploy our project or create release. ➢ This happens automatically, thus no need to have a QA team. ➢ DevOps is in charge of maintaining this infrastructure.
  • 14.
    Lightweight Solution (Kanban) ➢ Remove sprints. ➢Make sure one developer is doing one thing at any time. ➢ Work in Progress (WIP). ➢ Incremental improvement. ➢ Highly dependent on continuous integration (CI). ➢ Suitable in highly automatized development platforms.
  • 15.
    DevOps ➢ Automatize! ➢ Infrastructure-as-code(Puppet, Salt) ➢ Continuous integration wizard ➢ Create release packets. ➢ Manage VCS (git and github) ➢ Monitor and test the application
  • 16.