Archive for September, 2010

All I needed to know about CVS

September 28, 2010 Leave a comment

I have just rediscovered some notes I made while I was carrying out a Release Management role last year, where I had to use CVS as our repository. I’m hoping that if ever I have to perform a similar role again, the SCM tool will be a more modern and capable one.

However, CVS is still quite widely used as a legacy application. Just in case my path meets CVS again, I made a note of the commands which, in practice, were the only ones I found I needed to know on a regular basis. I’m sharing them below in case anyone else finds CVS in use on a project and needs a crash course in the basics.

For basic file level operations I used the WinCVS tool most of the time, but sometimes it was easier to log onto the UNIX box and run commands from the command line.

To commit all changed files in the current directory (and any subdirectories):
cvs commit –m ‘log message

To tag a release, starting at the top of the directory structure will tag everything beneath. Can also just tag a folder or a file.
cvs tag tagname

If I accidentally tagged a newer version of a file, it is easier to delete the tag on that file and retag to the correct version.
To delete a tag on a file:
cvs tag -d tagname filename

Having deleted a tag, revert it to a previous version of the file (alternatively, rev can be a tag)
cvs tag –r rev tagname filename
cvs tag –r 1.7 TEST-5-12 foo.txt

To correct a log message:
cvs admin -m revision:message files
cvs admin –m 1.2:“Corrected message” fatfingers.txt

How to find out what’s changed between two tags (including HEAD):
cvs diff -N -c -r tag1 -r tag2 | grep "Index:" > changed_files.txt

Anything else I needed to do was a complete one-off, and I looked up as and when needed from an online manual.

A couple of links to online manuals:
Version 1.11.22

An alternative New Year

September 23, 2010 Leave a comment

I’m sure I’m not alone in finding the arrival of September comes with a feeling of foreboding. For years I couldn’t quite understand why, then I realised that it was a throwback to my schooldays (which I hated) – the autumnal nip and the damper air recalls the feeling of dismay that used to mark the end of six weeks of freedom and a return to the semi-imprisonment of school. Despite the passage of 25 years I still feel a slight frisson of something looming…

And yet, and yet… The change of air arouses another feeling, a sense that now is time for something new. Going back to school used to mark the start of a new set of challenges for the year ahead, with the slate wiped clean and a chance to get off to a good start for the new year.

Even in the world of work, the start of the academic year still designates a time for change – how many new projects start in September? Indeed, I’m looking to ramp up my team to cover a new phase of work right now. Looking back I realise that three of my five jobs started in early autumn, and a fourth would also have started then if I hadn’t been required to work the whole of an extended notice period. It’s more than just coincidence that each of those employers was recruiting to fill a vacancy to start in September.

In many ways this is a natural time for a fresh start. During the summer period (really any time from late May onwards) work continues pretty much as it has done all year, except that most of the time the team is below strength due to annual leave. Many European countries often effectively have a national closedown period when most organisations are on a skeleton staff and any interaction with them has to wait until their staff return. Although in the UK we try to keep operating normally throughout the summer holiday season, inevitably people with families are off work for much of the time in late July and August (and those without often just before or after those times) there is still some disruption and a tendency to defer making wholesale changes.

By September, most people are back at work and teams are at full strength again. There is also a good three-month window to make progress before things start to slow down again in the approach to Christmas. Initiatives that have been held over are now put into practice – I have noticed that I have received a lot more announcements and instructions to comply with various requests in the last couple of weeks than during July and August.

Personally, it is also a good time to get something done. Returning refreshed after a holiday, now is a good time to act on resolutions that follow from some reflection while away. I feel much more inclined to tackle new or difficult work now, or set about a change to my routine, than I do when I come back to work after the Christmas/New Year break. Maybe it’s also something to do with it being the middle of winter, dark both when I go to work and when I leave for home. I always feel much more motivated in bright sunlight, which we still have at this time of year, than while suffering from January blues.

Why wait for January 1 to make New Year’s resolutions? Make them now!

Categories: Work Tags:

In a Nutshell: Five Principles of Project Management

September 9, 2010 Leave a comment

Glenn Alleman (Herding Cats) has recently suggested Five Immutable Principles of Project Management, five questions without which your project is almost certainly doomed to failure

His five principles are:

  1. Know where you are going by defining “done” at some point in the future.

  2. Have some kind of plan to get to where you are going.

  3. Understand the resources needed to execute the plan.

  4. Identify the impediments to progress along the way to the destination.

  5. Have some way to measure your planned progress, not just your progress.

There is no real magic to Project Management other than trying to keep one step ahead of all the forces that can come along to trip everyone up. I agree with his summary – if you focus on these five, that’s the bulk of the work done.

To get a definition of “done”, you need to define the scope (requirements). Scope management takes up a lot of time, not just at the beginning but also especially during the busy period in the middle when there has been time for the business to change its mind, and as the detail is uncovered. This is rightly top of the list; not only does it come first sequentially, but without it you can’t do the rest.

Planning means much more than just an MS Project gantt chart of tasks and dependencies – how we are going to achieve our target. I have worked on several projects where the Project Manager (not me!) maintained a plan in MS Project, meticulously, tracking our failure perfectly.

I would swap 3 and 4 in the list, as once you have a plan you also have to identify all the Risks and Issues that need to be addressed (straight away, usually). It’s also about getting obstructions out of the way in time so the team can keep working, or having a Plan B (and Plan C…) if you can’t.

Resources doesn’t just mean effort, but also what kind of people you need, and making sure you have the right equipment – not just hardware but the banal like offices and desks for the team. Producing good estimates is a black art and the subject of many books, but however you do it you need a benchmark to refine as you go along. Measuring progress is just as elusive, as developers, especially, are always overoptimistic, and can often cheerfully report a 90% complete status for days on end. I prefer to report either on the basis of 0 or 100% done, and break the tasks down to a low enough level of granularity to be able to add up the completed tasks as a percentage of the total.

Of course, as well as the project as a whole, you can ask the same questions of each task.

I think back to all the failed projects I’ve worked on, and (as I’ve commented before) the main contributory factor of almost all of them was that right from the beginning, we never had the scope or the requirements set down clearly and correctly. This meant we started off badly, and never recovered. Define “done” and you are halfway there.

Categories: Work Tags: ,