PROJECT MANAGENT ISSUES: A: Project Development Methodologies: Agile Vs. Waterfall development Project development methods are classified into two main types: the classical (old, established) method called the waterfall model and the new (much appreciated and realistic) method called the agile model. The waterfall model is a linear and sequential approach to software design and systems development: the linear approach is basically a stage by stage approach where each stage progresses to the next until the project is complete. The Agile model involves breaking down a large problem into smaller bits then tackling the bits one by one – it’s more of a divide and conquer method with rapid delivery of a functioning product as its main goal. Agile methods do not have specific life-cycle model, Instead, they laid out a group of underlying principles Agile methods are characterized by: Less emphasis on analysis and design Earlier implementation (working software is considered more important than documentation) Responsiveness to change Close collaboration with the client Agile processes demand fixed time, not fixed features The difference between the two models lies in the fact that the waterfall model supports predictability while the agile model supports adaptability. The main differences between the two models are: 1. In the waterfall model, once a stage is completed, there is no going back, while agile model allows for change at the end of each section or component because testing is done for every component 2. In agile model, there is a functioning product at the end of each component where testing is done; the waterfall model assumes that there is only one product to be delivered and testing is only done at a particular stage 3. The agile model is modular in nature – each component being referred to as module where customers see full functioning product for each component and get satisfaction, the waterfall model only allows the customer/client to see product towards the end of the project which may cause client dissatisfaction. In conclusion, though on the plus side, waterfall’s defined stages allow for thorough planning, especially for logical design, implementation and deployment, Agile methodology is a sound choice for software development and web design projects. More and more firms are becoming Agile! 1 Examples of Agile Methods 1.XP: Extreme programming is a software development method that attempts to support quicker development of software. It consists of a series of principles for developing software rapidly rather than through a step-by step methodology. We can also define XP as a discipline of software development with values of simplicity, communication, feedback and courage. A principle of XP is to minimize the number of features There is no need to build a product that does any more than what the client actually needs 2.RAD: Rapid Application Development, just like XP, was developed due to the problems that were encountered using the traditional waterfall model. RAD is defined as an approach to building and maintaining computer – based systems, which combines effective use of tools and techniques, prototyping and tight project delivery timescale. RAD is a method that develops a software system in bits or components (called timeboxes), beginning with the most essentials parts being developed first. A key feature of RAD, therefore, is to deliver software product rapidly and often, though in bits. 3.DSDM: Dynamic System Development Method, (DSDM), just like RAD attempts to solve the problem of software taking very long to produce. DSDM is basically a framework of controls for building and maintaining systems which meet tight time constraints and provide a recipe for repeatable RAD success. Examples of Waterfall Methods SDLC: See earlier notes on this on what it is and the stages STRADIS: STRuctured Analysis, Design, and Implementation of Information System (STRADIS) is a structured approach to system software development that uses DFDs to describe system designs. It is a method used to develop computer systems in a structured way, from beginning to the end, through functional decomposition, also called top-down design. Evolutionary Development: This is a common term used to describe the spiral model and the incremental model. Evolutionary development method is a staged or incremental approach that periodically delivers a system that is increasingly complete. Some people hold the view that evolutionary approach falls between the waterfall model and the agile model due to the fact that it is partially structured and partially delivers a complete subset of the entire product before completing all the phases. JSD: Jackson Systems Development (JSD) is a systems design method that uses decomposition diagrams (See earlier notes on decomposition diagram) to design a system in three phases: modeling phase, network phase and implementation phase. B:Some Examples of Project management methodologies: 1.PMBoK: Project Management Body of Knowledge is a publication guide produced by Project Management Institute (PMI) to be used by project managers as a guide when doing projects. The PMBoK document has specific requirements, techniques and principles that must be followed when managing projects. For more info, please Google up PMBoK or the its full meaning. 2 2.SSADM Structured Systems Analysis and Design Method (SSADM) has seven stages (numbered o to 6) within a five module framework. The modules cover the life cycle from feasibility study to design, but not implementation and maintenance: it is assumed that planning has been completed and the stages following the design are presumably seen as installation specific and therefore not covered by SSADM. The following bullet points refer to the modules while the numbers refer to the stages of SSADM Feasibility Study 0. Feasibility Requirements analysis 1. Investigation of current environment 2. Business system option Requirements specification 3. Definition of requirements Logical System specification 4. Technical System options 5. Logical design Physical Design 6. Physical design 3. CMMI Capability maturity model (CMM) is a framework (or a set of strategies) for evaluating processes used to develop software projects. The strategies are: SW–CMM for software P–CMM for human resources (“people”) SE–CMM for systems engineering IPD–CMM for integrated product development SA–CMM for software acquisition These strategies are unified into capability maturity model integration (CMMI). Computer professionals normally use the software component of the strategies (SW-CMM). SW-CMM has five levels identified as: 1. Level 1. Initial Level 2. Level 2. Repeatable Level 3. Level 3. Defined Level 3 4. Level 4. Managed Level 5. Level 5. Optimizing Level 4. PRINCE2 Project in Controlled Environments 2 (PRINCE2) is an enhanced version of PRINCE. It is a structured approach for project management where a project is seen as having a defined and unique set of products called deliverables. These deliverables have at the end and during their development a set of activities, a sequence to construct them, appropriate resources to undertake them, finite lifespan and an organizational structure with defined activities. The management structure of a PRINCE2 project consists of a project board with a senior executive as a member along with a senior user but a project manager fulfills the day to day management with team leaders reporting to the project manager. Detailed plans are also involved while implementing PRINCE2. Time and cost are factored in when planning and executing a PRINCE2 project. PRINCE2 also produces a set of reports which help control the monitoring of actual progress against plan and against the business case. PRINCE2 projects end with a project closure report which lists the project’s achievements in terms of deliverables, performance in terms of comparison of actual against forecast duration, cost and resource usage and quality in terms of errors or exceptions. 4