Monday, 28 June 2010

Yo-Yo Project Risk

Just as I thought things were beginning to go smoothly, the issue of server access reared its ugly head again. What can I say? This risk, which periodically manifests itself as an issue is like a Yo-Yo.

The time has come for me to upload the simulation code onto a server for hardcore experimentation. Talking the process through with the supervisory team, it transpires that although technically the server provided by my previous University is sufficient for experimentation, it will be overly cumbersome and fiddly to use. The scheduled updating of the hardware is not for a few weeks, and therefore I can either upload my code now and try my luck or wait for the upgrade.

Not again! I feel like last chance saloon, is quickly coming into view.

The third and final option is to try and gain access at my current University to servers back in Biology. Luckily, I know the Biology Sys Admin pretty well from my time on the masters degree, so will hopefully be able to facilitate such a request. People are very protective of server access at this University, so I'm hoping the power of the network, and indeed my people skills will pay off. As the saying goes, "it's not what you know, but, who you know".

Fingers crossed.

Friday, 25 June 2010

I Should be Shot

OK, I need to be retrained as a Project Manager. It's amazing how forgetful you become either in old age, or through lack of practice. Some say Project Management is as easy as 'riding a bike', I believe a more appropriate quote is 'use it or lose it' - I have definitely lost it today!

Quick test for you. Aside from mobilising a team and planning, what is one of the most important activities performed by a project manager during the early stages of an elaboration phase, i.e. after close of the initiation phase, sign-off of budget, contracts, PID, etc? I'd be forgiven for suggesting confirmation of requirements right? Well, in the spirit of planning, gaining domain knowledge by immersing myself in the scientific literature, and racing to begin implementation (i.e. actually writing code), I forgot this most basic of PM activities.

The progress meeting today started off fairly uneventful. I conveyed appreciation for all the time provided by the PhD student and PostDoc, sometimes at the drop of a hat, and also relayed briefly my progress and thoughts on next steps. It was at this point that I became aware that what I thought was THE project requirement, was in fact the icing on the cake requirement, and that in order to get there I had to progress through a couple of prerequisites first. I should be shot! It's amazing that bread and butter competencies that you live and breath everyday can be forgotten in a split second when you change careers - what a school buy error on my part.

This isn't earth shattering, however, it soon transpired that the total requirements will in all probability require longer to develop and test than remains on the project. A swift resetting of expectations was performed, and a certain degree of embarrassment was felt, but nothing too serious. I can feel another replan coming along - this is beginning to be my mantra!

The two prerequisite experiments were requested by the immunologist over in San Diego, therefore as long as these can be performed before the trip out there, I will have something to demo and feel as if I've earned my trip. As for the considerable reading around the subject area that I 'wrongly' perceived to be the requirement, well, that won't go to waste, but in fact can be recycled into 'Future Work' within the conclusion and discussion section of my project report.

Wow. This project is lining itself up to be quite a roller coaster ride. Still loving every minute though!

Tuesday, 22 June 2010

Code Walkthrough

I'm now nearly half-way through my summer placement. The reverse engineering of code is progressing, but not nearly quickly enough for my ambitious schedule. I have seen the early signs of slippage, and with the recent serendipitous invitation to San Diego necessitating a more aggressive delivery of outputs, I need to resolve this fast.

The quickest way to understand code that someone else has written is to perform a code walkthrough. I've been hesitant of approaching the PhD student for help as I appreciate he has his own demanding schedule right now, and a multitude of activities to juggle - commence doctoral thesis write-up, complete final experimentation, write Post Doc grant proposals, apply for Departmental extension money, write that elusive first journal article. Nevertheless, if I was to remain on track, I'd need a little help from a friend.

I think he could see the frustration brewing in my eyes and kindly agreed to help. The exercise was only intended to be an hour, but once the code walkthrough began, it was like opening Pandora's Box and a cascade of tricky code surfaced. Time flew by with animated discussions on why code was written in X way instead of Y way, and also referenced the underlying Biology involved with the system, and any abstractions/assumptions built in to the simulation due to lack of firm Biological understanding - the disease in question was first discovered in the mid-1800's and we still do not understand how it actually manifests itself in humans, so a little artistic licence in the simulation is surely acceptable! Two and a half hours later the walkthrough, which had then manifested itself into an impromptu demo of the simulation through the graphical user interface (GUI) was done.

My understanding had increased exponentially during the morning, and I must confess to feeling that I'm back on track with the schedule. The UML diagrams that I've generated as part of the reverse engineering process to understand the code were great to convey interactions, sequences and activities of code modules, but couldn't fully come to life until I'd received a little help. Implementation against schedule now seems much more promising.

Now it's time to design code amendments and actually start building an updated simulator.

Friday, 18 June 2010

Gift from the Gods

A requirement of the summer placement is that we return monthly progress reports to the Department of Biology's project executive committee (PEC) for the masters degree. The reports provide a way for the students to document progress, and raise concerns (both professional and pastoral) back to base.

I documented the saga regarding the provision of useable PC in my first monthly report. It appears that during the PEC review this was picked up and looked on favourably for partial reimbursement of expenses. The Department allocates a notional expense provision for each student on the course for the purpose of travel to their summer placement destination. As I engineered a summer placement within a different Department at the same University, my provision was not drawn down. Due to the exceptional circumstances surrounding my lack of access in a timely manner to useable hardware, Biology offered to partially reimburse the Apple MacBook.

