Back at the start of time, or rather the inception of the company there was a small IT department this had to work closely with the business in order to fulfill the ever changing requirements of the business. The IT department of two had to work this way to ensure that the newly found company always had the competitive advantage.
Unfortunately, as the company got bigger more things started to flow in to the system (IT team) and slowly the development team of two where overwhelmed with the requests being asked of them. They became the bottleneck in the system. In order to alleviate this bottleneck the company hired two more people, this had the desired affect and the IT team could develop some of the functionality that the business wanted. At the same time the company hired more people with more great ideas of how to improve the business.
As the business grew, the list of items for IT expanded exponentially until it became full of things which added little bits of business value but at high cost, the list of items was not prioritised.
At this time the IT department decided that it needed to help manage this list of items because the development team couldn’t complete all the work. The company decided on introducing contracts and processes so that when those pesky users could only put something on the list if it was fully thought of – or at least had enough detail to work on. The customer started to gold plate features/products just to ensure they get there idea got through; this meant that the bottleneck which was the development team started to do work on items which added very little value to the business.
Parts of the process was deemed to work well for a period of time, but alas no-one recorded the before and after to see whether the new found processes improved the flow through the system. Even more importantly, no-one measured whether the development team delivered value to the customer.
The IT department started to monitor work it realised that it was slow to deliver change to the business. The processes that had been put in place to manage the work were not delivering value to the customer as quickly as the IT department had envisioned.
The solution to delivering value was simple but hard to implement. The IT department needed to realise the following:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
- That is, while there is value in the items on the right, we value the items on the left more.
The “pesky end users” where in fact the customers and needed help to get rid of items which didn’t add value or not have a good ROI – this needed to be done through improved communication – rather than more processes and barriers.
Fortunately, the IT department realised that it needed to evolve from its current state in to a new state, where it delivered high value software to its customer. This was only going to happen through hard work, and through frank conversations within the team, and by evolving there processes to match their customers’ needs.
I was fortunate enough to attend Agile North Conference yesterday. I spent all the day in the practitioner based stream of the conference. I came away from yesterday brimming full of ideas of how to deal with some of the problems that we have at work. I’d say that most software development companies have these common problems.
Most areas where people live and work will have regular user groups for people who are interested in their craft (software development). I regularly attend XPManchester which is another great community from which to get ideas about eXtreme Programming, although there are other things which come out. Come along!
After XPManchester I met up with a couple of team members who had attended the BCS event about automated testing. I was slightly late to the pub but could hear the geek conversation going on downstairs – my colleagues were also brimming full of ideas and thoughts from that event.
These community events are really fantastic place to get new ideas from, talk to passionate people and generally get a buzz for development back – if you ever lose it!
There are loads of ideas out there, go and read about them. If something isn’t working at work then try to apply an idea to it. If it works then great – if not then don’t get disheartened keep trying different ideas until you find one which works for your environment, and even go back to ideas. If they failed back then it might be just because you didn’t do it in small enough chunks, or you didn’t really implement it properly.
Keep the changes small, and quick to reverse.
Once you’ve found something that works, share it with the community! Most other companies are having similar problems to yours!
Share the communities you find with your fellow colleagues at work – some people will definitely be interested in attending!