Project Management boost by Blogs

Project management has been given a huge boost by internet tools. The biggest improvements for me came from the fact we can collaborate so easily across geography, time zones and computing platforms.

Now though we have grown with the web technologies to the point where we have tailor-made services plus innovative ways of using other tools that work very well but were never intended to be used that way.

The most prominent of these latter categories of tools are blogs. Blogs are easy to set up and use, can be secured with simple password protection or hosted behind corporate firewalls.

Check out these ways blogs might be used for project management:

  • Progress Report Blogs – A large part of project management is communication, and blogs are an obvious way of communicating with a project team. Team members can follow progress by visiting the blog, subscribing via RSS or with email updates. Messages can be categorized, so for example a programmer can take note of just the technical bulletins and requirements updates. This opt-in method has the benefit people are not barraged by unwanted and distracting emails.
  • Discussion Blogs – If feedback or a consensus is required the comment area can be called into play. This has the added benefit of centralizing discussions with an audit trail; you can see who said what and when.
  • File Store Repository – Upload files to share with the team. Keep all versions up to date, especially useful when items are being revised and there could be many versions to keep track of. This could be updated project plans, specs, software, contracts, timesheets …
  • Multi-Media Knowledge Base – Once you are using the web you have all the web has to offer to utilize. Rather than all text all the time, why not demonstrate and explain using audio, video, and interactivity? For example you might deploy a new software release and explain how it works with a video screen cast walk-through.
  • Team Blogs – Most blogging software will allow you to register users and give them appropriate permissions. The simplest permission you will want to give is the ability to comment. Thinking further though you might want them to post their own content. Each team member could then be given their own category or even own blog, allowing each to provide progress reports and gather feedback on their own tasks and requirements. Rather than having lengthy progress meetings and conference calls you could minimize the need by checking all the feeds.
  • Documentation Blog – A lot of knowledge can go astray in a large project, particularly when files and notes are spread over a large team, in different systems, random chats, ad-hoc emails, and worse, between team members ears. Using a central blog can aggregate all this knowledge and an easy to search and back up store. Using the power of categories and tags it can all be organised and retrieved by any interested party.
  • RFC Blog – One challenge that can quickly get out of hand in larger projects is runaway changes. You get stopped in the halls for a chat, think “that’s only a small request, sure.” and next thing you know there are cascading changes erupting all over the project. Use your blog as a Change Request Log. As changes come in they are posted up on the blog for all to see. Before any actions all members get to investigate possible knock-on effects before sign off.

Blogs are such an easy tool to deploy, and are so flexible, they can be brought into projects and used tactically without much bother. Add to this the extensibility, the plugin architecture and easy customization, they can be a real boon to many projects.

These are the roles I can related about using blogs in a project but there might well be uses I have missed. What other uses can you think of? Are there any downsides? Do you have good links for further reading? Let me know in the comments …


P2 and Agile Software development

One of the key aspects of Agile Software Development — or any iterative software development process — is keeping your customer in-the-loop. In order for customers to have a voice in the software development process they must continually consume your software, provide feedback, and witness the results of that feedback. In a small setting this might not be to hard. But when you mix in a variety of different configurations, distributed development teams, and distributed customers — delivering and updating software can become a challenge.

iterative p2 and Agile Software Development Not only do your customers need to acquire the proper configurations, and stay up-to-date as the software is developed, your development team must also be developing against the latest code base. Again, in small teams it might be practical to checkout the entire codebase from your SCM system, but does this scale to multi-million line systems?

The Equinox/p2 project provides a powerful provisioning platform that can be used to help deliver software in number of different forms. At EclipseCon this year, Kim Moir and I will be exploring how you can use p2 as a platform to help enable agile software development. While the tutorial will focus on how p2 can facilitate agile software development, the tutorial will also provide a good overview for anyone getting started with p2 and PDE/Build.

In particular, we will discuss how to:

  1. Create, publish and provision a variety of product configurations
  2. Enable automatic updates within your products
  3. Craft and manage target platforms

The hands on exercises will explore the new p2 API, PDE/Build and many of the headless p2 applications. The exercises will be based off the Hyperbola chat client from the new Eclipse RCP Book.  (We may even have a preview of the book on display at the tutorial).  If you are interested in how to streamline the deployment of your software, are looking for an update mechanism for RCP or OSGi based applications, or are just curious about p2, please feel free to attend our tutorial.