What a very fortunate and unexpected turn of events.

Monday, 14 June 2010

Opportunity Knocks

The PhD student which I am assisting through this masters project has close contact with a subject matter expert (SME; an immunologist) located in a research institute over in San Diego. A most fortuitous turn of events occurred today, which I am glad to say I grabbed with both hands.

As previously stated, the PhD student has entered the end-game of his postgraduate research and will imminently commence writing up. He will be travelling to San Diego in late August to tie up loose ends on the project, put meat on the bones of a proposal for follow on research (a Post Doc), and in my opinion have a 'little' bit of a jolly to celebrate a job well done. I have been invited along to this final trip by my project supervisor, to show the SME the portion of the simulation that I have updated, and act as another pair of eyes and ears for discussions with the SME regarding future work. Although my PhD research will be modelling a different area of biology, I will nevertheless remain at this institution, and therefore will act as continuity should any transition period be required - a full-time research masters student is expected to arrive in the new academic year to develop the simulation further.

The trip is scheduled the week before my project report is due to be handed in. Should I accept the offer to travel to San Diego, a new project risk will arise regarding the timely submission of this report. Should I accept? I believe that I would be a fool not to, so this risk will therefore have to be managed through completing my project report 10 days earlier than the current deadline.

I can see a re-planning exercise on the horizon!

Wednesday, 9 June 2010

Where did the past week go?

Meeting with project supervisor this morning, due to his diary commitments we didn't meet last week, so the last supervision was 27th May. Taking out the Bank Holiday weekend that's been 7 working days. I'm embarrassed to state that I'm not sure what I've actually accomplished. I've been working hard, indeed I am still adopting the 'professional' working day that I endured during my days as an IT Consultant - definitely not 9-5, but what have I done? A brief stock take is in order:

1) Installed iWorks on Macbook
2) Tangled myself up in knots with Pages'09 trying to import my previous project report from this Masters degree from an MS Word format - Pages'09 is good when starting from scratch, but fiddly to say the least when trying to 'butcher' an existing .doc file.
3) Looked at Java code
4) Stared at Java code
5) Tried to gain inspiration from Java code
6) Started to draw diagrams of Java code package structure - UML Package diagrams
7) Started to draw abstract biological entity inheritance hierarchy - UML inheritance class diagram
8) Started to draw abstract biological entity containment hierarchy - UML containment class diagram
9) Installed Endnote on Macbook
10) Lost the will to live when trying to use Endnote - not an intuitive system
11) Finally got somewhere with entry of citation references
12) Lost the will to live with inserting Endnote citation references into Pages'09
13) Finally managed to get Pages'09 and Endnote working together.
14) Took a fresh look at Java code
15) Started to draw interactions between entities - UML association class diagram

Hmm, on reflection, I have achieved quite a bit during the past week. I think the major discovery has been my unrealistic expectations of how long it actually takes to perform research. Naively, I thought the project would be relatively straight forward.

I believe a valuable lesson has been learnt this week, which I need to carry over into my PhD - research is not made up of a set of sequential activities that are easily represented in hourly/daily items within a project plan and/or Gantt chart - research is fluid, with peaks and troughs. Unlike managing a commercial software implementation of systems that are pre-packaged, research involves a lot of time invested upfront, with very little tangible outputs/artefacts until well into the project.

Hopefully once I gain a firm understanding of the code things will become more plain sailing and I will begin to see tangible results.

Wednesday, 2 June 2010

Now for the Hard Bit

OK, the raging fire that has been lack of systems has now been put out. I now have admin rights to the desktop and indeed have also gained a copy of Matlab, so will be able to analyse the results produced. With the project issues now under control, I am FINALLY able to get down to the nitty gritty of actually doing my project, yes, that's right, doing my project. The vast majority of the last 5 weeks has been spent project managing this project, but as I'm the sole member of my project team, my day job is to also perform the work - having been a PM for the last 5 years, this has come as quite a shock ;-)

So, a bit behind schedule, but recoverable nevertheless. Some major re-jigging of the project plan has been performed, along with a certain degree of resetting project sponsor expectations. I'm now happy to report that I'm able to make headway into the research.

First step is to reverse engineer the Java simulation that I have inherited from my predecessor. The simulation is very professionally put together, but as he has not yet written up and submitted his PhD, there are no design specifications available to aid my understanding. The immediate task is therefore to decipher the code and create a number of UML diagrams. I aim to create a number of class diagrams (inheritance, containment and association) along with sequence diagrams by the end of June.

In parallel with gaining an understanding of the code, there are a number of filler-type activities which need to be performed to ensure I gain the necessary understanding of tools and techniques before I commence my PhD in October. As I've recently purchased an Apple Macbook, one of these activities is to learn iWork Pages (as opposed to the ubiquitous MS Word on Windows systems), and the Endnote citation database software, which I am told will be extremely beneficial for writing my report (and papers during my PhD) - not an intuitive piece of software though - why, oh why, does it function this way? Now I know how my previous customers may have felt when their seniors bought COTS (Commercial Off The Shelf) packages and we tried to change their business processes to fit the software........