Expand my Community achievements bar.

At Last! A Project View that tracks Percent Complete by Phase

Avatar

Community Advisor

As below, noting (spoiler alert) that this post does require some textmode dark magic, I'd like to share this Project View I invented today, which -- along with being well suited to Projects with a key target date in the middle of the workplan -- automatically tracks Percent Complete by Phase, which is a Sasquatch I've been searching for quite some time now. The screenshot below shows what it looks like, and after that (as examples), I've included the text mode for a key date column and its related Milestone Task's Percent Complete.

Using these same components, I also have devised a way to monitor the variance of the Planned Dates on the Milestone Tasks against their Project Level targets in a graphical fashion. If anyone's interested in learning more about that concept (which is also pretty advanced), please drop me a note here, or at doug.denhoed@atappstore.com.

Regards,

Doug

The Sasquatch:0690z000008KcjPAAS.png

Key Date Column:

displayname=P1.0 (T-24m)

linkedname=direct

namekey=Phase 1.0 Initiation T-24 Months

querysort=DE:Phase 1.0 Initiation T-24 Months

styledef.case.0.comparison.icon=false

styledef.case.0.comparison.leftmethod=DE:Phase 1.0 Initiation T-24 Months

styledef.case.0.comparison.lefttext=DE:Phase 1.0 Initiation T-24 Months

styledef.case.0.comparison.operator=lt

styledef.case.0.comparison.operatortype=date

styledef.case.0.comparison.righttext=$$TODAY

styledef.case.0.comparison.trueproperty.0.name=bgcolor

styledef.case.0.comparison.trueproperty.0.value=e8e8e8

styledef.case.0.comparison.truetext=

styledef.case.1.comparison.icon=false

styledef.case.1.comparison.leftmethod=DE:Phase 1.0 Initiation T-24 Months

styledef.case.1.comparison.lefttext=DE:Phase 1.0 Initiation T-24 Months

styledef.case.1.comparison.operator=between

styledef.case.1.comparison.operatortype=date

styledef.case.1.comparison.righttext=$$TODAY

styledef.case.1.comparison.righttextrange=$$TODAY+30d

styledef.case.1.comparison.trueproperty.0.name=bgcolor

styledef.case.1.comparison.trueproperty.0.value=feecc8

styledef.case.1.comparison.truetext=

valuefield=Phase 1.0 Initiation T-24 Months

valueformat=customDateAsMediumDateString

Milestone Task's Percent Complete:

displayname=%

listdelimiter=‍

listmethod=nested(tasks).lists

listsort=nested(tasks).string(name)

querysort=tasks.name

styledef.case.0.comparison.icon=false

styledef.case.0.comparison.leftmethod=DE:Phase 1.0 Initiation T-24 Months

styledef.case.0.comparison.lefttext=DE:Phase 1.0 Initiation T-24 Months

styledef.case.0.comparison.operator=lt

styledef.case.0.comparison.operatortype=date

styledef.case.0.comparison.righttext=$$TODAY

styledef.case.0.comparison.trueproperty.0.name=bgcolor

styledef.case.0.comparison.trueproperty.0.value=e8e8e8

styledef.case.0.comparison.truetext=

styledef.case.1.comparison.icon=false

styledef.case.1.comparison.leftmethod=DE:Phase 1.0 Initiation T-24 Months

styledef.case.1.comparison.lefttext=DE:Phase 1.0 Initiation T-24 Months

styledef.case.1.comparison.operator=between

styledef.case.1.comparison.operatortype=date

styledef.case.1.comparison.righttext=$$TODAY

styledef.case.1.comparison.righttextrange=$$TODAY+30d

styledef.case.1.comparison.trueproperty.0.name=bgcolor

styledef.case.1.comparison.trueproperty.0.value=feecc8

styledef.case.1.comparison.truetext=

textmode=true

type=iterate

valueexpression=IF({milestone}.{name}="1.0 T-24 Months Phase 1.0 Initiation",{percentComplete},'')

valueformat=HTML

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

9 Replies

Avatar

Community Advisor

Well, two days later and I'm still in love with this view. I think we're going to go steady.

I added another whistle to go with the bells on it, as below.

