This presentation gives an overview to project management in software products, drills down to Scrum, gives an live demo of Jira and motivates the audience to start using source control systems.
3. What is a Product?
• A (mainly) software program that satisfies a
set of requirements, operates in an
environment, and is offered for use (paid or
free)
• If the product is not shipped, it can be
categorized as a service.
4. What is a Project?
“a temporary endeavor undertaken to create a
unique product, service or result.”
• Limited Duration
• Limited Resources
• Limited Cost
Take a look at PMBOK
5. Who is a Stakeholder?
• Anyone who could impact or be impacted by the
project
– decisions
– outcomes
– activities
• For example
– Customers
– Users
– Developers
– Marketers
– Regulatory entities
6. How to Run a Project?
• Use Project Management
– Methods
– Tools
– Art
• To deliver quality product under constraints
– Cost (resources)
– Time
– Product scope
8. Agile Methods
• Agile Unified Process
• Dynamic Systems Development Method
• Essential Unified Process
• Extreme Programming
• Feature Driven Development
• Scrum
11. Product Backlog Item
• A package of “what” will be built.
– User story, use-case, user scenario, feature, etc.
– Requested by stakeholders
– Has/delivers a business value
• Has importance and effort attributes
• The backlog is prioritized by importance
12. Work Estimation
• Complexity:
– Business complexity
– Technical complexity
– Testing complexity
• Effort:
– the capabilities/ skillset of developers
– Architectural (lack of) support
– Technological factors
• Duration:
– Inter-dependency
– Resource availability
13. Work Item Estimation
• By effort needed to realize it
• By complexity of the item
• By virtual points (you decide)
– Sizes: S, M, L, XL
– Powers of 2: 1, 2, 4, 8, 16
– …
15. Planning
• Define Milestones
– Times to deliver functioning product
• Divide the product backlog
– smaller chunks “Sprints”
• Define, schedule, and assign tasks
• Monitor progress
• Take corrective actions if needed
Product
16. Sprint
• Is an iteration
• Works on a subset of the backlog items
• Usually those who deliver the highest values
• Delivers a functioning product
• An increment to the previous one
• The delivery is measurable
• Has a duration
• Usually 2-4 weeks
• Depends upon team, architecture, change frequency, product
stability
• It’s a time box
• Has an explicit and sharp start and end date
• No change is introduced during the sprint
22. CR Planning
• CRs are of high priority
• Assign them to the nearest sprint
• But avoid “Tachycardia”
• Conduct especial “CR sprints”
– To fix issues
– To stabilize product
• To reduce “issue to feature ratio”
• Perform alpha testing
23. Tasks and assignments
• Breakdown items to tasks
– Various disciplines: design, implement, test,
document, …
– Varying granularity: Few hours to one day
• Setting an upper bound is useful
– Force the team to understand and plan
• Setting a lower bound is also useful
– Cost of over-specification and over-planning
• Notice effort Vs. duration
– Task estimation and re-estimation
• According to sprint meeting intervals
• Management and monitoring needs
• Overhead of re-estimation
25. JIRA
• A project and issue mgmt. tool
• SaaS and on premise deployment
• Free and paid plans
• Web and mobile based
• Integrated with other tools
– Collaboration
– Source Control
– Wiki
27. Jira Live
• Show case
– https://javadch.atlassian.net
• Introductory video
– https://youtu.be/8KPoZ5g8NqU
28. So Now?
• Features are described
• Tasks are assigned
• Developers are ready
Start Producing Artifacts
29. Where to put the Artifacts?
• SCM: Software Configuration Management
• VCS: Version control system
– Revision Control System
30. But Why?
• Isolation
– Keep some artifacts private
– Isolate your changes
– Isolate from others’ changes
• Integration
– Receive others’ changes
– Share your changes
• Identification
– Versions
– Releases
• Maintenance
– Archive
– Time travel
• Automation
Convinced?
31. Hmmm!?
• If you have ever:
– Made a change to code and realized it was a
mistake
– Lost code or had a backup that was too old
– Had to maintain multiple versions of a product
– Wanted to see the difference between two
versions of your code
– Wanted to prove that a particular change broke or
fixed a piece of code
32. Hmmm!?
• If you have ever:
– Wanted to review the history of some code
– Wanted to submit a change to someone else's
code
– Wanted to share your code, or let other people
work on your code
– Wanted to see what has been done, where, when,
and by whom
– Wanted to experiment with a new feature without
interfering with working code
33. OK, OK! What tools are there?
• Depends
– Central Vs. Distributed
– Hosted Vs. On Premise
– Vendor Specific Vs. Open
– Integrated Vs. Standalone
– Access Control?
– Price!
• Some Names
– CVS
– SVN
– Git
– TFS
Items are user centered, they are request by users, should offer a value to the users.
Users will interact with the system in term of these use-cases. Each use case should be possible to be completed by a single user in a single session.
Max 10% for planning, some overhead/over planning may be considered
0: velocity (team velocity) the slope of the burndown. Number of points per time unit
1: started at a lower cost that the initial
2: changes have been introduced. Introducing the changes have taken time too
3: Team is trying to meet the deadline, look at the velocity
An abnormally rapid heart rate.
When the heart beats too rapidly, it pumps less efficiently and blood flow to the rest of the body, including the heart itself, is reduced
Sprints create project beat rate, tasks create developer beat rate.
It is a matter of smooth flow or result/value/ etc.
Tasks also reduce uncertainty, make it easier to assign and make use of existing expertise and skillset