Tips on using this forum..

(1) Explain your problem, don't simply post "This isn't working". What were you doing when you faced the problem? What have you tried to resolve - did you look for a solution using "Search" ? Has it happened just once or several times?

(2) It's also good to get feedback when a solution is found, return to the original post to explain how it was resolved so that more people can also use the results.

Activity code gets reused, when last activities are deleted

17 replies [Last post]
Evgeny Z.
User offline. Last seen 20 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 405
Groups: None

Hi,

I was looking at comparison of different versions of schedule and found one issue, which I would consider a bug, unless I miss something.

Every task in Spider has a code field, which Spider later used to uniquely identify task, when comparing different versions of a project. This code has to be unique, it can be changed by a user, but default goes 1, 2, 3……

The issue is that if user deletes last activities (it only happens with last ones), and then adds new activities, then this code value starts count from the last of the available ones, hence new activities reuses code of deleted ones, which later will create an issue with comparison.

In the example below, one can see, that I have deleted Activity 2, Activity 4, and Activity 5 and then added Activity 6, Activity 7, Activity 8, Activity 9. (note: Activity 9 was added the last one and was inserted after Activity 3)

One can see, that Activity 6 and Activity 7 reuse code of deleted Activity 4 and Activity 5.

This creates problem when comparing final version of  a project with initial one. It will be shown, that Activity 6 and Activity 7 have some previous duration, which is not correct as these are just new activities.

Photobucket

If it is indeed an issue, it is very easy to fix, just Activity default code should always count up and shall never be reused, even if activity has been deleted (Like Unique ID field in Microsoft Project)

Or is there any fault in my logic?

Regards.

Evgeny

Replies

mimoune djouallah
User offline. Last seen 17 weeks 5 days ago. Offline
Joined: 14 Oct 2006
Posts: 388

Evgeny

 

the fact that activity id are user controlled is a must have in our daily workflow, and as pointed by Rafael, once  we start updating the project, and for any reason we want to remove some activities, we just make the duration and buget equal to zero.

If phase code is the same as activity code it does not create any issue.

Phase codes and activity codes are separate objects as phases and activities, resources and materials.

If Spider Project creates the same codes as the codes of some deleted activities and you don't like it assign new code to the first created activity and then Spider will create activities with the following numbers. It is much easier than replacing codes of all created activities manually if you want new activities as replacements for deleted.

Evgeny Z.
User offline. Last seen 20 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 405
Groups: None

Vladimir,

May be it is just me, but I still consider the fact that Spider will re-assign default code of already deleted activity as a bit of an “undesirable undocumented feature”, let us call it like this. This does not cause a problem within the project, but it may cause it, if you one tries to compare the schedule with previous version, as shown in my 1st post.

By the way, I also noticed, that when I use function “Convert to Phase”, Spider creates phase, which has the same code as Activity. May it cause any issue?

Photobucket

Regards.

Evgeny 

I do not expect any problems at all. You just will not be able to recognize an activity by its code.

In Spider Project you may create multiple WBS grouping activities different ways. You have an option to use long names that describe not only what shall be done but also for what object and in what place or put this information into activity code. Even if you do not plan to sort and filter activities by their codes in different WBS you shall understand if an action described by an activity refers to this or some other object (module).

Evgeny Z.
User offline. Last seen 20 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 405
Groups: None

Vladimir, Rafael,

Thank you for your information.

I understand, that having some meaningful activity code has some advantages  (like the ones, described by Rafael). But let us just assume for a moment, that I am not going to make use of these advantages. My question is: what other problems  may I get if I just use the default values, offered by Spider?

Regards.

Evgeny

Rafael Davila
User is online Online
Joined: 1 Mar 2004
Posts: 4804

Evgeny,

In my last posting I showed a sample of how to use activity ID to filter by Area/Building and Work-Type/CSI-Division. It also serves to keep a consistent sort order.

If you do not use activity ID in this way and only get an uncontrolled ID number it would be useless for this purpose, then you would need additional activity code for filtering by Area/Building, additional activity code for filtering by Work-Type/CSI-Division and additional activity code for sorting that makes sense.

If you have 5,000 activities the required additional data items would be 5,000 x 3 = 15,000 additional items that if coded on the activity ID would not be required.

Also when you make a report you do not need to display the 3 additional field columns as the activity ID will be enough for you to know.

Intelligent activity coding makes much sense, lacking the ability for doing what makes sense does not.

Best regards,

Rafael

Evgeny,

of course you can enter and execute the formula Code = Identifier though I still insist on the necessity of intelligent coding.

Coding system, reference-books and fragment library are created first when project management system is implemented.

Evgeny Z.
User offline. Last seen 20 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 405
Groups: None

Vladimir,

