As a developer that frequently leads projects and operates in various leadership roles depending on the current project lineup, the Agile development methodology is a welcome change from the Waterfall and Software Development Life Cycle approaches to software development. SCRUM is the specific type of Agile development that I have participated in at a few different workplaces, and it seems to work well if implemented properly. However, there are several ways to make a SCRUM development team perform more poorly than it ought. The top 5 I have seen include:

  1. Micro-Management - When a member of management or “pseudo-management' thinks that they know how to do something better than everyone else, and has to tell every member of the development team exactly how to do their job. The company hired the developers in the first place, give them the space to succeed or fail on their own before imposing your unwelcomed “assistance”.
  2. Poor Leadership - Any time a manager goes to a team to explain that an individual is being put in a leadership position within the team because they “go to conferences” is a huge red flag. Imagine my surprise when, after the individual is added to the team and has been in place for more than 3 SCRUM sprint cycles, and this developer has changed a grand total of, wait for it, 0 lines of code.
  3. Office Politics - Part of the ideology of SCRUM requires trust among members of the SCRUM team. However, when members of the team are going outside of the team as a first step, or taking credit for ideas generated in the team as their own, trust erodes extremely quickly.
  4. Create an Adversarial Relationship with the Customer - SCRUM and Agile development are designed to provide greater value to the project’s internal and external customers more quickly. When the Development Team Lead actively advocates the attitude that the customers are “dumb” and are the “enemy”, and then members of the development team get in trouble for treating the same customers like they are “dumb” and the “enemy”, it is an extremely de-motivating situation.
  5. Let CPAs Run the Company - Whenever a technology company’s CTO or similar type position is filled by a CPA with absolutely no technology background before taking the lead technology position for the company, many things go wrong. When you start trying to force developers in a SCRUM environment to track time based on how it can be expensed on the balance sheet, and if the same developers do not reach the desired percentages of each type of time, force them to change their time entries to match the goals required by the same technology leader, it is clear that this is not a true technology company.

SCRUM is a great tool to empower developers and provide immense value to customers quickly and on a regular basis. However, it cannot be managed like the traditional Software Development Life Cycle development teams.