Starting a project: stakeholders

April 5th, 2009

Getting started with a project is always difficult. Either you start as an experiment and quickly end up trying to stuff a world of functionality into your product, or you work in an organisation where someone with influence says ‘we need a product that does this’.

No matter what project management strategy you maintain, you need to do some ground work before you can actually start a project to deliver product X. One of the first steps is to sit down with the stakeholders and see if it is even a good idea to create this product.

Now you are faced with the task of getting the group of people together whom you should consider the stakeholders, but how do you determine them? You cannot just point to a bunch of people and say ‘you are a stakeholder’, with great certainty you will be able to say that whatever you think up will need to be redone later because you did not have the right people deciding what to do.

So, what should you do? I have seen companies that have said ‘just make it and we’ll review it later’; this approach basically guarantees that whatever you create, it will be wrong because you have absolutely no information to work with. Other companies have so-called ‘Product Managers’, people dedicated to caring for a product, in a non-operation sense. Having only these people around the table when you try to decide what should be done or if it should be done at all will also always result in absolute failure.

What then? So far, for me, the simpelest thing to use is to look at the work domains surrounding the new product to get a list of stakeholders that can tell you something usefull about the product you wish to build.

Lets take as an example a novel product called a ‘Blog’. Someone hires you to determine the requirements of this product. In order to get a sense of the domains surrounding the product you ask the initiator what they see when talking about a ‘Blog’.

Most likely the initiator will say that they expect someone to ‘Write’ something so that others can ‘Read’ it. Great, writing and reading are your first domains, now you go over to the person (or people) that have been marked as ‘writers’ and ask them what they expect at this point. They will tell you that they expect to ‘write’ something, have it ‘reviewed’, ‘published’ and ‘announced’ to the outside world. They also expect that readers can leave ‘comments’ and that they can respond to them.

After doing a little bit of research into the subject you also notice there are several standards for certain parts of a ‘Blog’, namely ’syndication’ and ‘trackback’.

If you put all this information into a simple context diagram (with some images from technorati, gravatar, wordpress and rss) you see a nice overview of who, at this point, are your major stakeholders.

The context of your product

The context of your product

It does not take a lot of effort to find out what the major domains of work are related to your product, which will then lead you to your stakeholders.

These stakeholders you can call together for a project kick-off meeting to determine how to move on; a nice subject for the next time!

Arjen Code, Requirements, Software , ,

Mobile device users, rejoice

April 5th, 2009

I installed the really awesome Wordpress mobile edition plugin, which now gives mobile users a much friendlier interface and makes it a lot easier to read my blogposts!

If you have a wordpress blog and you have mobile device users (iphone, mobile phone) then I would suggest also installing this plugin, it was quite easy to do.

Arjen Blog, Code, Software , ,

On (software) requirements

March 29th, 2009

As a regular reader of reddit’s programming section I tend to be amazed about the number of people who seem to have something against requirements.

Wikipedia defines a requirement as follows:

In engineering, a requirement is a singular documented need of what a particular product or service should be or do. [...] . It is a statement that identifies a necessary attribute, capability, characteristic, or quality of a system in order for it to have value and utility to a user.

In the years that I have now spent in software engineering I have seen many different approaches; from classic waterfalls, to the currently hip Scrum model.

No matter which approach you take you do need to know a set of requirements before you actually can start doing anything, including gathering the requirements.

  • What is the purpose of this project.
  • What is the scope of this project.
  • Who are the stakeholders of this project.
  • What are the constraints of this project.
  • What are the risks of this project.

Purpose

This is a short, quantified statement of what the resulting product should do and what it means for your business. This simple statement should make clear why the company is justifying the investment in the product and will help keep focus while gathering requirements.

Scope

The scope of the work is defined by the business area affected by the installation of the product (the roll-out). You need to understand these areas in order to properly specify the appropriate product.

Stakeholders

The stakeholders are the people with an interest in your product; the customer who requested the product, the users who will be using the product and all the other people with knowledge needed to gather all the requirements for the product.

Constraints

No product can be made with infinite budgets, time or technology; these aspects create the constraints in which the project should create the product.

Risks

Every product brings along risks, these should be clear and understood before continuing.

Go / No-Go

All of the above result in a document which can be used at a project blastoff / kickoff to determine if the project has any chance in succeeding at all.

Gathering requirements

In order to understand what is actually needed from a project you, after getting a go, need to gather all relevant functional and non-functional requirements.

For many projects this can be done iteratively, often you will find a requirement only by already doing some design or development work, but nontheless they should all be documented else you will always end up with discussions and questions about some aspect of the product after a lot of work, time and money has been spent.

When you are dealing with outsourcing (which I do as part of my current job) you should always strive to have as many requirements defined as possible in order (for both parties) to have a clear understanding what work should be done and what the ultimate goal of a project is.

Volere

In order to get more organized in this area I started to study up on requirements processes and have selected the Volere requirements process as a basis for my own work. The process is described in full in the book Mastering the Requirements process.

Now that the requirements process is a much larger part of my daily work I think it would be a good idea to devote a series of articles on this process and to show how I put a personal spin on the Volere process itself.

It should be clear that I am a great proponent of software requirements, if done appropriately within the context of a company and project; defining all requirements up front in a Scrum process is not a good choice as is not defining enough in an outsourcing process.

Arjen Requirements, Software , , ,

Moved to new hosting

March 11th, 2009

After 9 years with Thinkhost, I finally moved to another hosting facility near my home.

The people at thinkhost have been great, but now all readers in my area (europe) should see a significant speed boost when loading my site.

This site is now hosted at Server 4 You.

Arjen Blog ,

Another year passes

March 8th, 2009

It has been a while since my last post, it has been very very busy in my life. First, yesterday was my birthday, so now I am 31 years old.

Since February 1st I am also no longer working for eBuddy, I moved on to a company called Infomedics in Almere where I have been spending a first hectic month as Business Architect. Besides getting to know systems and architecture I also spent a good deal of time talking to vendors. One nice thing during that month was that I went to Paris for a short business trip. After the first month I can truly say that I have absolutely no regrets in changing jobs.

This move also means that I have been doing absolutely no coding whatsoever. I attempted to do some in my spare time, but found that I have totally started lacking the will to program and fix bugs on several of my personal projects. I think it is time to leave it be for a while and just focus on other, and more importantly, new things.

One of these “new” things is my car. I purchased a second hand VW Golf from an acquaintance and have been taking weekend drives as well as daily commutes to work in it. Since getting it on valentine’s day I have driven it for 1704 kilometers (the odometer was at 31149 when I got it). During my birthday we just got in the car and drove for a couple of hours, eventually just making a circle around the IJsselmeer.

My Car

My Car

The other thing that still gives me great amounts of pleasure is photography. The last year I have hardly done anything serious with it, but now I am picking it up again. My old trusty Nikon D50 (a 5 megapixel camera) is very low-tech when put next to the specs of the current DSLRs.

While browsing foto konijnenberg to see current prices and listings I found that the new range of nikons is rather pricey, they always have been. My dad has a Canon 350D that has given him lots of joy over the years. Konijnenberg always has some interesting special offers and I eventually folded and ordered myself a new Canon 450D with an 18mm-200mm lens. The special offer saved me 533 euros so I am quite content.

Canon 450D

Canon 450D

All in all it has been a very exciting month with a newfound love for photography and a somewhat bleak lining in that I totally lost the urge to write code.

Arjen Life , , , , , , ,