“Do more with less.”
“We need to spur top-line growth through innovation.”
“Retention of employees is essential, so let’s keep morale up.”
Managing creative knowledge workers in a tight economy where every company is fighting to increase profits means that you must execute well in all areas. The 21st century software business doesn’t compare to a 20th century manufacturing plant, where devising a new manufacturing process to produce well-defined widgets faster and cheaper than ever before was a solution. Manufacturing and management in those days was about compliance, following the prescribed means of efficiently producing widgets. Knowledge work is less definitive than that.
How do you go about creating a motivated, productive, innovative work environment?
We’ve adopted Agile/Scrum development, and this approach meets these seemingly contradictory challenges perfectly.
Productivity through Focus and Teamwork
Agile/Scrum increases productivity by focusing sharply on the business priorities. The Product Owner – someone who represents the business – sets the priorities and refines the product backlog (into User Stories) so that the features are discrete, well-defined items that can be delivered in short increments of time called “sprints” or “iterations” (a two-four week time frame).
The team collaborates on the planning and delivery of each User Story, operating as a team and not just a collection of individuals. Collaboration is more than communication and cooperation; collaboration includes shared goals, shared knowledge, and shared learning. A high-performing Agile/Scrum team should be greater than the sum of its parts, beating the output of typical project teams that are little more than individuals working on assigned tasks and sharing a common project plan.
Innovation through Collaboration, Exploring
Business-oriented software projects require a meeting of the minds between multi-disciplinary knowledge workers to be successful: those who understand the business and know what they want to get out of the software, and those who understand computers and have the skills to tell the computer how to execute those tasks. Opportunities for innovation occur when teams explore why someone wants to achieve something, and not just settling for giving the customer (or Product Owner) what they asked for.
For example, one time a Product Owner discussed a business problem with one of our teams – sharing the business objective along with what the Product Owner thought was a proper approach – and after a short discussion, it became apparent that a different solution was not only achievable, but highly desirable. The team was able to recommend a design that was simpler and faster to deliver and automated key aspects of the business process. This resulted in making the customer much more productive, a win-win scenario.
Innovation can be fostered in other ways using Agile methods, such using time-boxed sprints to brainstorm or explore how technology can be creatively applied towards some high-level problem.
Motivation through Empowerment, Autonomy, Purpose
Agile/Scrum makes use of small, cross-functional teams to design, build, test, and deliver software. The teams are responsible for working with the Product Owner during planning, discussing and negotiating the features to be included in a sprint. The combination of a properly-framed User Story and subsequent discussion with the Product Owner about the User Story provides the team with a solid understanding of why – the purpose – a User Story is important to the business.
Once the team understands the objectives, the team takes ownership and determines the tasks and estimates that go into those features. Once the definition of the work is clear to the team, the team commits to completing the work based on the resources available and past experience (team velocity). Management doesn’t dictate terms and conditions, the team organizes itself.
As the team works on each User Story, continual dialog and adaptation will occur, true to the nature of software development. While it is important to have as much prepared in advance as possible – User Stories are the requirements, and due diligence in being as crisp and clear with the User Stories is vital – there will still be those inevitable questions about specifics as developers translate the business into working software. The team works with the Product Owner to resolve these questions, all without management guidance or involvement.
Autonomy and empowerment are powerful motivators to the members of an Agile/Scrum team.
Agile/Scrum can provide a great work environment for software teams as well as solving the key issues of improving productivity, stimulating innovation, and improving morale. The main reason that it works so well is that it is a perfect fit to the realities of software development, such as the fact that everything cannot be fully defined before the actual work begins. Since software development is an exploratory process of taking business needs and representing those needs in working software, a continual dialog is required throughout a project.
The correct implementation of Agile/Scrum can be more of a challenge than you might realize at first. The framework is deceptively simple, but this makes it easy to fall back to old habits. You may find that there are people in your organization who are not suited to working on empowered teams, and in other cases, management may be resistant to giving up control.