Re: “Spider activities also have unique IDs that are not used for comparisons.”

I think I found it, it is called “Identifier”, is it correct? It is indeed never reused within the same file.

Is there a simple way for me to make default Code value to be identical to an identifier ? (just for a time being to work in “MS Project mode”).

Can I set it somewhere in a formula?

Regards.

Evgeny.

P.S.

By the way, I just checked how it is done in Asta. Asta also seem to have structure, similar to Spider, where baselines are saved as a separate file (as an opposite to MSP, where it is saved in the same file). Asta has several Actvity IDs and I am not sure at the moment, what is the meaning of all of them, and which one is used for comparison, but at least in Asta I did not see any surprise, when I performed the test, as described in the 1st post of this discussion.

Photobucket

Rafael Davila
User is online Online
Joined: 1 Mar 2004
Posts: 4804

Rafael, I am not sure I know what you mean, when you say

A user of MSP after inserting new activities will find most activity codes are changed, so it is impossible to track changes among versions using a coding you have control.

I mean "using a coding you have control". In our communications we make reference to activity codes that have some meaning other than kind of a random number, codes that are easy to enter, not codes that have no meaning. We use codes that help us filter data entry box by activity codes, though other codes can be equally useful. Using additional activity codes means these have to be populated, this not always happen while Activity Code is always populated.

For example say you want to assign a new resource to hundreds of activities, say it is a trade member, we go to the resource table, click on the resource and a dialog box will appear for activity selection. If thousands of activities are listed the scolling will be insane, but with filters we can tame it. At times instead of using additional user defined activity codes, the available ID code is enough to make it easier.

The following filter required all records to be populated on a user defined activity code.

Photobucket

The following filter do not required use of a user defined activity code, not to mention populating all records. With the use of activity codes filter such as "Contains BAO-03" was enough to filter for Building A concrete work activities [03 meaning CSI Concrete Division], "Contains 03" would filter for all buildings concrete work activities. With a bit of some discipline you can be more efficient.

Photobucket

Also on a paper report to find the activity line we are looking for sorting by activity codes helps, random coding will not.

These are ways all users of software that give you control on activity codes are used to.

Evgeny,

Spider activities also have unique IDs that are not used for comparisons.

I am not sure that MS Project will assign the same unique IDs to the activity created in different project versions at different time.

Creating a new activity in any Spider version our users assign the codes created in accordance with certain rules. If an activity code is the same it means that an activity is of the same type in the same place of the same object. The chance that it is actually different is low and if it happens coding system shall be approved.

It is not hard to find if an activity code in other version is used by different activity. It is enough just to compare two versions and look at the difference of any data. Just like you did.

Usually people compare different versions of the same project consisting of the same activities but with different dates, durations or costs. Besides Spider may show trends of any parameter analyzing project history.

New versions are usually created after entering new actual data. It is not rare when an activity created in the current version does not exist in previous versions. But it is very rare when an activity existed in the previous versiob disappeared in the future versions. Actually we do not recommend this. If the work planned in the past for some reason is not necessary it makes sense to set that an activity has zero duration and costs. In other case an information that initially we planned something different and allocated resources and costs that became available will be lost.

Evgeny Z.
User offline. Last seen 20 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 405
Groups: None

Vladimir, Rafael,

May be I am looking at it purely from MS Project experience. I understand, that Spider offers big flexibility in naming convention of a Code as well as the fact, that it offers possibility to re-use the code of the previously deleted task (for whatever reason). Having thought of this,  probably also if one wants to maintain 3 versions of a schedule (optimistic, expected and pessimistic) such system is a must  (I still didn’t look at 3 versions of a schedule feature yet)

 But this flexibility seems to be very dangerous without proper control, especially for a new user, especially if one works with big amount of activities and big amount of schedule versions. The very fact that I hit this problem by playing around with 5 activities schedule is a good illustration of this, in my view. 

One of the advantages of Spider is that it may have virtually unlimited amount of schedule versions. Is it really an expectation, that on a schedule of few thousand activities with few dozens of versions, one would go through all of them every time he wants to add a new activity just to check whether the code has been used somewhere else?  

In this case one would expect may be that there should be a proper automatic verification, whether new Activity Code has been used somewhere else in any of the previous versions and then it should be user’s decision to either re-use it or select another one.  So, may be something like what Rafael suggested.

 

When it comes to former MSP users, I would think that it will take them a while, before they start manually modifying Activity code, if they use Spider I personally would prefer the Spider to do it for me, and also to take care that I would not get into problems. I have lots of other things to take care of.

Regards.

Evgeny.

P.S. Rafael, I am not sure I know what you mean, when you say

A user of MSP after inserting new activities will find most activity codes are changed, so it is impossible to track changes among versions using a coding you have control.

