Download
software project management n.
Skip this Video
Loading SlideShow in 5 Seconds..
Software project Management PowerPoint Presentation
Download Presentation
Software project Management

Software project Management

8 Vues Download Presentation
Télécharger la présentation

Software project Management

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Software project Management Faculty of Higher Studies Software project Management Research in Modern Project Management Methods 2011 TO Dr. Baker AbdelAlhak Introduced by:FarisRajehFoqha

  2. Software project Management Table of Contents Introduction Abstract The software development methodology framework Definition As a noun Heavyweight methodologies Heavyweight Characteristics Software development methodology framework Framework Type: Linear Framework Type: Iterative Framework Type: Combination Linear and Iterative Agile Framework

  3. Table of content……cont What Is Agile? Where Did Agile Come From? Why Agile? Manifesto for Agile Software Development Principles behind the Agile Manifesto Characteristics of Agile Methodologies Comparison of Agile and Heavyweight Agile and Heavyweight Discriminators from project perspective Agile Modeling Scrum Dynamic System Development Method (DSDM)

  4. Table of content……cont Lean Software Development Selecting methodology Conclusion References

  5. Introduction There exist numerous project management methodologies in the world. This essay aims to make a definition and present an overview of the modern methodologies. This essay gives a global description of each of the selected methodologies, discusses their key points, advantages and disadvantages . Focus on differences between Heavyweight methodologies and agile methodology Framework which is consider as lightweight methodology And I will try to present more details about agile methodology because it consider as recent methodology. And as I discussed two approach of methodology I will introduce the keys to select the best methodology.

  6. Abstract After I reviewed papers, sites and books I found that the managers still struggling to pass their projects. So they should select the best methodology . But any methodology is learned through both practice and past experience. No methodology mature so there is no one methodology will be suited to all project or company.

  7. Abstract But any success management should cover the below points because its share in all management field. • We should work on methodology . • Need Top management support. • Leadership not manger . • Look to the product from customer perspective (voice of customer). • Continuous improvement. • Follow Preventive approach . • Think win win. • The team should be SWAT (special weapons and tactics) team.

  8. Abstract …..cont

  9. Methodology Definition A methodology is a set of guidelines or principles that can be tailored and applied to a specific situation. A Methodology could also be a specific approach, templates, forms, and even checklists used over the project life cycle. A process that documents a series of steps and procedures to bring about the successful completion of a project. A defined process for accomplishing an end. A series of steps through which the project progresses.

  10. Methodology Definition…cont A collection of methods, procedures, and standards that define a synthesis of engineering and management approaches designed to deliver a product, service, or solution. An integrated assembly of tasks, techniques, tools, roles and responsibilities, and milestones used for delivering the project. And as a noun, a software development methodology is frameworks that is used to structure, plan, and control and manage the process of developing an information system. To pass the project according time plan, budget, resources and required quality.

  11. Heavyweight Methodology Heavyweight methodologies are considered to be the traditional way of developing software. These methodologies are based on a sequential series of steps, such as requirements definition, solution building, testing and deployment. There are many heavyweight methodologies like Waterfall, Spiral and prototyping ...etc.

  12. Heavyweight Characteristics • Predictive approach – Heavyweight methodologies have a tendency to first plan out a large part of the software process in great detail for a long span of time. • Comprehensive Documentation – Traditional software development view the requirements document as the key piece of documentation. • Process Oriented - Define a process that will work well for whoever happens to be using it. The process would consist of certain tasks that must be performed by the managers, designers, coders, testers etc. For each of these tasks there is a well defined procedure. • Tool Oriented – Project management tools, Code editors, compilers, etc. must be in use for completion and delivery of each task. • Hints Compare it with ‘Why software project fail’

  13. Software development methodology framework • Linear framework. • Iterative framework. • A combined linear-iterative framework. • Agile Framwork

  14. Framework Type: Linear Example Waterfall “code and fix” “one year of slamming code, one year of debugging”. A sequential development approach display, in which development is seen as flowing steadily downwards (like a waterfall) through the SDLC

  15. Framework Type: Linear The basic principles are: • Project is divided into sequential phases, with some overlap and splash back acceptable between phases. • Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire system at one time. • Tight control is maintained over the life of the project via extensive written documentation, formal reviews, and approval/signoff by the user and information technology management occurring at the end of most phases before beginning the next phase.

  16. Framework Type: Linear

  17. Framework Type: Iterative Example Prototyping. The iterative development model is the most realistic of the traditional software development models. It has continuous feedback between each stage and the prior one. The iterative approach leads to higher efficiency. Because testing takes place in each iteration, not just at the end of the project life cycle.

  18. Framework Type: Iterative…cont The basic principles for Prototyping are:- • Not a standalone, complete development methodology, but rather an approach to handling selected parts of a larger, more traditional development methodology (i.e. incremental, spiral, or RAD. • Attempts to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process. • User is involved throughout the development process, which increases the likelihood of user acceptance of the final implementation. • Small-scale mock-ups of the system are developed following an iterative modification process until the prototype evolves to meet the users’ requirements.

  19. Framework Type: Iterative…cont

  20. Framework Type: Combination Linear and Iterative Example Spiral Various methods are acceptable for combining linear and iterative systems development methodologies, with the primary objective of each being to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process The basic principles for spiral are:- • Objective setting – Specific objectives for the project phase are identified. • Risk assessment and reduction – Key risks are identified, analyzed and information is obtained to reduce these risks • Development and Validation – An appropriate model is chosen for the next phase of development. • Planning – The project is reviewed and plans are drawn up for the next round of spiral.

  21. Framework Type: Combination Linear and Iterative…cont

  22. Agile Framework What Is Agile? “The quality of being agile; readiness for motion; nimbleness, activity, dexterity in motion” as mentioned in the Oxford Dictionary . Agile methodology is an approach to project management, typically used in software development. It helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints.

  23. Agile Framework…cont Where Did Agile Come From? There is assumption (Dr. Winston Royce )say that software project like any other project can be done on sequential basis but as I read that the methodology learned through both Practice and past experience and these emphasize that we can’t consider software project as construction project , so we can’t apply traditional methodology that adopt sequential development. If we apply traditional methodology (sequential) might we build the software, but sure this software will not be what the business owner asked. So agile come from researcher that they want to overcome the constraints that exist on traditional methodology.

  24. Agile Framework…cont Why Agile? Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development lifecycle. In an agile paradigm, every aspect of development requirements, design, etc. is continually revisited throughout the lifecycle. In an agile there’s always time to steer it in another direction. The results of “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. The phenomenon known as “analysis paralysis” can’t really impede a team from making progress. Agile empowers teams to optimize their release as it’s developed, to be as competitive as possible in the marketplace. Simply the agile development methodology helps companies build the right product.

  25. Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan That is, while there is value in the items onthe right, we value the items on the left more.

  26. Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

  27. Principles behind the Agile Manifesto Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity-- the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

  28. Characteristics of Agile Methodologies • People Oriented • Adaptive • Conformance to Actual • Balancing Flexibility and Planning • Empirical Process • Decentralized Approach • Simplicity • Collaboration • Small Self-organizing teams

  29. Comparison of Agile and Heavyweight

  30. Agile and Heavyweight Discriminators from project perspective

  31. Agile Modeling Scrum The term ‘scrum’ originated from a strategy in the game of rugby where it denotes “getting an out-of-play ball back into the game” with teamwork. Scrum is an agile method for project management, in use since at least 1990. It has been called a hyper-productivity tool". Scrum is an iterative, incremental process for developing any product or managing any work . Scrum concentrates on how the team members should function in order to produce the system flexibility in a constantly changing environment. At the end of every iteration it produces a potential set of functionality.

  32. Agile Modeling Scrum…cont • Scrum concepts: • Sprint: A period of 30 days or less where a set of work will be performed to create a deliverable. • Backlog: All work to be performed in the foreseeable future, both well defined and requiring further definition. • Sprint backlog: The work that should be done during the current sprint. • Product backlog: The work that should be done for the whole product as desired by the customer. • Scrum: A daily meeting at which progress and impediments to progress are reviewed. and to keep track of the progress.

  33. Agile Modeling Scrum…cont

  34. Agile Modeling Scrum Scrum Advantages • During a Scrum sprint there are no disturbances from the outside; this keeps the team focused and creative. This is very good for the productivity. • At the end of each sprint, what has been done and what should be done in the next sprint can be evaluated. This keeps the process very flexible.

  35. Agile Modeling Scrum Scrum Disadvantages Because a Scrum team should be responsible for itself during a sprint, it's important that management doesn't interfere with how the work is being done. For this management needs to fully trust the team to do the right thing, which could potentially be problematic.

  36. Dynamic System Development Method DSDM was developed in the UK in the mid to late 1990s by folks with a business—not a technical—perspective. DSDM is one of the heavier Agile approaches available. It was originally developed as an extension to Rapid Application Development (RAD), incorporating best practices from the business-oriented founders. The fundamental idea behind DSDM is to fix time and resources, and then adjust the amount of functionality accordingly rather than fixing the amount of functionality in a product, and then adjusting time and resources to reach that functionality.

  37. Dynamic System Development Method • Pre Project: Things that need to occur before the project begins. • Project Lifecycle: The actual project occurs. This phase is broken into five stages: • Feasibility Study: a decision is made whether to use DSDM or not, In addition, two work products are produced; a feasibility report and an outline plan for development. • Business Study: The key outputs of this section are System architecture definition and an Outline prototype plan • Functional Model Iteration: First iterative phase. This phase involves analysis, coding and prototypes. The results gained from these prototypes are used in improving the analysis models. The key output is a functional model which consists of the prototype code and analysis models.

  38. Dynamic System Development Method • Design and Build Iteration: The system is mainly built in this phase. The design and functional prototypes are reviewed by the users and further development is based on the users’ comments. • Implementation In this final phase the system is handed over to the users. Training is provided. User Manuals and a Project Review Report. • Post Project Phase: Things that need to occur after the project has been completed.

  39. Dynamic System Development Method

  40. Dynamic System Development Method DSDM principles • Active user involvement is imperative. • The team must be empowered to deliver. • Frequent delivery is key. • The primary criterion for acceptance is the delivery of functionality that meets the current business needs. • Iterative and incremental delivery is essential. • All changes during the project lifecycle are reversible. • Requirements are baselined at a high level. • Integrated testing during the entire project lifecycle is expected. • Collaboration and cooperation between all stakeholders is essential.

  41. Dynamic System Development Method Why MoSCoW acronym ? • MUST have this requirement. • SHOULD have this requirement if at all possible. • COULD have this requirement if it can be delivered without major impact. • WOULD like to have these requirements if there is enough time remaining.

  42. Lean Software Development Lean Software Development has its roots in Toyota Production System and it helps software organizations optimize their processes and production methods in order to deliver their products to the market much faster and with better quality. So Lean Software Development (LSD) is the application of lean principles to the craft of software development.

  43. Lean Software Development…cont What is Lean? “A systematic approach to identifying and eliminating waste through continuous improvement, flowing the product at the pull of the customer in pursuit of perfection.” “Lean Software Development reduces defects and cycle times while delivering a steady stream of incremental business value.” The goals are to develop software in one-third the time, with one-third the budget, and with one-third the defect rate

  44. Lean Software Development…cont Lean principles from Software perspective • Eliminate waste: In software development, waste is anything that does not improve the quality of code, reduces the amount of time and effort it takes to produce code, or does not deliver business value to the customer. In other words, always we should apply Total quality management concepts (TQM). • Amplify learning: For programmers to develop a system that delivers business value, they will have to learn about many things.(technical, Business). • Decide as late as possible: This is the moment at which, if the team does not make a decision, the decision will be made for them. The benefits of this are avoiding or delaying the costs of change, which obviously cannot be incurred if you have not limited your options yet.

  45. Lean Software Development…cont • Deliver as fast as possible: This is the foundation of iterative development. Typical 9-12 month projects generate roughly a 25 percent change in requirements • Empower the team: The quality of a software team (the people factor) is the most important element in successfully delivering software. • Build integrity in: Perceived integrity is the customer’s experience with your software. Conceptual integrity is how well the architecture and system components flow together to bring about the perceived integrity. Obviously testing, unit and integration, is a major part of integrity. • See the whole: Systems thinking have been around for a while, but the typical response to solving problems is to break them down into their constituent parts and optimize each individual piece. This is sub optimization, which leads to the “tragedy of the commons.”

  46. Lean Software Development…cont Lean Software Development Strengths • Complements existing practices. • Focuses on project ROI. • Eliminates all project waste. • Cross-functional teams. Lean Software Development Weaknesses • Does not specify technical practices. • Requires constant gathering of metrics which may be difficult for some environments to accommodate. • Theory of Constraints can be a complex and difficult aspect to adopt.

  47. Selecting Methodology Selecting a Project Management methodology can be one of the most difficult parts and can have real impact on the fate of the project. Criterion for choosing a methodology for any project is mainly based on • An expert’s opinion. • Past working experience. • Government rules and regulations. • Organization. • Senior management. • Stakeholder’s preferences.

  48. Selecting Methodology…cont • Client location. • Budget Team size • Technology used • Tools and techniques • Project criticality • Existing processes Note : Decisions in which a methodology is chosen or used based on a single criteria can have serious negative impacts on the project especially if the project manager, development teams do not have the knowledge or the pros and cons of the selected methodology.

  49. Conclusion Heavy methodologies attempt to plan a large part of a project in great detail over a long span of time. This works well until things start changing, and project managers inherently try to resist change. But changing is inevitable and ever-increasing technological complexities, project delays, so the traditional project methodologies are considered bureaucratic or "predictive" in nature and have resulted in many unsuccessful projects. A revolution in the world of development methodologies. A totally new breed of methodology, which is agile, adaptive, and involves the client, every part of the way, is starting to emerge. Many of the heavy weight methodologists and mangers were resistant to the introduction of these "light weight" or "agile methodologies".

  50. Conclusion…cont The agile methodologies use an informal communication style. Unlike heavy weight methodologies, lightweight projects have only a few rules, few practices, teams are smaller, few documents, team working closely, knowledge sharing and instantaneous feedback. Projects are designed and built on face-to-face discussions, meetings, and the flow of information to the clients. The great thing about light methodologies is that they are learning methodologies. After each build or iteration, the team learns to correct issues on the project and improvement cycles form throughout the project. And this meet with Textbook Why software project fail ‘there are no tools and practices mature’’ and software is research process.