Decentralize Authority in Software Development

Rafael A. George Duval
3 min readJan 29, 2023

Maintaining integrity in your work and business dealings is crucial for success. You need to be selective in your business dealings and avoid allowing a big contract to dictate the direction of your organization.

Each customer has their agenda. In their perfect world, they would have your organization cater only to their needs. Do not allow a big contract to force the direction of your organization. Be calculated with who you do business. Have faith that those who want your services will come; it will be on your terms when they do. The company established goals that need to be met, and each employee is part of the same company and should know how to contribute to those goals. Focus on the agendas that promote company values and goals.

Maintaining integrity in your work is of utmost importance. Engage in collaborative work compromises the main thought behind a design by dividing it among several parties. One consistent “piece” or “faith” must be the product of one mind, lest two or more related pieces or faiths are strung together.

Allowing any client to interject in implementation guidance is troublesome to the process. He becomes a collaborator, but worse, as he is likely to need to be educated or skilled in the craft he seeks to inform. Imagine a customer at a restaurant. He is free to order Filet Mignon instead of Chicken Cordon Bleu, but it would be neither permissible nor productive for him to insist on the type of pan to cook it or dictate the presentation of the food on the plate. This is the domain of the chef. It is for him to produce the most delicious and beautiful presentation. The customer must accept (or reject) the whole product. Each acts with full autonomy and authority over their stewardship and then submits that work to the other. In this way, an employer and an employee are not different from a chef and a customer.

A free-form corporation can operate like a micro-free market, utilizing individuals who exchange work under their control. What are the similar stipulations for working in the world of software development? What rules can maintain product integrity and consistency for software engineers? How can we collaborate in the large software firms that exist today?

Delegate authority over each part of your system. Delegate this authority to individuals, not teams. If you have defined and separated components, divide them among your engineers. Do away with architecture and shared service committees. Engineers can organize their interactions with each other and write their communication tools. Better tools will win the day because engineers will rally around the best ideas and implementations. By decentralizing these efforts, best practices can surface. But, committees or boards will mandate practices that must be tuned to each necessary context. The result is more likely to be an obstacle than an aid.

In the open-source community, even though many of their practices may differ from their peers, high-quality code is produced. The world can profit from its work, but it does not dictate the outcome. Individuals take care to guard their implementations; they go as slow as they need to and spend extra time designing. In their perfect world, they would have your organization cater only to their needs. Do not allow a big contract to force the direction of your organization. Be calculated with who you do business. Have faith that those who want your services will come; it will be on your terms when they do. Focus on the agendas that promote company values and goals. The company established goals that need to be met, and each employee is part of the same company and should know how to contribute to those goals.

--

--

Rafael A. George Duval

✍🏼 Indie writer, chief editor of https://snippetsoftext.substack.com/ | 💻 Software Engineer | 📊 Tech Leadership