Resource-Constrained Project Scheduling Based on ACO-Critical Chain Method

This paper will present ACO – Critical chain method for scheduling resource-constrained projects. It is based on the critical chain and effective heuristic algorithm method suggested by earlier methods. ACO generates activity lists after searching solution spaces and provides the critical chain used in the chain method. The method then applies both the project buffer and flexible coefficient that adjusts the completed time for the project to more accuracy. The paper also adopts resource utilization change rate to indicate the heuristic information. Two flexible coefficients are given to adjust project completed time.

Resource constrained project scheduling problem (RCPSP) is a generalized class of optimization problem. Its purpose is under the circumstances of the relationship between resource constraints and project tasks, and to minimize a project’s duration by optimizing the schedule and resource allocation. Traditional methods like Design Structure matrix (DSM), Program Evaluation and Review Technique (PERT) and critical path method (CPM) cannot properly run multiple projects simultaneously because they ignore the resource constraint. This method optimizes resource allocation

In RCPSP, suppose a project group has N simultaneous projects with D number of tasks and two virtual activities that do not use time and resources. Then the objective function representing the shortest duration can be shown as: min {max Fi | i 1, 2 … N} (Li, Gong & Kou 486). Fi represents the project completed time.

Ant Colony Optimization (ACO) was initially proposed in the 1990s by Dorigo. It designs virtual ants exploring various routes. Over time, they leave the virtual pheromone’s gradual disappearance. They are able to choose the best route as per the principal of “mutually pheromone closer to line”.  If I is an activity list, in ACO it is constructed by I=(1o,1i….1n+i) (n=∑ni). The activities in ACO are assigned one by one to I from 1o to 1n+I where each assignment symbolizes an ant’s decision. While assigning activity 1r to the r position in I, the Nr set of candidates contains activities with predecessors that are already assigned to the list. As the construction goes on, modification of the Nr set is done step by step. The first ant assigns 10=0 to construct an activity. Then, from the Nr set, the ant selects an activity, say j, and assigns 1r=j from r=1 to r=n. This uses both pheromone and heuristic information. ACO then creates precedence feasible activities. By selecting r-1 activities and scheduling the start times for each, it is then possible to determine the allocated resources and finish times of the activities.

The above descriptions present two problems to be solved by ACO. The first is heuristic significant role played by ACO information, which needs to be expressed. ACO recommends the use of the rate of change of resources utilization to indicate the heuristic information. Secondly, a means must be provided for updating the information. ACO recommends three ways to update information. They are global update, evaporation and local update. Therefore, ACO has several advantages. In the choice of feasible activities, one can choose two types of activities that have the same time. For cut rations, ratios between the lengths of the projects can be used without consideration of the resource constraint and the length of the project using ACO in situations where resources are limited.

Work Cited

  • Li, Kewen, Gong, Lina & Kou, Jisong. Resource-Constrained Project Scheduling Based on           ACO-Critical Chain Method. Shandong: China University of Petroleum & Tianjin           University, 2009. Print.

How to handle Project Management Lifecycle changes

Excessive Scope Change Request:

Determining the scope of a project is an important step in the project management planning life cycle. Project scope involves documenting and determining a list of specific costs, deadlines, tasks, deliverables and the goals of the project. Documenting the scope of a project involves identifying the responsibilities of each and every member of the project management team. It also involves drafting up procedures on how to verify and approve the product, once it comes under completion (Garton and Erika, 17).

The documentation of the scope will provide the project management team with guidelines on how to manage the various change requests. On this basis therefore, it is better to scope the project in the beginning of its initiation. This will enable the project management team to manage effectively manage change that occurs at the various stages of the management of a project. The management will therefore modify their project management life cycle due to excessive scope request in order to avoid a creep in the scope (Hughes and Bob, 52). That is different parts of a project taking more time, effort and work because of poor planning.

Client involvement changes:

The participation and involvement of a client during the process of project management is important in determining whether the project will succeed or not. This is because it is the client who pays for the projects, and guides the project manager on what he or she expects from the project. This is once the project comes under completion. A client will also participate in reviewing the project, highlighting areas that he or she wants the project management team to change or improve (Garton and Erika, 23).

On this basis, a client is an important part of the process of developing a project. A change in a client will affect the scope of the projects, because different clients will have different goals for their projects. The views and perception of one client, will always conflict with the views and perceptions of another client (Hughes and Bob, 47). On this basis, a project team will have to modify their project management life cycle because it is the client who pays for the work.

 

Risks Realizations:

Garton and Erika (21) observe that identifying potential risks and threats that affect the completion of a project will affect its success. Identifying these risks will enable the project to take prudent measures of mitigating them, at the initiation of the project (Garton and Erika, 33). Garton and Erika further denote that these decisions will help the project team to finish the project on time, and within the budget. Failing to modify a project life cycle, once the project team identifies a risk can increase the costs of the project, and this is not favorable to the client.

Resource Availability:

