Monday, February 22, 2010

2.3.7 Using Process Models in a Project

We have seen many different development process models. What is the need for the different models? As mentioned earlier, while developing (industrial strength) software, the purpose is not only to develop software to satisfy the needs of some users or clients, but we want that the project be done in low cost and cycle time, and deliver high-quality software. In addition, there could be other constraints in a project that the project may need to satisfy. Hence, given the constraints of the project, we would like to employ the process model  that is likely to maximize the chances of delivering the software, and achieve the highest Q&P. Hence, selecting a suitable development process model for a project is a key decision that a project manager has to take. Let us illustrate this by a few examples.

Suppose a small team of developers has been entrusted with the task of building a small auction site for a local university. The university administration is willing to spend some time at the start to help develop the requirements, but it is expected that their availability will be limited later. The team has been given 4 months to finish the project, and an extension of the deadline seems very improbable. It also seems that the auction site will have some features that are essential, but will also have some features that are desirable but without which the system can function reasonably well.

With these constraints, it is clear that a waterfall model is not suitable for this project, as the “all or nothing” risk that it entails is unacceptable due to the inflexible deadline. The iterative enhancement model where each iteration does a complete waterfall is also not right as it requires requirements analysis for each iteration, and the users and clients are not available later. However, the iterative delivery approach in which the complete requirements are done in the first iteration but delivery is done in iterations seems well suited, with delivery being done in two (or three) iterations (as time is short). From the requirements, the project team can decide what functionality is essential to have in a working system and include it in the first iteration. The other desirable features can be planned for the second iteration. With this approach, the chances of completing the first iteration before the final deadline increase. That is, with this model, the chances of delivering a working system increase. RUP, as it allows iterations in each phase, is also a suitable model.

Consider another example where the customers are in a highly competitive environment where requirements depend on what the competition is doing, and delivering functionality regularly is highly desirable. Furthermore, to reduce cost, the customer wants to outsource as much project work as possible to another team in another country.

For this project, clearly waterfall is not suitable as requirements are not even known at the start. Iterative enhancement also may not work as it may not be able to deliver rapidly. XP will be hard to apply as it requires that the entire team, including the customer, be collocated. For this project, the timeboxing model seems to fit the best. The whole project can employ three teams—one of analysts who will work with the customer to determine the requirements, one to do the development (which could be in some low-cost destination), and the third to do the deployment, which will be where the site is hosted. By suitably staffing the teams, the duration of each of the three phases—analysis and design, build, and deployment—can be made approximately equal. Then the timeboxing model can be applied.

Consider another project, where a university wants to automate the registration process. It already has a database of courses and pre-requisites, and a database of student records. In this project, as the requirements are well understood (since registrations have been happening manually), the waterfall model seems to be the optimum.

2 comments:


  1. Tag: PM202A53. Let me share all of you about #5 Tips for Project Management Success,, I hope you enjoy it

    1. Plan your day using time management techniques

    As a project manager, time management skills are essential because you are dealing with a wide range of tasks that demand a quick turnaround time. Planning your day will go a long way in keeping you organized and increasing your productivity. Assist your task planning by using project management software which helps you track the work of you and your team.

    If you are not very tech savvy, a simple to-do list can also be a great organizational tool. Prioritize your most important tasks by putting them at the top of the list and less important ones at the bottom. Having a visual plan of your daily tasks helps to keep you on track and aware of time.

    Related post: Free ebook 104 secrets to become a great project manager

    2. Include stakeholders in important project conversations

    While you will have plenty of responsibilities regarding the project, don’t neglect your clients.

    Good communication is essential is keeping both parties informed of project progression, curtailing scope creep, and apprised of changing requirements. Some clients may have different expectations when it comes to communication, so make sure to establish the frequency and type of communication (like emails, phone calls, and face-to-face conversations) at the beginning of your project.

    Establishing communication expectations early helps alleviate stakeholder uncertainty about communication frequency and delivery.

    3. Regularly communicate with your team

    Daily team communication helps keep misunderstandings and unclear requirements under control. Keeping your team informed in every step of the project is essential to project management success.

    For example, a study published by Procedia Technology found that good communication skills were the cornerstone of project management. The study examined over 300 “construction project managers, architects, construction managers, engineers and quantity surveyors” and their successes and failures on various construction projects.

    4. Anticipate project setbacks

    Even the best-laid plans often go awry.

    Remember that even with a high amount of planning and attention to detail, your project may still encounter some challenges. Pay attention to complaints from stakeholders or colleagues, and other warning signs, like a missed deadline or cost overrun, that there may be a problem.

    Preventing a crisis will keep your project running smoothly, save you a lot of time, and keep you, your team, and your stakeholders confident in progressing with the project.

    Unfortunately not every complication can be avoided. Crisis management skills are essential for dealing with the unexpected. Project managers need to be flexible and pragmatic. Improvise and make sharp decisions when needed.

    Related post: 92 free project management templates

    5. Stay focused on the details

    A common problem project managers encounter is having the project aims not aligned with the organization’s objectives. A great project manager will strategize a plan for the project to lead back to the overall success of the business.

    Know your project’s scope by heart and avoid wandering outside of the project’s requirements. It’s too easy to get lost in minor details and forget what your focus is, so a well-planned project scope is essential for success.

    And final, you should use KPI to measure effectiveness of the project, here are full list: 76 project management KPIs



    ReplyDelete
  2. THANK YOU FOR THE INFORMATION .HI GUYS IF YOU SEARCHING FOR software application development services

    PLEASE VISIT US
    software application development services



    ReplyDelete

Pages