Each minute of our life is a lesson but most of us fail to read it. I thought I would just add my daily lessons & the lessons that I learned by seeing the people around here. So it may be useful for you and as memories for me.
Article by Prawin..
When I started my career in 2007, first time I heard from my Manager that we lost our project. I dint understand what it mean. As years passed, I used to hear, we failed to deliver, our project/product failed etc etc…After 09 years from there, today I failed as a Project Lead for first time. I am unable to take that, reason being successfully Lead project for 3 years and failed for some unknown reason .I spent many sleepless nights and started to do RCA, Route Cause Analysis and listed down the thoughts, experiences on reasons for my projects failure.
Every software project begins with big dreams and grand visions. Somewhere in an alternative universe, there is a project that fulfills every dream but all too often software projects in our universe stumble toward the finish line and sometimes cross it. It is so important to evaluate your project at the start. Closely examine all, road-blocks, hurdles, hills, detours, potholes, manholes or even an angry flock of birds. I think you get the point. Before starting your project, knowing exactly what lays ahead lets the project manager, team, and client mitigate associated risks. Project failure can happen in any organization and to any project. There are an infinite number of reasons for failure. Sometimes it’s out of the control of a project manager and/or the team members. Sometimes failure is controllable.
No Clear Vision and Failure to set proper Goals/Milestones: If you do not know where you are going you will end nowhere. Every project team should have clear vision and proper achievable goals should be set. Project Manager should set SMART goals and guide team towards the project goals.
Inadequate Planning or Poor Preparation: You need to have a clear vision of what you’re going to do, in advance – as much as possible. In simple words, planning should be done properly. Otherwise, you may find yourself up stream without a paddle. You need to know what project success looks like at the beginning and don’t loose focus of it. Hence, if you don’t have a clear focus at the at the earliest stage of the process, you are making things harder on yourself. Have a meeting, even if it is lengthy, with stakeholders to discuss their expectations on cost, time and product quality. Know how you will execute your tasks in order to meet everyone’s expectations
Working without purpose: Building software for the sake of building software is not efficient. Our team need to understand the project’s purpose and believe it’s something worth building. That is why, the best projects are the ones you can relate to, the ones you really enjoy working on. This should be a major factor in our new business strategy. A team who believes in the work they’re doing is a happy and efficient team.
Unclear project requirements: Project specifications should be laid out at the early stages of planning. Unfortunately, it’s possible that managers and executives weren’t clear on the scope of the project to begin with, thereby leaving developers, QA unsure of what features would be needed. For instance, if the project is being built by developers who don’t understand how the software will need to scale, they’ll be unsure as to how to cater to your company’s increasing demands. All the requirements should be properly documented and a requirements walk-through session is conducted with Dev and QA teams.
Setting Up Poor Teams: In most of the teams, we see candidates who are not the right fit. reason might skill gap, experience level, domain knowledge, etc. Having the right persons, doing the right job according to the project requirement is more important for project success. Project Manager need to make sure we set up the right teams(Development, Back-end, QA, Design, Database, Marketing, Sales, Finance, etc) at right time with right candidates and checking if they are doing their job right.
Bad Architectural Designs: Architectural decisions can last a lifetime — especially if your ego is thoroughly invested in them and you can’t change them. Project managers have to be ready to notice when the main architectural plan is not working so big decisions can be made. If leadership can’t notice when their plans go awry, the coders in the trenches will keep toiling away trying to make headway against an impossible headwind caused by a bad architectural model.
Poor Communication and Lack of Transparency: Effective communication is crucial to the success of any project. Just because you’ve understood the client’s requirements, doesn’t mean that your developers, QA have. Sometimes, employees are too shy to voice doubts or ask questions. Internal communication between the teams is more important, especially when they work on the same project. Not having a healthy work environment is another thing which may lead your project to failure because when the team manages to share knowledge and exchange information and ideas openly and willingly, they are more likely to create strong business relationships with their customers. All piece of information should be shared with everyone team. There should transparency in every activity and details shared across.
Picking the wrong technology or tools: Even if you plan carefully and draw up the correct list of features for the project, things may fail if you use the wrong technology to build out the feature set. Databases, for instance, are designed to be as general and flexible as possible, but they have architectural limitations. If you try to push them to deliver something they’re not designed to do, you could watch them slow to a virtual halt when they scale. Or you may start off with a NoSQL database because they sound so cool only to discover later that you really need ACID-grade transactions to keep things consistent and the database doesn’t offer them. Oops.
Poor prioritization: Good planners draw up a list of features and prioritize them. But sometimes the priorities don’t line up with the reality of implementing them. In the worst cases, the most important features are also the hardest to create. What are your developers to do? If they concentrate on the most important feature, they will make no progress and may end up delivering none of the functionality. But if they start knocking off the easy ones, well, they may end up with something that’s worthless. Good planning requires more than a checklist. The architectural vision must take into account the needs and the cost of delivering them.
Lack of proper Project Manager: Every team, no matter how skilful, needs a good project manager. Without one, work becomes chaotic and team members get confused. Not having a strong management guiding the team leads eventually to a mediocre product that is delivered too late. A good PM has to monitor, control, estimate coordinate, guide and plan everything from beginning to end but it takes more than that to be successful. A good PM brings everyone onto same page
Over-promising just to close the deal: If you over-promise just to win the show or situation, you’ll most likely end up under-delivering. There’s nothing more damaging to your client’s trust than broken commitments. Transparency and honesty go a long way here.
Moving the goalposts too often: Changing the project’s objectives and specifications too often without clearly communicating a reason for it can cause your team a lot of fatigue and frustration, not to mention it could possibly derail the project altogether.
Proper Knowledge Transfer or Handovers should be planned: When any team member leaves the project or if anew team member is recruited into team, proper KT’s need to be planned to make sure knowledge is shared to new team members to avoid the knowledge gaps. It is key point to avoid the Single Point failures.
Lack of Periodic assessment: Creating a plan for a project isn’t enough. Someone must monitor the plan and check the progress of team. That person can be a project manager, IT manager, or Scrum Master—who doesn’t matter as much as the fact that someone is monitoring progress. Inadequate project management oversight accounts for 20 percent of failed projects. To prevent this cause of failure, you must have someone in charge of monitoring progress toward project goals.
Team member procrastination: Team member procrastination goes hand-in-hand with poor project management. It can turn to be main reason for project failure. If developers are procrastinating—or if the people the developers are depending on aren’t supplying answers, code, or services—it should be obvious that the project plan is headed off track. In addition to monitoring the plan, the person in charge of overseeing the project must keep a record of issues and requests, and she must push those responsible to deliver.
Look for someone who’s detail-oriented, ready to take risks, organized, coordinates with everyone, understands business needs & team needs, prioritizes tasks, able to take dynamic decisions without being influenced and who is ASSERTIVE.. The manager needs to be willing to escalate issues to the appropriate channels when necessary in order to resolve risks and impediments that—if unresolved—could lead to project failure.
Building software is an art that requires expertise and thorough planning for good execution. The causes of project failure are wide and varied. In addition promised resources may not be available when required, executives may fail to grasp the full reasons behind instigating a project or there may be political reasons for continuing with a clearly unviable project. By addressing the areas we’ve discussed, you stand a great chance of running a successful software project. Good luck!
Please feel free to share your story and any lessons you learned, you experienced, you came across in your life in the comments below.