In MSP you can rename activity, move it anywhere you want, but MSP will still be able to correctly track it and will use it for comparison with the correct task of a baseline or of  the previous version of a file. This is because Unique ID of the activity never changes. What it doesn’t offer – possibility to re-use already used but deleted Unique ID. However I am not sure, that the need for this is that great.

Evgeny,

keeping all codes unique will create more problems than save time. If you created an activity by error and then deleted you will get a hole in the sequential codes that are assigned and will manually change them each time new activity is entered.

I will describe the usual way people create models in Spider Project:

1. Create WBS and select repetitive work packages.

2. Describe these work packages as a separate projects (fragments).

3. Replace repetitive work packages with created fragments. When replacing Spider asks what to do with the fragment activities durations, volumes, and codes.

The user may enter that in the WBS work package the volumes of work are two times larger than in the selected fragment and all volumes and durations of the fragment activities will be multiplied by 2 except those activities that are not scalable.

Besides, the user may request to add certain suffices and/or prefixes to activity codes. This way silly 1, 2 , 3 will become something reasonable and will reflect that activities belong to the certain work package. But even in a fragment we do not suggest to use 1, 2, 3 but some abbreviated indicators of the work type that shall be easy to understand.

Spider codes are not restricted but we advice to use some rules like first three digits for the object code, next three digits for the area code of this object (work package), next three digits for the type of work, next two digits for the number of the work of certain type in certain area of certain object. All these prefixes are added automatically when the user creates a model bottom up.

This is just an example. A coding system is created for projects and companies basing on their unique requirements.

Creating a library of typical fragments is a core task of implementing corporate project management system. With ready to use library creating new project model is easy and fast - just create WBS, replace work packages with adjusted fragments and link activities of different work packages. And of course follow corporate rules for creating activity codes (prefixes and suffices).

Best Regards,

Vladimir

Rafael Davila
User is online Online
Joined: 1 Mar 2004
Posts: 4804

I like the software to do the dirty work when no user intervention is required, for activity codes, my experience using the more versatile coding of all software except MSP usually requires some user intervention.

I have found that even the ability of some software to define numerical increments is very frequently not good enough, a convenience that at times work but at times does not.

When I was a SureTrak user I would use codes like 3010, 3020, 3030 ... in order to leave room for future activities without using too long codes, the available 9 digits in between was usually not enough. This was solved by adding a decimal point in our codes or preferably a letter suffix to identify on the spot added activities. No matter how many code inserting options you add such as increments before suffix, increments after prefix or any other you can think of they will never be enough. Each of us have our own preferences, we need versatility, not functionalities that limit our options.

Most of us want to keep control of Activity codes and even be able to duplicate previously deleted activity codes. We consider this is a must at initial schedule development. I have found this is sometimes difficult to understand by MSP users as they have no control at all while users of all other available software are used to take control, it is a desirable functionality.

A user of MSP after inserting new activities will find most activity codes are changed, so it is impossible to track changes among versions using a coding you have control, it is a mess and use of unique activity code as implemented in MSP will not be enough for many of us. We not only use numbers but also letters in our activity codes. Use of prefix and suffix on activity codes is common among us, this help sorting and filtering on many screens as well as data entry selection box.

You said, "But in any case, if the tool would avoid reusing of a code at least within the same file, this would be a good and easy thing to start with, I think."

You are still overlooking for the need for the user to be able to reuse codes, a warning that will give you the option to reuse deleted codes can be obstrusive. If such warning can be toggled on and off then it might work. A list of codes not to be reused that can be set at will (on/off) to automatically add codes when user desires, that will allow the user to directly add and delete codes of his choosing. Perhaps the list can consist of unique codes as well as codes within a numeric range. A data entry validation always under the user control.

I believe user intervention might be reduced but shall not be automated to the point you also eliminate much needed options.

Evgeny Z.
User offline. Last seen 20 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 405
Groups: None

Vladimir,

I must say didn’t think of a requirement to maintain uniqueness of a newly added Activity code across the whole pool of versions of a project, even though I don’t think it is that difficult to implement either, provided all versions of a project are available in a project repository.

But in any case, if the tool would avoid reusing of a code at least within the same file, this would be a good and easy thing to start with, I think.

I understand, that default Activity code is advised to be changed manually, but I think the general rule for any software is that default value, offered by a tool, should be good enough and should take care of avoiding problems.

Rafael,

RE

When you delete an activity you want to keep on record their Code or ID so it is not duplicated do the following.

  • Before deleting the activity copy the code into the clipboard.
  • Delete the Activity
  • Create a Dummy Milestone, without links nor resource or cost data.
  • Paste the deleted activity code into the new Dummy code and exclude it from structure of your regular use WBS so it will not be displayed.

