Time for business Tuesday post. Source code gets rotten, systems get slower, every fix takes a lot of time, estimates for implementing new functionalities get more and more utopic, customers are mad, users are mad, developers are exhausted – struggling with problem like this? Maybe it’s time to use some software rescue services?
Understanding projects in trouble
Projects in trouble are always different and it’s not possible to help them all out using same formula (although there are consultants who think so). Troubles are different, their root causes are different and people in projects are always different. And, of course, let’s don’t forget customers.
Projects get into troubles for many different reasons:
- too optimistic estimates,
- impossible to meet deadlines,
- project management mistakes,
- bleeding-edge and silver-bullet technologies,
- incorrect technical decisions,
- tensions between team members,
- inefficient quality assurance,
- rotten codebase,
- lack of experienced tecnicians in projects.
One thing is always the same – situation is not nice, people rush like mad and still project is not moving to right direction.
Software rescue services
Over years I have worked also on projects that are as well as doomed. It was hard when I had no experiences on working in projects like these but step by step I got stronger and more skilled on saving projects in trouble. Currently this is one of services I provide and this far many systems have got new and better life.
If you ask if this service is about rewriting everything and making everything 100% testable like legacy code classics speak then answer is no. The most important thing is to climb out from hole first, stabilize the code base, establish some rules about architecture and technical design and after that we can work on code testability. But testability is not possible before worst chaos is turned to order.
No, I’m not consultant
People sometimes think I’m another consultant who ends the pain as quickly as possible, washes his hands and then goes back where he came leaving behind frustrated developers who want another job, managers who are happy that they don’t live under pressure anymore and customer who doesn’t want to hear about their software development partner anymore. Not my style, guys!
What am I actually doing is here:
- meet team members and find out who they are and what they are doing,
- find out what problems are actual and what is the cause of problems,
- find solutions to problems,
- work out rescue plan,
- help to implement the rescue plan,
- help to communicate things with upper management and customer,
- provide knowledge how to keep project on track.
Yes, I make my hands dirty and usually I focus on most unstable and complex parts in system trying to get them alive. Having used many Microsoft technologies – even those that average developers have never heard before – and played with them over time I have good understanding of different programming models and API styles that have been around over years.
Besides developers also management and customer may need some help to work in new situation. Yes, I will help them too. Instead of fighting and running bling like hens with no head they all can commit to project success every day. There are tons of things to do to support developers and provide them with information and knowledge they have and this is how things normally should be.
If you happen to have problem with some project and things get only worse then try out if I can help you and your team.