Web Project Management


Published on

Published in: Leadership & Management
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Web Project Management

  1. 1. WEB Project Management Dr. Nicola Mezzetti So!ware Architect, Team Leader venerdì 12 febbraio 2010 1
  2. 2. Agenda • The software development process • Project Management • Project Management Tools • Traditional Project Management Methodologies • Agile Project Management – Extreme Project Management – SCRUM venerdì 12 febbraio 2010 2
  3. 3. The Software Development Process venerdì 12 febbraio 2010 3
  4. 4. Planning • The general requirements for the product are collected – Customers typically have an abstract idea of what they want • Incorrect requirements could be produced at this point; the risk is reduced by – Having a solid knowledge of the specific enterprise processes – Frequently demonstrating live code • An analysis of the scope of the development is formalized – The set of requirements the product will meet is clearly stated • Some requirements may be excluded because of cost or of unclear requirements • If the development is outsourced, this document can be a legal document venerdì 12 febbraio 2010 4
  5. 5. Design • Domain analysis is often the first step in designing the product to be delivered – In case the analysts or the developers are not sufficiently knowledgeable in the enterprise processes covered by the product, the first task is to investigate the so-called “domain” of the software • The more knowledgeable they are about the domain already, the less work required • to make the analysts, who will later gather the requirements from the enterprise process experts, speak with them in the domain's own terminology, facilitating a better understanding of what is being said by these experts venerdì 12 febbraio 2010 5
  6. 6. Design: Specification • Specification is the task of precisely describing the software to be written, possibly in a rigorous way – most successful specifications are written to understand and fine-tune applications that were already well-developed – safety-critical software systems are often carefully specified prior to application development • Specifications are most important for external interfaces that must remain stable • A good way to determine whether the specifications are sufficiently precise is to have a third party review the documents making sure that the requirements and Use Cases are logically sound venerdì 12 febbraio 2010 6
  7. 7. Design: Architecture • The architecture of a software system (software architecture) refers to an abstract representation of that system – Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed – The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system venerdì 12 febbraio 2010 7
  8. 8. Implementation, Testing and Documenting • Implementation is the part of the process where software engineers actually program the code for the project • Software testing is an integral and important part of the software development process. – This part of the process ensures that bugs are recognized as early as possible • Documenting the internal design of software for the purpose of future maintenance and enhancement is done throughout development. venerdì 12 febbraio 2010 8
  9. 9. Deployment • Deployment starts after the code is appropriately tested, is approved for release and sold or otherwise distributed into a production environment • Software Training and Support is important – many projects fail because the technicians fail to realize that the value of a product is the one perceived by the customer – users are resistant to software changes, so as a part of the deployment phase, it is very important to have training classes venerdì 12 febbraio 2010 9
  10. 10. Maintenance • Maintenance and enhancements can take far more time than the initial development of the software – Customer reports problems • It is assessed whether tests have been extensive enough to uncover the problems before customer do • If the cost of the maintenance phase exceeds 25% of the prior phases' cost then the overall quality of at least one prior phase is poor • Bug tracking system tools are often deployed at this stage of the process to interface development teams with customer/field teams. venerdì 12 febbraio 2010 10
  11. 11. Project Management venerdì 12 febbraio 2010 11
  12. 12. What is a Project? • The word “project”: – comes from the latin word projectum that actually meant “something that comes before anything else happens” – When the modern languages initially adopted the word, it referred to a plan of something, not to the act of actually carrying this plan out. • Something performed in accordance with a project is known as “object”. – In the 1950s, with the development of project management techniques, its meaning changed in order to cover both projects and objects. • In project management, it means a temporary endeavor undertaken to create a unique product, service or result. venerdì 12 febbraio 2010 12
  13. 13. “You know what you have to do, do it, once, and that's a project.” • A project, by definition, is a temporary activity with – a starting date and a defined end date; – specific goals and conditions; – defined responsibilities; – a budget; – a planning; – multiple parties involved. • A complex venture, unique and having a well defined duration, aiming at pursuing a clear and predefined goal through a continuous process of planning and control of resources venerdì 12 febbraio 2010 13
  14. 14. What is Project Management? • The continuous planning and control of people and resources, temporarily joint in order to achieve a unique goal, meeting requirements of time, budget, quality, and resources • Project Management is the discipline of planning, organizing, and managing resources to bring about the successful completion of specific project goals and objectives venerdì 12 febbraio 2010 14
  15. 15. The three dimensions of a project Each project success is assessed according to three dimensions: • Time: – The total duration of the activities; • Budget: – The total amount of money required for maintaining the whole set of resources that will have a part within the project; • Quality: – The meeting of the customer requirements and the respect of the market standards. The quality can refer both to the quality of the result and to the quality of the whole process of project management. venerdì 12 febbraio 2010 15
  16. 16. The processes of a project • Managing a project requires the management of processes that can be classified as: – Management processes: • The processes regarding the definition and the organization of the project before its beginning and for its whole duration; – Implementation processes: • The processes regarding the design and the implementation of the project object. venerdì 12 febbraio 2010 16
  17. 17. Project Management Life Cycle • Given any project management approach, the project development process will have the same major stages – Initiation – Planning • Risk Analysis – Execution – Control and validation • Maintenance – Closeout and evaluation venerdì 12 febbraio 2010 17
  18. 18. Project Initiation • The initiation stage determines the nature and scope of the project • Describe and develop the business case (problem/opportunity) • Study the feasibility describing each possible solution to the business case • Establish the project charter outlining the purpose of the project, the way it will be structured and implemented • Appoint the project team describing objectives and responsibilities of each role • Set up the project office defining the cooperation and communication model • Perform a phase review assessing whether the team can proceed to the next phase venerdì 12 febbraio 2010 18
  19. 19. Project Charter • The project charter is a cohesive plan encompassing: – Study analyzing the business requirements in measurable goals – Review of the current operations – Conceptual design of the operation of the final product – Contracting requirements, including an assessment of long lead time items – Financial analysis of the costs and benefits including a budget – Stakeholder analysis, including users, and support personnel for the project – Project charter including costs, tasks, deliverables, and schedule venerdì 12 febbraio 2010 19
  20. 20. Planning: SMART Goals • Project goals are the key factors enabling the project to have success • Goals should be SMART – Specific: well defined and clear to anyone having basic project knowledge – Measurable: know if the goal is achievable, how far away completion is, and when it has been achieved – Agreed upon: agreement with the stakeholders what the goals should be – Realistic: Within the availability of resources, knowledge and time – Time based: enough time t achieve the goal, but not too much (that will affect project performance) venerdì 12 febbraio 2010 20
  21. 21. Project Planning (1/2) • The project plan should track down the following issues • Definition of the project goals – A project is successful when the needs of the stakeholders have been met • Definition of the project deliverables – Determine the artifacts the project will produce during its life cycle • Determine the things the project goals require to be delivered • Specify when and how each item must be delivered venerdì 12 febbraio 2010 21
  22. 22. Project Planning (2/2) • Project Schedule – For each planned deliverable, create a list of tasks to be performed – For each task determine the resource who will carry it out and the amount of effort required to complete the task – Workout the effort required for each deliverable and an accurate delivery date – Problem: What if the project has an imposed delivery deadline that is not realistic based on your estimates? • Renegotiate either deadline or resources or the scope of the project with the sponsor • Supporting plans: human resource plan, communications plan, risk management plan venerdì 12 febbraio 2010 22
  23. 23. Planning: Risk Analysis • Risk analysis is a technique to identify and assess factors that may jeopardize the success of a project or achieving a goal. – For instance: “Reorganization may result in key people being reassigned” • Analyzing possible risks is useful for – defining preventive measures to reduce the probability of these factors from occurring – Identifying countermeasures to successfully deal with these constraints when they develop to avert possible negative effects on the project execution • One of the more popular methods to perform a risk analysis in the computer field is called Facilitated Risk Analysis Process (FRAP). venerdì 12 febbraio 2010 23
  24. 24. Planning: what not to do – Not planning at all; – Failing to account for all project activities; – Failure to plan for risk; – Using the same plan for every project; – Allowing a plan to diverge from project reality; – Planning in too much detail too soon; – Planning to catch up later; – Not learning from past planning sins. venerdì 12 febbraio 2010 24
  25. 25. Execution • Executing consists of the processes used to complete the work defined in the project management plan to accomplish the project's requirements – The physical project deliverables are built and presented to the customer – This is usually the longest phase in the project life cycle and it typically consumes the most energy and the most resources • Execution process involves – coordinating people and resources – integrating and performing the activities of the project in accordance with the project management plan venerdì 12 febbraio 2010 25
  26. 26. Monitoring and Controlling • Those processes performed to observe project execution – Measuring the ongoing project activities, the project variables (cost, effort, scope) against the project management plan and the project performance baseline – Identifying corrective actions to address issues and risks properly – Benefits: • Timely identifying potential problems; • Taking corrective actions, when necessary, to control project execution; • Timely identifying variances from the project management plan; • Providing feedback between project phases, to maintain the project into compliance with the project management plan. venerdì 12 febbraio 2010 26
  27. 27. Monitoring and Controlling Steps • Monitoring and Controlling means performing the following tasks – Time Management: recording the time spent by people on a project – Cost Management: reporting costs or expenses of the activities so far – Quality Assessment: measuring and reporting the quality of produced deliverables – Change Management: procedures helping teams to react to changes – Unclear or incorrect requirements are discovered or new requirements are added or a risk occurred in the previous execution – Risk Management: identify risks, evaluate them, take actions to prevent them from occurring and to reduce the impact should them eventuate venerdì 12 febbraio 2010 27
  28. 28. Monitoring and Controlling Steps • Monitoring and Controlling means performing the following tasks – Issue Management: identifying issues and triggering changes accordingly • Lack of funding, insufficient resources or tight deadlines – Procurement Management • Managing relationships with third party suppliers • Managing the ordering, receipt, review and approval of items from suppliers – Acceptance Management: user acceptance testing with the customer – Communication Management: communicating towards stakeholders – Phase Review: assessment of whether the phase objectives have been achieved venerdì 12 febbraio 2010 28
  29. 29. Project Maintenance (1/2) • Project Maintenance is an ongoing process, and it includes: – Continuing support of end users – Correction of errors – Updates of the software over time – Monitoring and Controlling cycle – Auditors should pay attention to how effectively and quickly user problems are resolved • Change in the project scope is a normal and expected part of the construction process. Changes can be, for instance, the result of: – necessary design modifications, contractor-requested changes, or impacts from third parties venerdì 12 febbraio 2010 29
  30. 30. Project Maintenance (2/2) • Beyond executing the change, it normally needs to be documented to show what was actually constructed – The stakeholder usually requires a final record to show any change modifying a any tangible portion of the end product; this record is made on the contract document; – The requirement for providing them is usually a norm in construction contracts; – This is referred to as Change Management. • When changes are introduced to the project, the viability of the project has to be assessed again – It is important not to lose sight of the initial goals of the projects – When the changes accumulate, the forecasted result may not justify the proposed investment venerdì 12 febbraio 2010 30
  31. 31. Project Closure • Closing includes formal acceptance of the project and its ending • Administrative activities include the archiving of the files and documenting lessons learned. • This phase consists of: – Project closure: Finalize all activities across all of the process groups to formally close the project or a project phase – Contract closure: Complete and settle each contract (including the resolution of any open items) and close each contract applicable to the project or project phase venerdì 12 febbraio 2010 31
  32. 32. Project management Tools venerdì 12 febbraio 2010 32
  33. 33. Statement Of Work • SOW is a document that captures and agrees the work activities, deliverables and timeline that a vendor will execute against in performance of work for a customer – Detailed requirements and pricing are usually specified in a Statement Of Work, along with many other terms and conditions • Areas Addressed: – Scope of work – Period of performance – Deliverable schedule – Applicable standards – Acceptance criteria venerdì 12 febbraio 2010 33
  34. 34. Work Breakdown Structure • A complete, tree structured, classification of the project scope – Shows a subdivision of effort required to achieve an objective • starting with the end objective and • recursively subdividing it into manageable components in terms of size, duration, and responsibility (e.g., systems, subsystems, components, tasks, subtasks, and work packages) • Provides a common framework for the natural development of the overall planning and control of a project • Basis for dividing work into definable increments from which the statement of work can be developed and technical, schedule, cost, and labor hour reporting can be established venerdì 12 febbraio 2010 34
  35. 35. WBS design principles • The 100% rule – the WBS includes 100% of the work defined by the project scope and captures all deliverables in terms of the work to be completed, including project management • Mutually exclusive elements – Any two distinct elements of a WBS have not to overlap in scope • Planned outcomes, no planned actions – Definition of the WBS elements in terms of outcomes or results • Is not overly prescriptive of methods and creativity • Guarantees to capture exactly 100% of the project scope venerdì 12 febbraio 2010 35
  36. 36. WBS design principles • Level of detail: When to stop dividing work into smaller elements ? – Heuristics for determining the duration of a group of activities to produce a deliverable • “80 hour” rule: the activities should require at most 80 hours of effort • the activities should require at most a single reporting period • “if it makes sense” rule: apply “common sense” venerdì 12 febbraio 2010 36
  37. 37. WBS design principles • Level of detail: When to stop dividing work into smaller elements ? – A work package at the activity level is a task that: • can be realistically and confidently estimated • makes no sense practically to break down any further • can be completed in accordance with one of the heuristics defined above • produces a deliverable which is measurable • forms a unique package of work which can be outsourced or contracted out venerdì 12 febbraio 2010 37
  38. 38. WBS design principles • WBS coding scheme – It is common for Work Breakdown Structure elements to be numbered sequentially to reveal the hierarchical structure. • For instance 1.3.2 Rear Wheel identifies this item as a Level 3 WBS element, since there are three numbers separated by a decimal point. • Terminal element – the items that are • estimated in terms of resource requirements, budget and duration • linked by dependencies • and scheduled. – A terminal element is sometimes called a work package, although the two terms are not synonymous venerdì 12 febbraio 2010 38
  39. 39. Gantt Diagrams • Is a type of bar chart that illustrates a project schedule • Illustrates the start and finish dates of the terminal elements and summary elements of a project • Can show the dependency relationships between activities • Can show current schedule status using percent-complete shadings and the current time • Recommendations – They do not substitute WBSs, they are only a manner of representing them – They become quite unwieldy for projects with more than about 30 activities – Do not represent the size of a project or the relative size of work elements venerdì 12 febbraio 2010 39
  40. 40. Example: Gantt Diagram venerdì 12 febbraio 2010 40
  41. 41. Traditional Project management methodologies venerdì 12 febbraio 2010 41
  42. 42. Project Management Methodologies • Each project management methodology has its own strengths and weaknesses – Regardless of the approach employed, careful consideration needs to be given to clarify project objectives and the roles and responsibilities of all participants and stakeholders • Project Management Methodologies: – Traditional Approach (Waterfall model) – Critical Chain Project Management – Extreme Project Management – Event Chain Methodology – PRINCE2 venerdì 12 febbraio 2010 42
  43. 43. The Traditional Approach • Assumes that events affecting the project are predictable and activities are well understood • Aims at producing, since after the project initiation, the complete requirement analysis and the detailed project design • Inherits all the phases of the project management life cycle • Not all the projects will visit every stage • Once a phase is complete, it is assumed it will not be revisited • In software development, this approach is often known as the waterfall model (one series of tasks after another in linear sequence) – In software development many organizations have adapted the Rational Unified Process (RUP) to fit this methodology venerdì 12 febbraio 2010 43
  44. 44. Cons of the Traditional Approach • This methodology can work for small tightly-defined projects • For larger projects, of undefined or unknowable scope, it is less suited – the planning made on the initial phase of the project suffers from a high degree of uncertainty – this becomes especially true as software development is often the realization of a new or novel product • requirements are largely unknowable up front and susceptible to change • Statistics say that, employing traditional project management methods, 30% of the lost time and resources are typically consumed by wasteful techniques such as bad multi-tasking, student syndrome, in-box delays, and lack of prioritization venerdì 12 febbraio 2010 44
  45. 45. Critical Chain PM: Rationale • All tasks in the project are subject to some degree of uncertainty • In general, task durations are overestimated – When estimating the duration of a task, the task owner adds a safety margin in order to improve the chance of completing the task on time • In most cases, the task will not require the entire amount of safety margin and should be completed sooner than scheduled • Safety margin is internal to the task; if it is not needed, it is wasted – When it becomes obvious that the safety margin is unnecessary, the task owner will use that time anyway – Any delay in the completion of a task propagate to the successor tasks venerdì 12 febbraio 2010 45
  46. 46. Critical Chain Project Management • Based on statistics and theory of constraints – Every system has a constraint, and system performance can only be improved by enhancing the performance of the constraining resource • It is unlikely that all the critical chain tasks will exceed their 50% likelihood duration estimates • Under the assumption of statistical independence, about half the tasks will exceed the 50% mark, while the other half will be completed at less than 50% • By pooling together the safety margins of the individual tasks, the protection against uncertainty is improved – There is pressure on the resources to complete critical chain tasks as quickly as possible venerdì 12 febbraio 2010 46
  47. 47. CCPM: Planning (1/2) • Starting point: list of tasks along with their duration estimates and dependencies • First step: developing an initial schedule for project tasks – Compatibly with dependencies among tasks and resource availability • Schedule is worked backward from a completion date with each task starting as late as possible; each task is assigned • "best guess“ duration: time to complete the task with 50% likelihood • "safe" duration: task owner estimates (time to complete the task with 90-95% likelihood) – The difference between the two values is called the project buffer and should be considered a separate task venerdì 12 febbraio 2010 47
  48. 48. CCPM: Planning (2/2) • Resources are assigned to each task and the plan is resource leveled using the 50% estimates – The longest sequence of resource-leveled tasks that lead from beginning to end of the project is the critical chain • "buffers" are used to establish dates for monitoring project schedule – The "extra" duration of each task on the critical chain is gathered together in the feeding buffer • The feeding buffer provides the extent of the critical chain's protection against the uncertainty in the feeding noncritical chains • If there is still some slack on the feeding chain, CCPM prescribes that the task be scheduled as late as possible. • Finally, a baseline is established to enable monitoring of the project venerdì 12 febbraio 2010 48
  49. 49. CCPM: Execution • When the plan is complete, the project network is fixed and the buffers size is "locked" • Resources working on critical chain tasks are expected to work continuously on a single task at a time – They do not work on several tasks in parallel or suspend their critical tasks to do other work – Resources are to complete the task assigned as soon as possible, regardless of scheduled dates • If the task is completed ahead of schedule, work on its successor is to begin immediately • If the task is completed past its planned completion date, as shown on the CCPM schedule, this is no reason for immediate concern, as the buffer will absorb the delay venerdì 12 febbraio 2010 49
  50. 50. CCPM: Monitoring • Because individual tasks will vary in duration from the 50% estimate, there is no point in trying to force every task to complete "on time“ • As progress is reported, the CCPM schedule is recalculated, keeping the final due date of the project constant by adjusting buffer sizes • Project control focuses on consumption of the buffer – If the rate of buffer consumption is low, the project is on target – If the rate of consumption is such that there is likely to be little or no buffer at the end of the project, then corrective actions or recovery plans must be developed to recover the loss • When the buffer consumption rate exceeds some critical value, then those alternative plans need to be implemented venerdì 12 febbraio 2010 50
  51. 51. CCPM: Cons (1/2) • Though this method rationale is plausible, this method misses any supporting scientific evidence – task owners overestimate task duration by a certain safety factor – the duration of the actual execution of each task will expand to fill the time allotted • Not all people overestimate by the same amount – how does the project manager determine the safety factor that the task owner presumably built into the duration estimate? • Will they agree to shorten their duration estimates and merge their individual safety factors into the project and feeding buffers? – the knowledge that their estimates will be reduced will encourage task owners to add larger margins venerdì 12 febbraio 2010 51
  52. 52. CCPM: Cons (2/2) • This network structure is applicable to projects that consist of construction, assembly, and integration tasks, which are common in manufacturing environments – many projects begin with a small core of central activities, i.e., design and analysis, which split into parallel tracks that merge at various intermediate review points before producing the various project deliverables. • This leads to more complex network flows where a given task may have both predecessors and successors from several chains; in such cases, it is not clear how much of a feeding buffer should be allotted to each merging task • The more the number of concurrent chains, the more the likelihood that that projects will always be late-relative venerdì 12 febbraio 2010 52
  53. 53. Event Chain Methodology • Event chain methodology – Is an uncertainty modeling and schedule network analysis technique focused on identifying and managing events and event chains that affect project schedules – comes from the notion that regardless of how well project schedules are developed, some events may occur that will alter it • Identifying and managing these events or event chains (when one event causes another event) enables one to perform more accurate analysis – helps to mitigate effect motivational and cognitive biases in estimating and scheduling – simplifies the process of defining risks and uncertainties in project schedules, by improving the ability to provide reality checks and to visualize multiple events venerdì 12 febbraio 2010 53
  54. 54. ECM: Principles (1/2) • Moment of risk and excitation state – Activities are affected by external events transforming them from one state to another – An event’s important property is the moment when it occurs during the course of an activity; this moment can be defined using a statistical distribution • Event Chains – Events can cause other events, creating event chains that can significantly affect the course of the project. For instance: – Requirement changes can cause an activity to be delayed. – To accelerate the activity, the project manager allocates a resource from another activity, which then leads to a missed deadline. – Eventually, this can lead to the failure of the project. venerdì 12 febbraio 2010 54
  55. 55. ECM: Principles (2/2) • Critical events, Critical event chains – The single events, or the event chains, having the most potential to affect the project – By identifying them, negative effects can be mitigated • Analyzing correlations between project parameters (duration, cost) and event chains • Performance tracking with event chains – probability and time of the events can be recomputed based on data obtained by monitoring the project tasks execution • Main issue: forecasting an activity’s duration and cost if an activity is partially completed and certain events happen • Event Chain diagrams – Gantt-Like diagrams showing the relationships between events and tasks venerdì 12 febbraio 2010 55
  56. 56. ECM: Planning • Create a project schedule model using best-case scenario estimates of duration, cost, and other parameters • Define a list of events and event chains with their probabilities and impacts on activities, resources, lags, and calendars – The list of events can be described in the form of a RBS – These events should be identified separately from the schedule model • Quantitative analysis using Monte Carlo simulations – The results are statistical distributions of the main project parameters, as well as similar parameters associated with particular activities • Sensitivity analysis – Reality checks may be used to validate whether the probability of the events are defined properly venerdì 12 febbraio 2010 56
  57. 57. ECM: Monitoring • Repeat the analysis on a regular basis during the course of a project – The probability and impact of risks can be reassessed based on actual project performance measurement – It helps to provide up to date forecasts of project duration, cost, or other parameters venerdì 12 febbraio 2010 57
  58. 58. ECM: Phenomena • Repeated Activities – Sometimes events can cause the start of an activity that has already been completed • Mitigation plan – Mitigation plans are an activity or group of activities (small schedule) that augment the project schedule if a certain event occurs. • Resource Allocation Based on Events – One potential event is the reassignment of a resource from one activity to another, which can occur under certain conditions. • Events can be used to model different situations with resources, e.g. temporary leave, illness, vacations, etc. venerdì 12 febbraio 2010 58
  59. 59. ECM: Cons • Since this project relies on the traditional method planning stage, it suffers the same problems of that method • Additionally, the project manages is responsible of describing with the same level of detail the possible risks that may affect the project • This method works well for project settings with low uncertainty, where the probability that an event will happen during the execution of a given task – For each risk, the manager defines the chance the risk will occur, the risk’s impact (delay, increase cost, trigger other risks, cancel task, etc.), and when will the risk occur during the course of activity venerdì 12 febbraio 2010 59
  60. 60. The Agile Methodologies venerdì 12 febbraio 2010 60
  61. 61. Agile Methodologies Rationale • Traditional PM techniques fail on projects with undefined or unknowable scope – Planning made on the initial phase of the project suffers from a high degree of uncertainty • 30% of projects fail, 49% of project fail to meet all the requirements • Underestimation of the stakeholders efforts, • undefined quality or scope requirements, • underestimation of the risks, • missing to perform important tasks • Poor analysis experience venerdì 12 febbraio 2010 61
  62. 62. Agile Methodologies • The project team and the stakeholders actively work together to understand the domain, identify the needs to be built, and prioritize functionality • Agile methods are used when – Project value is clear – The customers actively participate throughout the project – The customer, designers, and developers are co-located – Incremental feature-driven development is possible • The Agile approach consists of many rapid iterative planning and development cycles, allowing a project team to constantly evaluate the product and obtain immediate feedback from users and stakeholders venerdì 12 febbraio 2010 62
  63. 63. The Agile Manifesto • The Agile Manifesto has been written in 2001 – Individuals and interactions over processes and tools – Working software over comprehensive documentation – Customer collaboration over contract negotiation – Responding to change over following a plan venerdì 12 febbraio 2010 63
  64. 64. Individuals and interactions over processes and tools • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. • Business people and developers must work together daily throughout the project. – Continuous attention to technical excellence and good design enhances agility. – Simplicity--the art of maximizing the amount of work not done--is essential. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. venerdì 12 febbraio 2010 64
  65. 65. Working software over comprehensive documentation • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software • Working software is the primary measure of progress • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale venerdì 12 febbraio 2010 65
  66. 66. Customer collaboration over contract negotiation • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely venerdì 12 febbraio 2010 66
  67. 67. Responding to change over following a plan • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. • The best architectures, requirements, and designs emerge from self-organizing teams. • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. venerdì 12 febbraio 2010 67
  68. 68. Declaration of interdependence • We increase return on investment by making continuous flow of value our focus • We deliver reliable results by engaging customers in frequent interactions and shared ownership • We expect uncertainty and manage for it through iterations, anticipation, and adaptation • We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference • We boost performance through group accountability for results and shared responsibility for team effectiveness • We improve effectiveness and reliability through situationally specific strategies, processes and practices venerdì 12 febbraio 2010 68
  69. 69. On the Declaration of Interdependence • Project team members are part of an interdependent whole and not a group of unconnected individuals • Project teams, customers, and stakeholders are also interdependent • The six form a system of values that provides a modern view of managing projects: – Value – Customers – Uncertainty – Individuals – Teams – context (situationally specific) venerdì 12 febbraio 2010 69
  70. 70. Agile Project Management • Developments conducted collaboratively with a small co-located team • Core teams usually consisting of – Two developers writing code in pairs, for quality control – The customer – An IT architect – A business analyst – A project manager • The work is accomplished through a series of sessions where the team writes code, then tests working modules of the system and repeats the process • There is minimal documentation as the team relies almost exclusively on informal internal communication venerdì 12 febbraio 2010 70
  71. 71. Agile Management Components • Visual Control – “cards on the wall” ensures that team members have the same view on the project • Co-located hi-performance teams – Co-located team members, possibly including the customer, in a work room – Improvement of the quality of communication and coordination • Test-driven development – The test cases are developed first, then the team is backed into the requirement • Test cases are developed at the same time the requirements are defined • If a requirement is not testable, then it is not yet fully developed venerdì 12 febbraio 2010 71
  72. 72. Agile Management • Adaptive control Components – Team dynamically adapted to changes and to lessons learned from previous iterations – The project manager needs to be seen as a leader, not as a taskmaster • facilitating the team in establishing working relationships, setting ground rules, and fostering collaboration • Collaborative development: all the team members collaborate to delivery the results – The project manager completes the initial planning – The business analyst defines and prioritizes the solution features with the customer and the technology representatives – Then, the agile project team collaborate on the design, development, testing and reworking of each incremental build venerdì 12 febbraio 2010 72
  73. 73. Agile Management • Components Feature driven development – The team focuses on one and only one feature at a time – The business analyst and the project manager ensure that the next feature is the next priority, based on business value and risk • Leadership and collaboration rather than command and control – The principles of APM facilitate leadership more than traditional management • Move cost to revenue – Features are prioritized based on value, such as increased revenue or market share • Lessons learned – After each cycle, the team holds more knowledge, to be employed in understanding what they can do better on the next iteration venerdì 12 febbraio 2010 73
  74. 74. Extreme project management venerdì 12 febbraio 2010 74
  75. 75. Extreme Projects • “An extreme project is a complex, high speed, self-correcting venture in search of a desirable result under conditions of high uncertainty, high change and high stress.” (Doug DeCarlo) – High uncertainty – Short deadlines – Customer driven – Open, high stressed, environments – Frequent changes – Stability is an exception venerdì 12 febbraio 2010 75
  76. 76. Extreme Project Management (1/2) • Based on a successful software delivery process called Extreme Programming – developed to solve problems of other sw development processes – Team-oriented and customer-focused • Teams range in size from small to medium; customer as integral part of the team • Help the team in determining and delivering exactly what the customer wants, even if the requirements change over time • XP values: simplicity, communication, feedback, and courage • XPM practices – planning practices: the Release Plan and the Weekly Plan – quality control practices are used daily venerdì 12 febbraio 2010 76
  77. 77. Extreme Project Management (2/2) • Properties of Extreme Project Management – The main focus is on the human side of project management – The project manager handles business aspects leaving the other issues to technical managers – It is based on strongly motivated and responsible teams – Lightweight leadership – Simplified practices from TPM venerdì 12 febbraio 2010 77
  78. 78. XPM: Essentials • 4 Accelerators – keeping the project moving and the team committed and creative • 10 Shared values – fostering a strongly held belief among project stakeholders that by working together they can succeed, even in the face of volatility and adversity • 4 Business questions – a reminder that the project is a business venture, that the goal is to deliver value each step of the way, as well as after the final project output has been produced • 5 Critical success factors – How to employ accelerators, shared values and business questions in the project – skills, methods and practices that are essential to lead, plan, manage and track the project from start to finish and to assimilate change along the way venerdì 12 febbraio 2010 78
  79. 79. XPM: Accelerators • “Change is your friend” – not only responding to change, but also proactively creating change • “People want to make a difference” – people have to see their project not so much as a project but as a cause • “People support what they create” – I may feel good about being part of an important project, but if it is a risky venture, I will want to have a voice in shaping the project • “Simplicity wins” – “Less is more”: the smaller the set of aspects to be managed, the simpler the management venerdì 12 febbraio 2010 79
  80. 80. XPM: Shared Values (1/2) • Client Collaboration: interaction and feedback with the customer throughout the venture • People First: eliminating barriers so that people can do quality work • Clarity of Purpose: understanding not only the goals of the project, but the bigger picture as well • Honest Communication: acting with integrity and speaking the truth about the good, the bad and the ugly without fear of reprisal • Results Orientation: focusing on the completion of deliverables rather than on tracking tasks venerdì 12 febbraio 2010 80
  81. 81. XPM: Shared Values (2/2) • Fast Failures: finding the quickest path to failure by tackling the most difficult, risky or important work very early on • Early Value: giving customers something they can put to use as soon as possible • Visibility: keeping everything out in the open for all to see: plans, progress, work products, issues, who's accountable for what • Quality of Life: ensuring that the project strikes a satisfying balance of work life and personal life • Courage: having the fear and doing it anyway; doing it scared because it's the right thing to do venerdì 12 febbraio 2010 81
  82. 82. XPM: Business Questions • Continually updating the business case to reflect the latest expectations and projections – Who needs what and why? – What will it take to do it? – Can we get what it takes? – Is it worth it? venerdì 12 febbraio 2010 82
  83. 83. XPM: Critical Success Factors (1/2) • Self-Mastery: the on-going practice of leading oneself – without it, the project manager will realize that he lost control of the project • Leadership by Commitment: gain and sustain the commitment of others – The successful project manager is able to unleash motivation and innovation, establish the trust and confidence to succeed, ensure the customer receives value each step of the way and maintain control in the face of volatility. • Flexible Project Model: 5 cycles that span project startup to project finish – Initiate, Speculate, Innovate, Re-evaluate and Celebrate – Provide just enough discipline to allow people the freedom to innovate and to get work done venerdì 12 febbraio 2010 83
  84. 84. XPM: Critical Success Factors (2/2) • Real-Time Communication – Ensure that information is available anytime to anyone who needs it, to speed the flow of thoughts and ultimately decisions • Agile Organization – Put in place a change tolerant, project-friendly culture; one that recognizes and supports the special needs of different projects – The goal is not to ensure projects are delivered on time, on scope or on budget, but rather to ensure that the project delivers the intended business outcome venerdì 12 febbraio 2010 84
  85. 85. XPM: Project Model • Initiate – A business problem is presented. – Face-to-face sessions between the client and the producer are held in which both parties come to a shared vision and clear understanding of what is going to be done • This is documented and agreed to by both parties • The caveat is that this is an initial definition and is expected to change as project work commences venerdì 12 febbraio 2010 85
  86. 86. XPM: Project Model • Speculate – A brief project description (Project Skinny) is presented along with a prioritized list of requirements that the client and the producer believe are needed in order to solve the business problem • Some high-level planning is done very quickly to sequence the functionality into a number of development cycles • This is documented and agreed to by both parties - along with the expectation that it will change as project work commences venerdì 12 febbraio 2010 86
  87. 87. XPM: Project Model • Innovate – Detailed planning for producing the functionality assigned to this cycle is prepared – The cycle work begins, is monitored throughout the cycle and adjustments made as necessary – The cycle ends when its time-box has expired venerdì 12 febbraio 2010 87
  88. 88. XPM: Project Model • Re-evaluate – The client and project team perform a quality review of the functionality produced in the just competed cycle – It is compared against the overall goal of maximum business value and adjustments made to the high-level plan and next cycle work as appropriate The sequence Speculate-Innovate-Re-evaluate is repeated until the time and budget have been expended or the desired result has been achieved • Celebrate – Recognizing and rewarding success throughout the project keeps the energy positive and helps keep the project in a good mood venerdì 12 febbraio 2010 88
  89. 89. SCRUM venerdì 12 febbraio 2010 89
  90. 90. SCRUM • Conceived for the management, enhancement and maintenance methodology for an existing system or production prototype • Enhancement of the iterative and incremental approach to delivering object-oriented software • It guarantees the maximum flexibility and appropriate control since the system development process is complicated and complex • It assumes that the analysis, design, and development processes in the Sprint phase are unpredictable – A control mechanism is used to manage unpredictability and control risk • Very easy to learn and requires little effort to start using venerdì 12 febbraio 2010 90
  91. 91. Roles of SCRUM • Pigs – ScrumMaster: • Acts as a facilitator in order for the team to deliver the sprint goal • Keeps the team focused on the tasks in hand, ensuring that the SCRUM process is used as intended – Product Owner: represents the stakeholders and ensures that the Scrum Team works with the "right things" from a business perspective – Team: a self-organizing and cross-functional group of about 7 people who do the actual analysis, design, implementation, testing, etc. • Chickens – Stakeholders and Managers venerdì 12 febbraio 2010 91
  92. 92. SCRUM Principles • SCRUM enables the creation of self-organizing teams by encouraging – co-location of all team members, and verbal communication across all team members and disciplines in the project • SCRUM recognizes that during a project the customers can change their minds about what they want and need – Scrum adopts an empirical approach, focusing instead on maximizing the team's ability to deliver quickly and to respond to emerging requirements • Sprint: empirical process during which the team creates a potentially shippable product increment venerdì 12 febbraio 2010 92
  93. 93. SCRUM Phases: Pre-game • Planning – Definition of a new release based on currently known backlog, along with an estimate of its schedule and cost – If a new system is being developed, this phase consists of both conceptualization and analysis – If an existing system is enhanced, this phase consists of limited analysis • Architecture – Design how the backlog items will be implemented – This phase includes system architecture modification and high level design venerdì 12 febbraio 2010 93
  94. 94. Product Backlog • It is a high-level document for the entire project – It contains broad descriptions of all required features, wish-list items, etc. prioritized by business value – It is open and editable by anyone and contains rough estimates of both business value and development effort – The product backlog is property of the Product Owner – Business value is set by the Product Owner – Development effort is set by the Team venerdì 12 febbraio 2010 94
  95. 95. SCRUM Phases: Game • Development Sprints: – Development of new release functionality, with constant respect to the variables of time, requirements, quality, cost, and competition – Interaction with these variables defines the end of this phase – There are multiple, iterative development sprints, or cycles, that are used to evolve the system venerdì 12 febbraio 2010 95
  96. 96. Sprint • A sprint is a two to four weeks period used to evolve the final product • The set of features that go into a sprint come from the product "backlog“, a prioritized set of high level requirements of work to be done • During a sprint, no one is allowed to change the sprint backlog • A sprint is empirical, non-linear and flexible – Where available, explicit process knowledge is used; otherwise tacit knowledge and trial and error is used to build process knowledge.. • Controls, including risk management, are put on each iteration of the Sprint phase to avoid chaos while maximizing flexibility • After a sprint is completed, the team demonstrates the software venerdì 12 febbraio 2010 96
  97. 97. Sprint Backlog • It is a document containing information about how the team is going to implement the features for the upcoming sprint. • Features are broken down into tasks – tasks are normally estimated between four and sixteen hours of work • Team understands exactly what to do; anyone can pick a task from the list – Tasks on the sprint backlog are never assigned • Signed up by the team members as needed, according to priority and skills • The sprint backlog is property of the Team • Estimations are set by the Team venerdì 12 febbraio 2010 97
  98. 98. Burn Down Chart • It is a publicly displayed chart showing remaining work in the sprint backlog – Updated every day, it gives a simple view of the sprint progress – There are also other types of burndown • the Release Burndown Chart shows the amount of work left to complete the target commitment for a Product Release (normally spanning through multiple iterations) • The Alternative Release Burndown Chart which does the same and, in addition, shows clearly scope changes into a Release Content venerdì 12 febbraio 2010 98
  99. 99. Meetings • Daily: – Daily Scrum – Scrum of Scrums • At the beginning of each Sprint: – Sprint Planning Meeting • At the end of each Sprint: – Sprint Review Meeting – Sprint Retrospective venerdì 12 febbraio 2010 99
  100. 100. Daily Scrum • This meeting has specific guidelines: – The meeting starts precisely on time • Often there are team-decided punishments for tardiness • All are welcome, but only "pigs" may speak • The meeting is time-boxed to 15 minutes • The meeting should happen at the same location and same time every day • Each team member answers three questions: – What have you done since yesterday? – What are you planning to do today? – Do you have any problems preventing you from accomplishing your goal? venerdì 12 febbraio 2010 100
  101. 101. Scrum of Scrums • Each day normally after the daily scrum – These meetings allow clusters of teams to discuss their work, focusing especially on areas of overlap and integration – A designated person from each team attends • The agenda will be the same as the Daily Scrum, plus the following four questions: – What has your team done since we last met? – What will your team do before we meet again? – Is anything slowing your team down or getting in their way? – Are you about to put something in another team’s way? venerdì 12 febbraio 2010 101
  102. 102. Sprint Planning Meeting • At the beginning of the sprint cycle (every 15–30 days) – Select what work is to be done – Prepare the Sprint Backlog that details the time it will take to do that work, with the entire team – Identify and communicate how much of the work is likely to be done during the current sprint – Eight hour limit venerdì 12 febbraio 2010 102
  103. 103. Sprint Review Meeting • At the end of a sprint cycle – Review the work that was completed and not completed – Present the completed work to the stakeholders (a.k.a. "the demo") – Incomplete work cannot be demonstrated – Four hour time limit venerdì 12 febbraio 2010 103
  104. 104. Sprint Retrospective • At the end of a sprint cycle – All team members reflect on the past sprint. – Make continuous process improvement. – Two main questions are asked in the sprint retrospective: • What went well during the sprint? • What could be improved in the next sprint? – Three hour time limit venerdì 12 febbraio 2010 104
  105. 105. SCRUM Phases: Postgame • Closure – Preparation for release, including final documentation, pre- release staged testing, and release venerdì 12 febbraio 2010 105
  106. 106. Deliverables • The project is open to the environment until the Closure phase • The deliverable can be changed at any time during the Planning and Sprint phases of the project – The project remains open to environmental complexity, including competitive, time, quality, and financial pressures, throughout these phases venerdì 12 febbraio 2010 106
  107. 107. SCRUM Practices • Customers become a part of the development team • Scrum has frequent intermediate deliveries with working functionality, like all other forms of agile software processes. – This enables the customer to get working software earlier and enables the project to change its requirements according to changing needs. • Risk mitigation, monitoring and management (risk analysis) occurs at every stage and with commitment. venerdì 12 febbraio 2010 107
  108. 108. SCRUM Practices • Let everyone know who is accountable for what and by when • Frequent stakeholder meetings to monitor progress • There should be an advance warning mechanism • No one is penalized for recognizing or describing any unforeseen problem. • Workplaces and working hours must be energized venerdì 12 febbraio 2010 108