Resources refer to sources of support and supply. It includes people, technology and money. In project management, there are two types of resources, namely human and capital resources. Human resources are people who are able to create a project, and include system programmers, analysts and developers. Capital resources on the other hand are the infrastructure and tools for the development of a project. Availability of these resources is crucial for the successful completion of a project.

For instance, a limited number of system programmers will affect the quality of the finished project, and can possibly increase the cost of doing the project (Hughes and Bob, 11). On this basis, once a project team will denote that they do not have sufficient resources to handle the project, it is prudent for them to modify the project management life cycle. On this basis, modifying a project will help the project team to ensure that the project gets back on schedule. This aspect is referred to as crashing.

Technology Changes:

With the evolution of technology, the importance of project management increases in terms of the various tasks that a project manager needs to carry out, and the necessary knowledge of carrying out such tasks. On this basis, technological change affects then skills that a project team needs for purposes of completing the project (Garton and Erika, 17). Failure to have such skills will amount to a delay in the completion of a project, and an increase in the costs of completing the project. On this basis, it is important to modify the project management life cycle in order to reflect the technological skills the members of a team have.

  • Works Cited:
  • Garton, Colleen, and Erika McCulloch. Fundamentals of Technology Project Management.
  • Chicago: MC Press, 2012. Print.
  • Hughes, Bob, and Bob Hughes. Project Management for IT-Related Projects. 2nd ed. Swindon:
  • BCS Learning & Development Limited, 2012. Print.

How UML and Agile Development fit together

UML (Unified Modeling Language) is a graphical tool widely used for describing, building, and documenting a wide variety of artifacts produced all the way through the software development life cycle. Without a doubt, functionalities and features of complex and large-scale software systems cannot be explained with text and words only unless they are explained through diagrams by making use of UML. In this scenario, system modeling provides various benefits to system developers such as visualization, unambiguous communication, easy understanding and clarification of requirements. In fact, UML can be used with all activities all the way through the software development lifecycle as well as across different development tools (IBM; Kotonya and Sommerville, p.11).

It is an admitted fact that agile methodologies have been developed to support rapid development of high-quality code hence they ignore various other aspects such as documentation and system design (Paige, Agarwal and Brooke). However, in their paper (Paige, Agarwal and Brooke) performs an experiment in which they have used UML and agile collectively to complete a project. This project involved the implementation of a health information system. The results of this experiment clearly demonstrated that modeling is essential, even though a project is being managed through agile software development methodologies. In this project, researchers have made use of UML for capturing object interactions, use cases and simple associations among classes. In addition, these models were proved to be very useful in describing the system to the customer (Paige, Agarwal and Brooke).

In the same way, (Rumpe) also discuss similar concepts. According to their viewpoint, the use of UML to develop the system within an agile methodology makes the development project all the more resourceful. In addition, through the abstractness of the platform independent models, these models are more compact and can more easily be written, read and understood than code. Additionally, UML also presents an excellent support for state-of-the-art documentation even much better than code along with proper commenting does (Rumpe).

According to (Huang, Chen and Lin) the combination of UML and agile methodology can make the software development process more effective. In addition, the combination of UML and agile methodology brings the benefit of readability, speed and modifiability (Huang, Chen and Lin).

Moreover, in agile development methodology, the development is focused on developing high quality products. On the other hand, low quality can have a serious impact on the development of new features, team confidence, and drown the reputation of a firm in bug triage, reporting, and fixing, documenting, regressing, and forward fixing. In this scenario, the development of a high quality product can be ensured through the development of high quality design for the reason that a high quality design is the artifact that can be used for effective communication with other team members on the subject of design issues. In this scenario, one of the best languages for this communication is UML. In fact, text or just word-based methods for communication about design are time-consuming and cause to experience interpretation errors. In this scenario, high performing agile teams should make use of graphical diagrams to share their work. It also gives complete clarification of requirements. (McKenna) believe that agile development team should make use of UML to communicate their work (McKenna).

Works Cited

  • Huang, Chuen-min, Kuo-wei Chen and Kou-kai Lin. An Empirical Study of Adaptability of UML and Agile Methodology in Software Development. 2010. 20 March 2013 <http://140.125.84.58:8080/TeacherWeb/fileDownload/48.pdf>.
  • IBM. Unified Modeling Language (UML). 2013. 20 March 2013 <http://www-01.ibm.com/software/rational/uml/>.
  • Kotonya, Gerald and Ian Sommerville. Requirements Engineering Processes and Techniques. New York: John Wiley and Sons, 1998.
  • McKenna, Jeff. Does Agile Development Require UML? 02 April 2009. 22 March 2013 <http://blog.agile-action.com/2009/04/does-agile-development-require-uml.html>.
  • Paige, Richard, Priyanka Agarwal and Phillip Brooke. “Combining agile practices with UML and EJB: a case study in agile development.” XP’03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering. Springer-Verlag Berlin, Heidelberg, 2003. 351-353.
  • Rumpe, Bernhard. Agile Modeling with the UML. 2010. 23 March 2013 <http://sse-tubs.de/publications/Rumpe_AgileModelingUML_RISSEF02_04.pdf>.