Wednesday, January 28, 2009

All of them are victims, the customer, and the development team!

Very interesting situation. I’m now out-sourced as a project manager to manage some of the IT projects developed by the company I work for. The client is a big telecom customer of my company. In this case, I deal with the end users of the systems and see and hear how they think of the development team. On the other hand, I deal with the development team closely, and they consider me “on their side”, not on the “enemy/customer” side!

The customer is really suffering. He suffers from so many delays, unexpected results while testing, misunderstandings, unmanaged expectations, resistance of changes in requirements, et cetera. In summary, at best, the customer is suffering. The customer says that the IT was much better in the past, but now, they think that the development team is incapable, but they can’t escape dealing with them because simply speaking, all other vendors are alike or even worse!

On the other hand, the development team is also suffering. They suffer from the changing business at the customer side. They suffer from the large scale of the software size, while there is no central architecture team. They also suffer from other things, like the oppressing environment created by middle management who are also oppressed by the frustrated customer. They finally suffer from the fact that they are not appreciated by any means! All what they hear is that the customer is frustrated because so and so, but they are never rewarded of the tremendous amount of effort they exert.

Both of them, the customer and the development team, are victims. None of them should be blamed. Yes, none of them should be blamed.

The fact is that it is the methodology which should be blamed for such miserable situation. There has to be a change in the attitude, a paradigm shift in the operation of producing software. Techniques like iterative development, incremental delivery, automated tests, continuous customer involvement, and central architecture team are all critical success factors.

I’m afraid this situation is becoming the norm in software development. It started to be an accepted situation that software development is a difficult field and we have to accept all these issues as normal and cope with it; very similar to a situation where one has a disability and he has to cope with it!

I’m feeling so bad for these suffering people, both in business and in development.

1 comment:

Mohamed Fakhry said...

Who is the killer? Who should be blamed?
Do you think that there is no one to be blamed? You highlighted the victim parties only and you did not mention all other parties. I think that “all parties are victims” is not logically accepted. There should be a killer.

In my opinion, the killer is the management. I saw many cases here at the company I work for right now and at the ex-companies, the management has more than 90% (and really I mean it more than 90%) of the success and failure of any project.

1.Sometimes, “as you mentioned in another blog” the management force the development team to work without any approved documents (like analysis or design documents) or even draft documents which violates the software process life cycle. Why? They want to show the customer that they are doing everything (EVERYTHING) to satisfy customer’s needs regardless of any other thing. This would impact off-course the quality of the project and finally makes the customer and development team as victims.

2.Other times, they don’t want to pay much for the expertise. Therefore, they hiring fresh graduates or non-expertises only (because less salaries). This stops a project by crises. I believe that any organization should be pyramid organized according to the positions. And any flat organization especially in software houses looking for mid-sized or large-sized projects is going to dysfunction. This in turn makes the customer and development team to pay what they (management) didn’t pay. Eventually, they lose both the development team and the customer.