We believe that programmers, as a rule, are self-motivated. They want responsibility and they want to make good software that is useful. Just look at the open source movement. Thousands of people give away software that they build on their own time. On top of that, they organize their work among each other, without direction or management. They collaborate as peers and the results are miraculous. Open source software is among the highest quality of any in use– including software developed with huge budgets and numberless employees.
If programmers do all this after they go home at night, after a hard day of work, what do they do when they are fresh and getting paid? Paradoxically, not nearly as much.
Sadly, programmers are limping into work, going through the motions, largely disengaged. The systems that organize and manage them are failing– miserably. Armies of motivated and able coders are wasted, yielding products that miss the opportunity to solve real problems in new and novel ways.
Ever changing management programs are dispatched to improve the situation, but nothing really makes a difference, nothing that gets anywhere near the results of open source development.
If motivation and ability aren’t the problem, why can’t we connect the dots and ignite the potential that lays fallow in software companies around the world? Because we need a major paradigm shift– a revolution in management thought.
If you look closely at the predominant management practices, you’ll see they are founded on false beliefs. Below are just a few:
- Programmers are unable or choose not to understand the business implications of what they are building. They cannot align themselves with the best interest of the organization without help.
- Programmers cannot direct their work at a higher level. They need a backlog of tasks that they can execute one at a time. They need someone else to prioritize and maintain this backlog.
- Programmers do not know how to collaborate with each others. They need someone to schedule and run their meetings and make assignments.
- Programmers are not motivated to work unless they are required to give status reports at least daily. Otherwise they will waste time.
Do any of these assumptions ring true? If you’ve been programming in a corporate environment for awhile, they probably will. And it doesn’t seem to matter which process is in use (Agile, XP, Scrum, Kanban, Waterfall, etc..). Someone always manages to change it into the same old command and control game they have been playing for decades. It is the only game that most managers even understand anymore.
But there is another way. Exciting business practices have started to emerge under the umbrella of the self-management movement. If you are unfamiliar, self-management means pretty much what it sounds like–managing yourself. But here it is not just a meaningless platitude. Self-managing organizations are literally doing away with management positions and finding ways to share these responsibilities among all employees. They are obliterating the corporate hierarchy.
Merely removing managers is not all there is to do. Proper conventions and processes must be in place or the whole thing will likely collapse. Success in a self-managed organization is closely tied to how uniquely tailored it is to your organization. Off the shelf solutions frequently fail. Employees not only need to buy into these ideas, but they must be a part of creating a unique system that serves their needs.
This makes the idea of trying self-management intimidating. Many fear it. But they needn’t. The self-management community is remarkably active and helpful information and examples are increasingly prevalent. Related movements under different names also abound. As we already pointed out, open source software provides wonderful insight. Additionally, studies about new approaches in government, business, non-profit, religion, science, military, and even nature are also instructive.
Inspiration is everywhere–if you know what to look for. That is where flatwire can be helpful. We not only collect and categorize the wealth of information available, but are focused on presenting how it specifically applies to building software. Self-management is how to reclaim the excitement and energy of dissatisfied engineers. Let us help you move into the future of work and take advantage of the full creativity of your workplace.