Now: for bragging rights, can anyone think of an out of the box way (i.e. no API; I've cornered that cheat market) to make the Project Level Custom Date fields show in red if their corresponding Milestone Task is not complete by that date?

Regards,

Doug0690z000008KcjZAAS.png

Avatar

Level 10

That's very cool Doug!

Regarding your challenge at the end, obviously it is possible to do a FIELD: comparison within the same object type. I presume it is not possible to create a calculated field on the project which filters through the collection to retrieve the Actual Completion Date of a specific milestone? If you could do that, then you could do the comparison of the two dates at the project level (one calculated from the outage date and one from the milestone)? I haven't got time at this second to have a play and test this, but that's the approach I would take to try...

Cheers

Avatar

Community Advisor

Thanks David,

Yes, precisely: having wandered the same logical sidestreets, we now stand together facing reality's red brick wall, mulling over a way to think diagonalley.

Regards,

Doug

Avatar

Community Advisor

Oh my gosh! @David Cornwell! I just found the secret red brick!

It's 10:30 pm in Calgary, and the sun's just set (thanks for loaning it to us again this year, and take heart: your days are getting longer) so I will park it for tonight, but send a screenshot and the incantation soon -- just wanted to share the good news.

And for full disclosure: it's a cheat. But a really good one.

Regards,

Doug

Avatar

Level 10

Well done @Doug Den Hoed - AtAppStore ! Looking forward to reading the solution. :)

The sun's still up for us in Melbourne at the moment, but only just (and it's coming up to 3pm). ‚It never seems to get fully light at this time of year....but as you say, the days are gradually getting longer again!

Avatar

Level 10
Can't wait to hear the end of this story.... @David Cornwell , I would love to pass some of this Texas sun your way...it been bright and hot and we're not even to August yet! Thanks to both of your for all of your contributions (both technical and humorous)! :) Admin Kelly-Wehrmann SSFCU

Avatar

Community Advisor

Wish granted, @Admin Kelly-Wehrmann‚: the secret red brick chapter (and associated cheat) is as below.

What cleared my conscience was the realization that a user will have 30 days notice (in yellow) that an upcoming key date has come into range. So when the date passes and it turns purple, if there's still a problem (e.g. the underlying Tasks are not yet 100% complete), call it what it is: Red. And it then will and should stay that way until the underlying Tasks are completed, at which time it's trivial (and deeply satisfying) to at last remove the Red. And the later in the game it goes, the "longer" the Red, psychologically drawing us to the items that require attention.

Crude, but effective: call me old school, but I like it when humans still get to make the call (SkyNet: I'm looking at you.)

Many, many, ideas from here swirling around, but I think we've crested the hill.

Thank you all for reading: I just love this stuff.

Regards,

Doug

The Secret Red Brick:0690z000008Krw0AAC.png

The Cheat:0690z000008Krw4AAC.png

Avatar

Level 10
Looks good Doug! I know the whole goal was to find an out-of-the-box solution, but I reckon if I were to implement this, I would build something via the API to automate it because I tend to trust humans even less than computers :) David Cornwell

Avatar

Community Advisor

Hi Folks,

For those of you following this advanced topic, I'm pleased to present The Other Charts to which I alluded in my original post. Here's an excerpt from an email I just sent to the head of the Center of Excellence PMO with whom I'm working, along with a screenshot to illustrate the concepts:

Hi Jeff,

Exactly! In the long term, I think that the Crosscheck reports on the dashboard will be one of the most intuitive and useful aspects of what we've designed for GT CoE. In short

  • Each of the reports represents one of the key milestones dates (e.g. T-24 months, T-6 months, Outage Start, etc.)
  • When a Project is initially created (after just a smidgen of "fussing" the dates for weekends and holidays), its associated bar on each of those charts would typically be zero
  • Zero is Good: it means that the underlying appropriate Planned Dates ("Completion" for those prior to the Outage, and "Start" for those afterwards) Task dates match their expected values as calculated at the Project level (on the Additional Information custom data form; e.g. T-24, T-6, Outage Start, etc.)
  • Over time, as delays occur, the Tasks on the work plan need some updates to reflect reality (e.g. Parts delay, reschedule a review meeting, etc.)
  • The instant those Tasks are modified, the associated bar(s) on the Crosscheck report will "grow", giving the viewer a tactile, proportional view into what that change means, as far as the original intended commitments are concerned
  • Practically speaking, the team's response, then, should be to manage and minimize those bars (e.g. by compressing other Tasks) back into tolerance
  • Given the hierarchical structure of the Templates, the most prudent approach (when possible) is to tackle the earlier milestone's bars, which ‚Äì given the dependencies ‚Äì will likely also trickle forward and reduce other milestone gaps later in the process

In my opinion, this is management by exception at its finest: from a continuous improvement perspective, I can see setting annual targets and variance allowances on each of these Crosschecks, and an enormous amount of related value from the insights they provide

I invite you to steal these concepts for your own purposes.

Regards,

Doug

0690z000008Krw9AAC.png