Management Practices to Avoid for a Successful Software Development Project
Practices to Avoid for a Successful Software Development Project
The result that we all want at the end of the day is for our software development projects to succeed; this is easier said than done.
The big, underlying questions are– What to do or NOT do to achieve a successful outcome? What management practices should we execute on or pitfalls to avoid to meet the result of a successful project?
I have helped many companies over the years in hiring the top software development talent. I have realized, through my experience, that there are common management practices that are detrimental to the success of software development projects and teams. Through my years of experience, I have learned valuable lessons that have served me well which I would like to share with you. These lessons have adapted over the years for different situations and scenarios. What I am about to share with you is not be-all-end-all for success. Adapt the experiences and practices shared here for your teams and projects.
When it comes to what makes a successful software development project, there are certain misconceptions about the project and team management that are now widely accepted. So, what’s myth and reality?
Here are five myths in making a software project a success that may surprise you:
1. The more developers, the better
In certain situations, this may be true but sometimes having too many cooks in the kitchen can be problematic. In large teams, different personalities and work styles can counteract productivity. In some cases, personality differences between team members can cause conflict in the workplace. Communication breakdowns and misunderstandings are the cause of most battles.
One means by which a project manager can prevent conflicts is to set precise and well-defined expectations from each of the team members. When each person works independently on their given tasks, it is critical that they also understand how their contribution is vital to the big picture and success of the project. By setting expectations and having clarity, this will keep each team member motivated to be organized, independent, and if required productively collaborate with other team members. Emphasize the projects purpose and its importance to the overall goals of the company. Painting the big picture motivates teams.
2. Having no vision and no plan
Take Benjamin Franklin’s advice: “If you fail to plan, you are planning to fail.” Having a vision of what success looks like, and a plan in place to make the vision come true is so critical to the success of a project. A clear plan carves out the road for how to achieve the critical objectives necessary to make a project successful. Communicating your vision and plan with your team members will help in understanding which activities and accomplishments will add value. Keep in mind that software developers are both technical and artistic. Creativity plays a big role in writing code, but often it can also derail from the project’s objectives and overall end goal. Never discourage creativity. Instead, have a plan in place and articulate this plan to the team to progress towards your overall goal and vision.
3. Not identifying low performance
A software developer that is a low performer and working at a level subpar than others could influence the rest of the team to be less constructive and productive. Identifying low performers within your teams, as a manager, is important but can be tricky. Some key indicators to look out for include:
A. When deadlines for given tasks aren't being met
B. Relying too much on other team members to get their job done
C. Not proactive about taking on challenging tasks
D. Quality of work is poor
E. Lack of enthusiasm
4. “If you can’t measure it, you can’t improve it.”
Though this quote by Peter Drucker may prove to be right in business management, it is not always the case in software development management. Metrics used in software development, the most apparent being number of lines of code, may not still be the best way to measure output and performance. Adding extra non-functional lines of code may be necessary, for example; to make the code more decipherable and easier to understand by other readers. As a software development team manager, it is essential to determine what measurable outcomes unique to a project or even lines of code will better inform you of your progress towards your goals and objectives. Defining success and setting tangible, measurable goals can help the manager grow and improve their teams. For example, if you are trying to improve your golf game or trying to lose weight, but never keeping score or stepping on a scale, how do you know if you’re getting better or not. Make sense, right?
5. Setting unrealistic goals
A manager should set actionable and realistically achievable goals. Setting unrealistic goals in the hopes of achieving more can demotivate a team. Proper goal setting is critical to the success of a project. A goal can be dynamic. As a project progresses, if a goal becomes unachievable, it is okay to adjust your expectations. Furthermore, goal setting can be an interactive process with your teams which in turn can help you as a manager to understand what is doable and not doable. Keep in mind as a manager that realistic plans and goals help guide teams in achieving success.
When taking everything into account, good management requires making tough choices for the betterment of your team and selecting best practices that will help you and your teams achieve your goals and contribute to the success of your projects.
If you want more hiring tips, please subscribe to the Cubic IT blog today!
Thanks for reading,