In this way you will be able to see and edit all your dummy activities on the Main WBS while keeping them out of view on the other WBS dictionaries you do not want them.

In one of your posts, you said : “Computers are here to help....Allow the software to do the dirty work for you.”, so why not letting the Spider to do the dirty job of avoiding code re-usage? I am sure, everything (or almost everything) Spider or any othet SW does is possible to do just using pen and paper (just to remind, that people built Egypt pyramids without any software), the question is how much time and effort it will take. The software is needed to make life easier, not more difficult.

 

Regards.

Evgeny

Rafael Davila
User is online Online
Joined: 1 Mar 2004
Posts: 4804

Definitively users shall be able to control activity codes, this is a function available in most software. It is a function not available in Microsoft Project that many for decades have been requesting. Some consider it a nuisance, I consider it a  MSP BUG. It is insane how MSP does not allow the user to take control on activity codes, as soon as you insert a new activity it all becomes a mess.

I agree with Vladimir on his approach, the one most of us use, but Spider can provide you for other ways of preventing code duplicates. If you want Spider to remember a code of your choosing as not available just use the Main WBS to record all activities as well as Dummy Milestones you will create for this purpose. Use all other WBS for regular use while the Main will always be available for you to edit the Dummy Milestones.

When you delete an activity you want to keep on record their Code or ID so it is not duplicated do the following.

  1. Before deleting the activity copy the code into the clipboard.
  2. Delete the Activity
  3. Create a Dummy Milestone, without links nor resource or cost data.
  4. Paste the deleted activity code into the new Dummy code and exclude it from structure of your regular use WBS so it will not be displayed.

In this way you will be able to see and edit all your dummy activities on the Main WBS while keeping them out of view on the other WBS dictionaries you do not want them.

In this way you will have the control on activity codes not available in Microsoft Project [a functional BUG] and you will be able to prevent duplicate codes of your choosing, something not possible in most other software. Preventing codes of your choosing means it is you who takes control, not the software, at any time you shall still be able to edit your choosing.

Spider is very powerful, it allows you to do things you cannot do with other software. With a bit of thinking you can figure out how to deal with such issues in ways not possible with other software. After my initial posting it took me no less than 10 minutes to figure it out, just a bit of thinking.

We suggest our users to create certain system for activity and resource coding and use it. Codes like 1, 2, 3 does not make sense/ And any other default codes also. To make default code unique is not a problem but still it can be changed manually and the problem will still exist if no system will be applied.

Activity code shall show at least a type of work and a place of work. Additional user defined fields may be created for activity filtering , grouping and creating other WBS.

We do not consider creating the same codes as in other project versions as bugs. In any case these initial codes shall be changed and in the current project schedule all codes are unique. New versions may be created from the some original version for what if analysis. If another version was created from the same project model it just cannot remember what was done in different scenario and maybe by another user. So the problem will still exist even if any version will remember the history of creating new activities. The only right way is applying coding system and checking the schedules comparing them.

Rafael Davila
User is online Online
Joined: 1 Mar 2004
Posts: 4804

The issue of automatic duplicated codes can be fixed, just Activity default code should always count up and shall never be automatically reused, even if activity has been deleted. But the deleted code shall be available for manual reuse after the software warns you it was previously used.

Spider has an Identifier field similar to unique code or id available in other software but users want to have control on id coding for many reasons. Once you delete an activity all scheduling software will allow you to use the deleted activity code or ID, they allow you to have control on activity codes as long as not currently duplicated.

For finished as well as for started but not finished activities you shall never delete historical data, therefore its code will never be available for reuse.

For unstarted activities to be "deleted" one work around to handle this is to inactivate the activities by changing activities to milestones and delete their resource and cost assignments plus making them not visible in the WBS codes you use for regular scheduling tasks, in this way the software will not allow you to use these codes. Of course logic shall be revised as dissolve function available in many other software many times yield wrong logic, wrong lag values and wrong lag calendars, it is not that simple and misled you to the believe it is a sure fix.

You shall not delete activities but inactivate them once the job is ongoing, you shall only delete activities and reuse codes at the development stage. After the development stage reuse of old activity codes shall be available for restoring deleted activities you want back and for other fixes. Your schedule report shall list all inactivated activities for transparency.

Dissolve function shall be banned, delete shall be used at the development stage and perhaps an "inactivate activity' function shall be available, so that all original record of the activity is kept, not deleted nor used. Even links data shall be retained but inactivated. This function shall allow you to see original activity type. Maybe after a schedule is approved a lock function shall prevent you from inadvertently deleting activities but only to inactivate them.

These are just ideas as a response of your posting and shall be debated.