w78 2012 Paper 85 PDF
w78 2012 Paper 85 PDF
w78 2012 Paper 85 PDF
PROGRAMMING APPROACH
ABSTRACT
The purpose of this study is to tackle an important method in the scheduling of a project, crashing a
schedule. Crashing a schedule has proved to be a time consuming manual task and susceptible to
errors. A need for a clear algorithm is vital. In this study presented would be overviews of the subject
and an explanation about the process of manual crashing. Then, it fragments the manual method of
crashing into single operations. Each of those operations is analyzed for programmability and a list of
programmable tasks is determined. A general algorithm is then stated, and it is programmed in
JavaScript along with a user friendly web interface. An example of a new project and another for an
ongoing project are then crashed manually and by the software, and the results are compared.
1. INTRODUCTION
When a new project idea arises, it is often messy and unclear. Endless questions turn up like: What?
Where? Why? How? How much? Things appear to be so complex, and interrelated. Portny said that
“successful organizations create projects that produce desired results in established time frames with
assigned resources” (Portny, 2010). Well first things first, a project manager (PM) needs to be
assigned. The project manager needs to plan, organize and control the project. He can attain that
through answering three basic questions. What is the scope of the project? What is the schedule of
work? And finally, what are the required resources? Some basic steps are determining the objectives,
constraints and risk factors, initiate strategic planning, develop a set of outlines for the scope of work,
a work breakdown structure WBS, and finally prepare and fix project milestones.
On the word of Sayles, “Project managers function as bandleaders who pull together their players
each a specialist with individual score and internal rhythm. Under the leader's direction, they all
respond to the same beat” (Sayles, 2011). But bringing to action those specialists necessitates
preparing an initial plan of work. In the planning phase, the PM defines elements of work, commonly
referred to as tasks or activities, having defined durations and relationships. Subsequently, he
assembles those activities in a certain structure for implementation, called schedule. This schedule
serves as the baseline to estimate the total project duration, assign tasks and track and control the
progress (Heerkens, 2001). So a project by nature is temporary, with definite start and end time.
The source of most project schedules is the critical path method (CPM). This method combines
different activities according to their precedence relationships, and dependencies. Each activity has
predecessors and successors, along with different dependencies like Finish to Start, Start to Start and
Finish to Finish with lag time for each. The total project duration is defined by the critical paths,
which are the paths where accumulation of tasks durations is the longest (Levine, 2002).
Nonetheless, in construction projects, many constraints may affect the schedule. Those constraints are
events and conditions unlisted in the predefined tasks, and for which the schedule needs to be altered.
For instance, the project owner of a ski resort needs it to be operating by early fall season, or a
reinforced concrete supplier misses the delivery date. In most cases, those constrains impose a new
project deadline or reduced duration. In order to meet the deadline, changes must be made to the
schedule of the project. The two main solutions for solving this dilemma are fast-tracking and
crashing, or a combination of both. As each project is unique, the solutions to such situation are
different and must be creative. When fast-tracking, the project manager overlaps tasks which were
initially scheduled linearly, reduces lag times between tasks and splits lengthy tasks into smaller tasks
with the intention of congesting more work into a shorter period. For example, a project needs to be
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October
entirely designed in order to construct it. But when fast-tracking, the project manager will start
constructing a part of the project where he feels that the design is solid, without waiting for the entire
design to be done. This method involves risk that could increase the cost and maybe require a rework.
The other technique is called activity crashing. This technique assumes that a task time can be
downsized by increasing the resources of this task, and subsequently increasing its cost. For example,
if plastering a hundred square meters needs five days for completion; at a labor cost of five hundred
dollars. To complete it in three days, it will cost eight hundred dollars. Crashing a schedule, however,
can be separated into two categories. The first is crashing of a project schedule that has not yet started,
and the second is the crashing of an ongoing project schedule. The general method for both is almost
the same, with minor calculation difference between the two. Hence, to crash a schedule, means to
crash particular activities from it, resulting in an overall reduced project duration but increased project
cost. But then again, the real complication is achieving a maximum reduction in the schedule time,
while having a minimum added cost. Many methods may apply, but all are complicated and time
consuming. Thus in a world where the business environment cannot wait, and the project managers
must take decisions rapidly but rationally, the use of software is a must. Much software implements
the CPM method, like Oracle Primavera, Microsoft Project and others. That software provides a quick
and precise way of analyzing the project schedule. It makes a forward pass to determine the early start
and finish of the activities, then a backward pass to determine the late start and finish of the activities.
Once done, floats are calculated and the critical paths are determined. But the crashing feature is not
present in those scheduling software. Project managers tend to crash projects based on experience or
manually. In both ways, crashing a schedule is a time consuming task, prone to a lot of errors. At this
point, the need for a specific algorithm for crashing a schedule is needed, as well as a preliminary
programmed sample.
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October
The most basic and correct crashing method is the manual method, where activities are crashed on a
day by day basis. This method, although resulting in correct results, is very time consuming and can
create an obstacle for project managers with limited time. The basic information needed to perform
this method are five items, along with the project network diagram. First, the project manager needs to
prepare a list of the activities, with the following attributes for each activity: normal cost, normal
duration, crash cost and crash duration. To determine the normal duration and the crashed duration, he
must determine the budgeted quantity of work as well as the normal rate of productivity and the
maximum rate of productivity. Then, he calculates the durations according to the following formulas
(1) and (2).
ݕݐ݅ݐ݊ܽݑܳ ݀݁ݐ݁݃݀ݑܤ (1)
ܰ= ݊݅ݐܽݎݑܦ ݈ܽ݉ݎ
ܰݕݐ݅ݒ݅ݐܿݑ݀ݎܲ ݂ ݁ݐܴܽ ݈ܽ݉ݎ
ݕݐ݅ݐ݊ܽݑܳ ݀݁ݐ݁݃݀ݑܤ (2)
= ݊݅ݐܽݎݑܦ ݀݁ݏ݄ܽݎܥ
ݕݐ݅ݒ݅ݐܿݑ݀ݎܲ ݂ ݁ݐܴܽ ݉ݑ݉݅ݔܽܯ
Likewise, the project manager needs to calculate the normal cost and crashed cost after determining
the cost of material, equipment and manpower for each (3) and (4).
ܰ ݐݏܥ ݈ܽ݅ݎ݁ݐܽܯ = ݐݏܥ ݈ܽ݉ݎ+ ݐݏܥ ݐ݊݁݉݅ݑݍܧ+ ݐݏܥ ݎ݁ݓ݊ܽܯ (3)
ݐݏܥ ݈ܽ݅ݎ݁ݐܽܯ = ݊݅ݐܽݎݑܦ ݄݀݁ݏܽݎܥ+ ݐݏܥ ݐ݊݁݉݅ݑݍܧ+ ݐݏܥ ݎ݁ݓ݊ܽܯ (4)
Afterwards, the slope is calculated, which is the daily increase in an activity cost. This slope is
calculated using formula 3.1.
ݐݏܥ ݄݀݁ݏܽݎܥെ ܰݐݏܥ ݈ܽ݉ݎ (5)
݈ܵ= ݁
ܰ ݊݅ݐܽݎݑܦ ݈ܽ݉ݎെ ݊݅ݐܽݎݑܦ ݄݀݁ݏܽݎܥ
At this stage, the project manager determines the critical paths, and selects from each path the critical
activity that has the lowest slope, resulting in the lowest cost increase. Those slopes of the selected
activities are then summed up, and compared to the slopes of common activities, or a combination of
common activities and lowest slope activities. Thus, the activities selected to be crashed need to have
the lowest possible project cost increase. After selecting the activities to be crashed, the project
manager will reduce the duration of each of those activities by one unit of time, and increase the
project cost by the sum of their slopes. In that way, the project total duration will be reduced by one
unit of time (i.e. one day). If the project manager wishes to reduce the project duration more, the same
procedure will have to be applied again, until the desired decrease in the total project duration is
achieved.
Furthermore, when crashing the project, a new set of critical paths may emerge and the crashing
procedure needs to take those new critical paths into consideration. On the other hand, when crashing
an ongoing project schedule, the project manager will follow the same instructions discussed above,
but with one major difference. An ongoing schedule has completion percentages for activities, and
therefore the originally schedule durations should be replaced by remaining durations, and the crash
duration shall be multiplied by the remaining percentage till completion, and rounded up. The
completion percentage shall be determined using formula (6), after determining the actual quantity of
work performed.
ݕݐ݅ݐ݊ܽݑܳ ݈ܽݑݐܿܣ (6)
= ݁݃ܽݐ݊݁ܿݎ݁ܲ ݊݅ݐ݈݁݉ܥ × 100
ݕݐ݅ݐ݊ܽݑܳ ݀݁ݐ݁݃݀ݑܤ
4. SYNTHESIS OF RESULTS
Activity Successors
START A, B
A C, D
B D, E
C FINISH
D FINISH
E FINISH
FINISH -
At this point, after determining all the possible paths, the algorithm shall calculate the duration of
each path by summing up the duration of activities in the path. Then, the paths with the longest
duration, called critical paths will be selected and the rest will be discarded. To prune is to clip and
trim the tree from excess branches and leaves. Similarly, the algorithm shall prune the list of critical
paths from redundant activities. First, a check for the availability of enough crashing time should be
done. The activities in the critical paths shall be checked if their crashed time is larger than the
original normal duration in a new project. In an ongoing project, the activities crashed time should be
multiplied by their completion percentage, and rounded up to the nearest integer, and compared to
their remaining duration. If an activity does not have enough crashing time, it will be disregarded in
the crashing process. To do so, a Boolean should be created, taking only 0 or 1, named B1. If the
activity has enough crashing time, the Boolean B1 will be 1, if not it will be 0.
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October
At this stage, the activities shall be checked for the lowest slope activity, by creating a Boolean B2,
initialized to 1. Therefore, in each path, the algorithm will determine the activity having the lowest
slope, and will keep its Boolean B2 value as 1, and change all the other B2 values to 0. Afterwards,
the activities with Boolean B2 value of 0, changed by the lowest slope check, shall be checked for
common activities. The algorithm shall check if the activity is common to more than one critical path.
If yes, the Boolean B2 value will change to 1, if not it will stay as 0. In that way, the common
activities will be kept in the process and will get into the combination generator. As a result of this
pruning method, each activity having a Boolean value of 0 in B1 or B2 will be discarded, and the
activities with both Booleans B1 and B2 set as 1 will be transferred to the Cartesian product
generator.
In this function, a list of sets will be sent to it. The sets contain the activities in each critical path that
have passed the pruning function and hold the two Boolean numbers B1 and B2 as 1. This function
shall generate all the possible combinations from those sets. To do so, the function shall be written as
a recursive function. The sets will be sent to it one by one. Initially, the function will increment an
empty set by the new set. Then, the results will be incremented by the second set, and so on till the
last set. Having determined all the possible combinations, those combinations will be sent to the next
function to determine the activities to be crashed. At this stage, the "Driver" function will take the
combinations from the Cartesian Product Generator and send them to "Can_Crash" function. This
function will sum the slope of each activity in in each combination and will compare this sum, to get
the combination with the lowest sum of slopes. But, when summing the slopes, if an activity is present
more than once in a certain combination, it will only add its slope once. For example, if the set is {C,
A, C, D} the sum of slopes will be: Slope C + Slope A + Slope D. The function will return the
combination with the lowest sum of slopes to the "Driver". The "Driver" will then reduce the normal
or remaining duration of the activity by one unit of time, and will add to the total project cost the sum
of slopes of this combination.
1
(http://www.boost.org/doc/libs/1_49_0/libs/graph/doc/index.html)
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October
Table 2: Example - New Project
First, the network diagram should be built using the CPM method.
START-A-C-G-I-FINISH : 18 days
START-A-C-H-J-FINISH : 18 days
START-B-F-FINISH : 18 days
For crashing this schedule, the critical paths are the only paths that are needed. In the following
figure, the critical paths are thickened.
Now, the slopes must be indicated on the network diagram along with the crashed duration of every
activity. Let the slope be above the node, with the original duration under the node on the left and the
maximum crashed duration under the node to the right.
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October
Figure 3: Critical Paths
Duration taking from each critical path the activity with the lowest slope, it is determined that the
activities G, H and F are taken, with a total sum of 362+868+1841=3071$/day. But it is noticed that
the activity C is common to two paths. Bearing in mind that C is considered for crashing along with
activity F, their sum of slopes is determined to be 955+1841=2796$/day. Therefore, to crash this
schedule by one day, the activities C and F should be crashed each by one day, and the total cost of
the project will increase an amount of $2796. After this, for each additional day to be crashed, the
network diagram should be revised for newly developed critical paths, and the same procedure should
be done, taking into consideration all the possible combinations and calculating their sum of slopes.
For this example, the following are the crashing combinations to consider for maximum crashing of
this schedule:
This example was loaded into the software and crashed within seconds and screenshots are shown in
Figures 6 and 7.
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October
Table 3: Example - Ongoing Project
Original Adjusted
Activity Activity % Remaining Normal Crashed
Crashed Crashed
Name Successor Complete Duration Cost Cost
Duration Duration
START A, B 0 0 0 0 0 0
A C, D 100 0 5000 1 0 10000
B E, F 100 0 6080 2 0 12000
C G, H 100 0 3135 2 0 6000
D J 100 0 1704 4 0 4000
E J 60 2 4000 3 1 8000
F FINISH 50 7 6636 10 5 14000
G I 50 3 876 4 2 1600
H J 50 2 864 2 1 2600
I FINISH 0 5 6615 3 3 14000
J FINISH 0 7 11620 3 3 24000
FINISH 0 0 0 0 0 0
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October
Figure 6: Software Crashing - Ongoing Project
[1] Portny, S. (2010). Project management for dummies.(3rd ed.). Indiana: Wiley Publishing.
[2] Sayles, L.S. (2011). Project management quotes.
[3] Heerkens, G. (2001). Project management. (1st ed.). New York: McGraw-Hill.
[4] Levine, H. (2002). Practical project management – Tips, tactics, and tools. (1st ed.). New York:
John Wiley & Sons.
[5] Lima, M.B.F., Silva, L.B., & Vieira, R.J. (2006). Project crashing and costs laws in the knowledge
age. Symposium conducted at the Third International Conference on Production Research –
Americas’ Region (ICPR-AM06), Curitiba, Parana, Brazil.
[6] Gokhan Celik, B., Cokce Celik, S., & Brunnhoeffer, G.C. (2011, April). Toward a teaching
software application for crashing the schedule: SPETM Beta v.1. Symposium conducted at the
47th ASC Annual International Conference by the Associated Schools of Construction, Omaha
Nebraska, USA.
[7] Brunnhoeffer, G.C. (2010). Crashing the schedule – An algorithmic approach with caveats and
comments.
th
Proceedings of the CIB W78 2012: 29 International Conference –Beirut, Lebanon, 17-19 October