There are five underlying variables that deeply affect an organization’s ability to deliver substantive, high quality software solutions effectively. When discussing this topic, people typically mention things like process, tools or skillsets but in truth, though those aspects are important, of far greater import are things that affect people’s focus, commitment and direction.
Leadership: Size will determine the exact structure of the leadership but there must be a clearly defined leader of the software development team. This person is the ultimate head authority that sets tone, policy, leads the culture and has the right to direct the activities of the team. There can be multiple people “at the top” to be sure, for example, driving sales or marketing or directing strategy or defining architecture. But team members need to have a clear understanding of who they answer to so there is comfort in knowing they’re performing as requested and not receiving conflicting direction.
Culture: While this word is frequently overused, understanding it is central to an organization’s ability to deliver effectively. There is a continuum between “fast and furious” for example, and “slow and deliberate.” Where does your organization lie? Is the team rewarded for being nimble and effective and delivering frequently, for example, or is the concern more about knocking down every last defect before each interim release? Do you celebrate quality over timeliness or is rapid, regular, reliable delivery more desirable? Having your team understand the underlying philosophy that will be rewarded allows them to function successfully almost automatically.
Legalism: Rules get a bad name. Rules are fantastic. They give people a sense of direction and how to operate. When there is a lack of policy and standards, people become confused and unsure how to proceed. By the same token, rules are constricting. When rules trump effectiveness, results suffer. Relying strictly on “rules” as a safety net rather than relying on your own common sense makes no sense. Your culture should be so well communicated that people know when an exception to the rule is the right way to go.
Fear: People should be empowered to make decisions because there is clear leadership and they understand the culture and they know when the rules don’t exactly fit the situation. Team members must be comfortable, not fearful, that decisions they make on their own will be supported, not picked apart and “Monday morning quarterbacked.” Feedback after the fact is important to be sure so that individuals understand how to make better decisions the next time. But confidence in their right to use their common sense “in the moment” will more often than not lead to superior results. Backing the person rather than the rule will have huge rewards downstream and will increase loyalty to the organization many times over as well as allow a person to grow in their decision making prowess.
Rigidity: Change is hard. Switching policies makes people uncomfortable. People complain because they developed a comfort level with how things have always been done. But change is essential. Tools evolve. Markets shift. Requirements change. Organizations that don’t adopt new practices, try out new techniques, adopt new methods and tools, are headed for the ash heap. Your staff must get comfortable with change. Your staff must get used to, at times, being uncomfortable because of change. Great organizations are great adopters of advancing techniques, ideas and methods. Promoting a positive, eager attitude that embraces change will lead to a culture of success.
Your organization can be extremely effective in building and delivering software, but, you have to pay attention to more than just process and methods.