Friday, March 24, 2006

Bamboo and Project Management

No, this is not about some Project Management software from China. This is about using a flexible, light weight structure to support the Project Management efforts. There is a large amount of confusing about Project Management. My approach has been to use it to apply structure and form. While traveling through Asia, I saw people using bamboo as scaffolding for construction work on buildings. Most people see Project Management structure modeled on traditional Western scaffolding, heavy, strong, durable, and complex. My approach has been more aligned with the properties of bamboo, light weight, flexible, and simple to use. That is not to say that it is flimsy or fragile. As with the bamboo scaffold, your Project Management structure gains strength by adding more where you need it.

Ok, it is a great metaphor, but how do we turn that into action? The obvious but often overlooked starting point is to keep it simple. People, especially senior mangers, need to see the message with minimal explanation. While a number have are familiar with Gantt charts and other views from project software, it is not the right answer for everyone. So, I start with a pretty picture on a MS PowerPoint slide. The picture should show everyone, at-a-glance, what projects are underway, top level time based depiction of each phase in each project, and a simple stoplight color scheme to illustrate the project status. Based on that one slide, we have a great deal of information to talk about resources, risks, project portfolio management, and candidates for extra resources or termination.

Of course, a large amount of detail and data needs to be collected and analyzed to create that simple picture. I do not think that this task should mandate using any specific tool. Instead, you should be free to use or not to use any tool or software that makes collecting and updating the information easy. I have worked at places where they had a full time person whose job was to update a MS Project schedule each day. Projects that have short durations or are in a high state of change need a more light weight and flexible approach.

I found that giving the tasks owners a simple template in MS Word or MS Excel provides enough structure and easily gets me the information I need. But there is one hole in this system that still needs to be plugged, tracking resources for each task. If you are careful, you can use MS Project to map it out. And this can serve as the building block when you need to show an “official” project Gantt chart.

Keeping the Project Management structure flexible and light weight, like bamboo, provides the tools to support the work without diverting a large amount of work into changing the scaffolding when the project changes. This approach is even more useful when you are introducing Project Management into an organization.




Technorati tags: ; ;

Tuesday, January 31, 2006

Software Project Management – shifting from a directed to a collaborative model

When software development started, they used the existing project management techniques. Those tools and techniques worked well for people constructing buildings, but they did not provide good tools for managing software projects. Using the standard water fall method, each step was completed, leading in a straight line to project completion. I know that this is a simple view. Some of the steps had overlaps so that the proceeding step could start before you finished the previous step. But, in general, the assumption was that all the requirements could be started at the beginning and that they changed slowly. People had thousands of years of experience interacting with and creating buildings. Not only is software a relatively new area, it is rapidly changing.

Dr. Barry Boehm published a new approach, the Spiral Software Development model, in 1988. This was a way to address the IKIWISI syndrome ("I can't tell you, but I'll know it when I see it”). In recent years, a number of new techniques have been created to address the problem of the customer not being able to give you all the requirements since they do not know all the requirements at the start of the project. Most of the techniques try to address this problem by developing what you know as fast as you can, so that you can present it to the customer. As the customer sees more of the software “functioning”, they can do a better job of clarifying the requirements. This happened in the earlier methods but was seen as “scope creep”. Due to this new information and requirements appearing late in the development, it was very costly to add the changes. That created an elaborate change management system which tried to reduce the number of changes.

The biggest change that has occurred from using the new methods is that the relationship between the project team and the customer has shifted. Instead of the project team being directed by the customer, we have shifted to a collaboration model where the project team and the customer work together. This is an important and critical change if we want to develop complex software projects that will be usable and support the business goals. The software project manager’s work shifted from coloring in triangles on a chart and driving work to fit to the plan, to that of a navigator.

As the project navigator, the job is to scan the horizon for changes, work with the customer to determine if the change impacts their goals, and then using that information to keep the project team on course. Continuous collaboration is now the key skill of the software project manager. The shift in the role of the customer means that they need to be more involved and need to work with the development team to surface decision points, eliminate undocumented programmer assumptions, and understand the trade-offs.

The current methodologies and techniques all work well in specific situations. Selecting the one best one will depend on the business culture and processes, the training and flexibility of the team members, and whether the requirements will change over the course of development. No matter which one you use, the software project manager has to keep the customer engaged and involved.



Technorati tags: ; ;

Tuesday, December 13, 2005

Poor designers choose to user the Mailto function

I was designing websites when the Mailto: option started appearing. For the people that were doing simple sites, it provided a way to let the user send mail. Unfortunately the spammers started using web crawlers to search for Email addresses. Today, web designers that continue to use this are either (1) forced to do it by their client (2) can only use simple drag and drop tools (3) are either clueless or lazy. Creating a form and processing the request on the server is both safer and allows you to send the information to many different addresses. It also has the advantage of hiding the Email address from the spammers. There is no excuse for continuing to use a Mailto:. You can easily get a copy of a number of form processing programs that can be easily modified to fit you needs. When I pointed out to one IT manage that using this option increased the amount of spam, he replied that they used an email filtering program. He was not bothered by the fact that he had to use an expensive solution, which requires continuous updates, to solve a simple and easy problem. I believe in using a good design, not wrapping a bad design with more software.



Technorati tags: ; ;

Tuesday, December 06, 2005

“Email a Friend” especially a Spammer

After reputable companies became concerned about privacy, they started to add a privacy policy to their websites and to switch to an “opt in” process for marketing email. That meant that the marketing folks could only send you an email if you gave them permission. Some clever marketing folks developed the “Email a Friend” function to get around this annoyance.

The function has several names but they all work in a similar manner. Selecting this feature, you are presented with three input boxes. You are asked to put your email address, the email address of your friend and some clever words to send to the friend. The function creates an email from you to your friend, adds some marketing message about how great the product/site/service/etc is on this page, and adds your comment. Since the email appears to be from you, then the marketing folks can weasel around the privacy issue.

Of course this is ripe for abuse and with a few lines of code can be turned into a great non-traceable spambot or even used to flood an email and perhaps create a denial of service. If the clever spammer puts an email address from an employee of the company, it adds even more fun. Since the company email server sent it out, it becomes hard to claim that someone else sent it. In addition to flooding an email box, a truly angry spammer can also add some very abusive and profane comments in the little text box.


Should this little tool cause an email server to clog and possible to shut down, then the target may call in the lawyers. While you may be able to claim that the person in the “from” line did not send out the email, you are still responsible for the misuse. If you want to appear as a leading edge technology company or want to sell technology services to other companies, the bad press alone will cause a large chunk of revenue.

In a company I worked at, we had one of these popup on a website. When confronted with the potential danger, the marketing person’s response was that very few people use it and no one has abused it yet. Some how leaving a loaded gun on the street and claiming that it was Ok since no one was shot yet seemed a bit weak. After a chat with our legal folks, a quick directive landed on the desk of that marketing person’s top management ordering that it get removed immediately.

Somehow adding a function to one company website that is reckless and dangerous, has no measurable benefits, and is rarely used by the customers does not strike me as a good idea.





Technorati tags: ; ;