This post is the first in a series of questions that were brought up at the APM PMO SIG conference in October 2015
In the future will status reports be tweeted?
The immediate gut feeling is no, but that is based on the openness of Twitter, rather than the concept behind it.
If you think for a bit longer about this and ask yourself a question why not, then you come up with a different answer, or at least a different reason, I am going to go with ‘sort of’
What do I mean by that? Well I don’t think that any company is going to use Twitter to announce to the world that there project is going on, let alone the status. However one of the things that Twitter brings is brevity. How many people have seen the reports that go up to the executive board within the company? They are normally presented via PowerPoint, which gives enough room for about 140 characters worth of text to say what is going on in the project at that point. Compare that with some progress reports I have read which take over half of a page of A3 not to say anything. Which one is easier to read?
I like the idea to using #tags to denote what is going on with the project. A series of tags such as #deadlock or #breakthough or #hardwork or #signoff may tell the person reading the project more about the project than 140 words may do.
Although I like the brevity that tweeting could bring, where I think the problem comes is the politics. If you were to tweet, even in a closed group, the status of the project and the first thing that a senior manager reads is #broken then you will have problems as the senior manager comes into ‘help’ and suddenly you are distracted from running to project to sort out what the senior manager wants. Or you have the issue that the senior manager hasn’t read their Twitter feed, but one of their colleagues has. This means that senior manager then feels on the back foot and wants to know why the project hasn’t told them first.
In answer to the question I don’t think that you can tweet progress, but you can apply some of the techniques into your progress reporting. Perhaps this is one way of transitioning new project managers into the profession. By getting some new techniques into an age old problem.
It would be good to hear your thoughts.
It has been a while since the APM PMO SIG put on a conference and I was keen to see what the new committee could deliver. When I arrived the first difference was obvious, they had some stands in the entrance hall, which I must admit I didn’t see in previous conferences. However they had a reasonable range, and as a nice touch they had a person taking professional headshot photos. This was definitely oversubscribed, and was the hit of the whole stands available, even if they queue was the longest of them all.
As for the conference, it took as its theme the social PMO and was split into 2 parts. The morning was made up of the normal conference fare of presentations, but the afternoon split into individual sessions where you could go into more detail on a particular subject.
The first part of the morning was hit with a few technical problems, as they prepared podcasts had not sound, this was resolved after lunch. This meant that it didn’t start with the wow that they were aiming for.
I thought it interesting that the majority of speakers in the morning weren’t PMO practioners, this is quite telling as it means that being social is something that isn’t mainstream yet. In fact speaking to a few of the people at the afternoon sessions they confirmed that fact as the use of social tools e.g. Yammer were either Unknown, frowned upon, or only just introduced. Maybe if we come back in a couple of years then this would be more common.
The other interesting thing for the day was the confusion between being social and social tools. It became easy to confuse socialising and talking to people with the use of a tool such as Twitter, trello, yammer etc. So although PMOs may not be using tools we are socialising the project as we do get involved with stakeholders at all levels. We are also using tools already such as progress reporting and meetings (although perhaps meetings could be described as a technique)
The day finished off with a presentation from Dr Eddie Obeng, who was just the right person to finish off a day, being informative, entertaining and interactive; at one point reducing the entire audience to laughter. Who said PMOs were boring?
Overall my thoughts were that it was a good conference. The mechanics and organisation could have been better e.g. People to sign you in, working technology, smoother transitions between presenters. I don’t remember it being that chaotic in the past few years.
I thought the subject was a difficult one as it was leading edge, which what I expect the PMO SIG to deliver, to get me thinking how I can do different things or things differently.
I am looking forward to see what happens at the next one. Let’s hope it doesn’t take another 18 months to deliver.
Every so often you want to do something so simple, and the software seems to stand in the way.
Microsoft Project seems to be the default scheduler nowadays. It has the same ease of use as the rest of the Office suite. In fact someone described it to me as just like Excel. So if it like Excel, why can’t it do conditional formatting? I am not after complex stuff, but the very simple stuff. In particular I was looking to highlight a BRAG status (That’s Blue, Red, Amber, Green just in case you were asking) so that as well as the letter you got a shaded background. After all you could do the shading, and yes I know it could do little indicators, but I wanted to colour in the background.
As i couldn’t find this easily I turned to the internet for help, after all it all seems to be out there somewhere if you know how to ask the question. However as much as I tried I couldn’t find the answer. Hence the reason for this blog, as I managed to find an answer and I thought others may want to take what I have done and extend this into other areas.
In order to do this I needed to write some MS Project Macros, 4 to be precise. The first ones I wrote were some trigger macros MS Project helpfully provides some functionality that runs when an event happens. What I wanted was something that ran after a task has been updated. Unfortunately, that didn’t exist so I had to cheat. I wrote one macro which ran just before a task was updated and remembered which line had changed. I then wrote a macro which ran when the cursor moved to another field. The second macro then moved the cursor back to original field, and depending on the current value of the field (BRAG) coloured in the background of the cell. It then moved the cursor back to where it had come from, so that the user (me) didn’t get upset that the cursor was in a different position.
Having created these 2 macros, I then needed to be able to run the macros. Following some guidance from the internet I wrote a macro which would allow those to run on a given project. That was great. However it meant that whenever I opened a new MS Project file I needed to remember to run the macro, so I wrote a final macro which was an Auto_Open macro, which runs when the file is opened, so therefore whenever the file with the macro in opened it would also run the conditional formatting macro.
And for one final step I put all 4 modules into he Global.MPT file, which means that whenever MS Project opens my conditional formatting macro will open and will run on the current project.
The bit I know you are wanting is what code did he write, and more importantly which module did he put it in so I can get this to work for me. So here are some step by step instructions. Do note that I had the BRAG status in Text1, which is why you will see the reference to Text1 below. If you are using a different field then you will need to change the code below.
As it stands the macro assumes that only one cell is changed at a time. It doesn’t handle the values in Text1 being dragged down with the mouse. I am sure that someone could take what has been done here and expand this. If they do, lets hope they add a comment below so that this can be expanded and be really useful. It also doesn’t work too well if you have collapsed a few summary tasks and then you select (using the mouse) a cell that is above the one that is being updated. It also throws an error if you select a task which is beyond the list of IDs in the project plan i.e. if you go up to row 10 and then you select a blank space beyond row 10 it will error as it doesn’t know the ID of the row you have gone to, because there isn’t one.
- Open MS Project
- Create a Class Module
- Rename the Class Module ‘EventHandlers’ (without the quotes)
- Create 2 declarations
Public WithEvents App As Application Public WithEvents Proj As Project
- From here you can then create 2 handlers which will allow you to do the necessary changes. The first handler checks for a task being changed. This will allow you to remember which task has changed. The second handler checks when the cursor has moved into another cell.
- The first handler example will be:
Private Sub App_ProjectBeforeTaskChange(ByVal tsk As MSProject.Task, _ ByVal Field As PjField, ByVal NewVal As Variant, Cancel As Boolean) Dim MyField As Long MyField = FieldNameToFieldConstant("Text1", pjTask) If Field = MyField Then TaskID = tsk.ID Else TaskID = 0 End If End Sub
- If the cell that is about to change is Text1, then remember the ID that has changed
- Note: you can’t make the colour change in this handler as this is checking before something is changed rather than afterwards. This is why you need the second handler
- The second handler example is:
Private Sub App_WindowSelectionChange(ByVal Wndw As MSProject.Window, _ ByVal sel As MSProject.Selection, ByVal selType) Dim CurrentID As Long Dim CurrentCol As String If TaskID > 0 Then CurrentID = sel.Tasks.Item(1).ID CurrentCol = sel.FieldNameList(1) SelectTaskField Row:=TaskID - CurrentID, Column:="Text1", RowRelative:=True RAGStatus = ActiveCell.Text Select Case RAGStatus Case "B" Font32Ex CellColor:=RGB(91, 155, 213), Color:=RGB(0, 0, 0), Bold:=False Case "G" Font32Ex CellColor:=RGB(146, 208, 80), Color:=RGB(0, 0, 0), Bold:=False Case "R" Font32Ex CellColor:=RGB(255, 0, 0), Color:=RGB(0, 0, 0), Bold:=False Case "A" Font32Ex CellColor:=RGB(255, 192, 0), Color:=RGB(0, 0, 0), Bold:=False End Select SelectTaskField Row:=CurrentID - TaskID, Column:=CurrentCol, RowRelative:=True TaskID = 0 RAGStatus = "" End If End Sub
- This checks to see if there is anything that needs updating – this is the TaskID>0. If there was something that has changed the other handler sets the TaskID to be ID of the task that was changed. If there was nothing changed the TaskID is reset to be zero. This ensures that the macro doesn’t check anything it doesn’t need to
- It then remembers the ID and the field that is currently selected
- It then goes back to the cell that changed and picks up the value of the cell. You can’t use the absolute reference, because if there have been tasks which have been rolled up it moves the cursor to the wrong point
- Depending on the value of the cell it then sets the foreground colour to blank, makes the font not bold and colours in the background of the cell
- It then returns to the cell that we moved to, again using a relative reference to cope with the fact there may be rows that have been hidden. If you use an absolute reference it moved the cursor somewhere other than what had previously been selected
- Finally it resets the TaskID and RAGStatus values to ensure that it doesn’t loop indefinitely
- Having created a class module, how does it actually run, as you can’t see it from the macros menu. You therefore need to create an ordinary module.
- This new module is where the macro will be run from. This needs a few declarations:
Dim X As New EventHandlers Public TaskID As Long< Public RAGStatus As String
- The first one of these is needed to initialise the class module. Note how it has the same name as the class module.
- The second 2 are declared as public because they are used in the class module and we need to remember them all the time the class module is running
- In order to initialise the class module we need another macro:
Sub Initialize_App() Set X.App = MSProject.Application Set X.Proj = Application.ActiveProject End Sub
- This one means that the class module will work. As we declared X about as an Eventhandler, this means that the macros in the class module will now apply to the active project
- Of course what would be really good at this stage is if we could run this everytime
- In order to do this you need to create a new macro called Auto_Open which will run every time the project sheet is opened
- This simply needs to run the Initialize_App that we created earlier
Sub auto_open() Call Initialize_App End Sub
- This means that the macro will run and if Text1 is changed then it will colour the cell in.
I am hoping that this will be useful to people, I know I could have done with this when I was looking to do this
I am prompted to write this following a few discussions I have seen and contributed to over the past month. It was initially the discussion on Linked In about the value of the PDF CV (apparently from a recruiter’s point of view it’s terrible). Then at the PMO flashmob I was handed a different style business card, which just had PMO on one side, and the person’s details on the other. I then saw the write-up from that flashmob. All of this tumbled around a bit and it got me thinking where are we?
How recruiters see CVs
Chatting to Lindsay Scott from Arras People it was clear that she (as a recruiter) sees things differently from the rest of the people who I spoke to about a CV. In order for the recruiter to see your CV (which is obviously great), then a keyword search is done, so if you don’t have the correct combination of keywords then you aren’t going to appear in the short(er) list that is going to be presented to the recruiter.
Only once you have passed the keyword test, which by the way is done against a database and not your CV will someone then actually look at your CV.
How candidates want CVs to appear
You (like me) have probably spent hours poring over your CV, making sure that aligns to the keywords that are in the job advert. Making sure not only the spelling, but the grammar is perfect. Therefore when you send your CV it is so sparkling everyone is dazzled and therefore it must be the one that is read, and everything else is ignored. You get an immediate pass into the interview round, because it is so obviously you are made for the role.
Reading a CV
I have spent some time reading CVs when I have wanted to recruit. The first thing to say is that I read a CV for a contract role differently from a CV for a permanent role. Why? Well put simply the contract person is one I want to come in and be able to start the job first day. Whereas the permanent person I want to see an element of where they are going to be, what will be their future in the organization? So yes, even at CV reading stage I am looking at career development.
There are other things I look at regarding career history, looking for length of contracts, renewals, drive and ambition as well as technical skills. If I am then interested in them I may do some research on Linked In to find out a bit more about them. I typically get a second opinion as well. This is normally done by getting the other person to read the CVs and then we compare notes, so as not to influence the other person. To ensure a level playing field I try and sort them in surname order as well.
A new generation of CVs?
As we all seem to want different things from a CV, perhaps this is the wrong format. We are using something that is paper based (what ever happened to that electronic office?). Perhaps we should start to go the HTML route (for those non technical think of it as a web page). This would then allow the recruiters to be happy as we could all stuff our web pages with those wonderful META tags which have all of the buzz words. We can get the fancy formatting that the person writing the CV wants. We can even get a nice picture included as well. It then means that the format is contained. If the recruiter then wants to put their contact details as a header & footer, then all they need to do is to put a frame around the CV content and put their information at the top & bottom. For those people who like paper, as it allows it to be scrawled on and the o’s and a’s coloured in during a dull meeting moment, you can print the pages as well.
Hang on a minute though …… this sounds like I have just described linked in? If we have that, then remind me, why do we all have a CV and a business card?