Wednesday, April 8, 2009

Lessons Learned

I can say this for sure that the things you learn from a bad project or near to disaster project is far more valuable then from a good project. I'm facing the same situation.

First let me present the history of the project that will give you a chance to analyze from where this all has started that in the end move towards the disaster (which is not actually the case now).

A firm has given us a proposal to develop a complete reporting website that will present about 17 reports based on a Queue Management System's back-end Database and without any feasibility study we accepted the proposal.

Impact: We've just created a mess for us right here
Lesson Learned: Must Do Feasibility Study

We must do feasibility study before accepting any of the project, we must analyze, the project which we are accepting by asking a question, "Are we capable enough to develop this project?"

The developer who was previously working on this project have made about 4 reports and guess what they were completely generated by a custom tool, He haven't write a single line of code by hand and when we look at the nature of the project they actually require highly customized reports. When he shipped these 4 reports you can guess what would happen yeah! all of them were a crap and sent back to the company by the client.

Impact: Effecting Company's Image
Lesson Learned: Adopt strategy after analyzing the nature of the project for development

Another mistake we've made is that we completely relied on the Client's given Requirements which was a big mistake, Requirements Engineering in itself is a big topic to cover here but sometimes or most of the time client don't even know what he/she is talking about, what he needs, so, you should ask him questions why you need this feature? what benefit it will provide you?


Impact: Following wrong Requirements; Developing wrong Things no matter how perfectly you develop them It'll be useless in the end.
Lesson Learned: Always make specs before starting the project


Now previous software developer have left the job and have given me the opportunity to watch the show 'How a Project can be a disaster', I've received the work which he has done on this project which was completely out of synchronization and was not according to the initial requirements, I've tried to change its shape according to the requirements but failed to do so. Everything has to be done from scratch.


Impact: Wasted a lot of time
Lesson Learned: Time is one of the factor that determine Project's success


I've analyzed one more thing, clients actually have a habit of requesting a change and then rejecting it, It doesn't matter at first but when time is a critical factor in determining a project's success then it does matter, how much you have already worked on the change client has requested? and whether new implementation will take more time time then the previous one? If so it will definitely hurt the delivery date and won't allow you to complete the project within time and within budget. In this scenario management should negotiate with the client about the consequences and effects of this change in overall quality of the product etc.


Impact: Trying to make project unsuccessful
Lesson Learned: Negotiate and Stay within budget


cont...

No comments: