⚖How to Balance Hands on Coding with Architecture Design

Reeshabh Choudhary
2 min readDec 1, 2023

👷‍♂️ Software Architecture Series — Part 5.

😇“In the utilization of a theatre of war, as in everything else, strategy calls for economy of strength. The less one can manage with, the better; but manage one must, and here, as in commerce, there is more to it than mere stinginess.” — CARL VON CLAUSEWITZ, 1780–1831.

🏃Most software developers, having transitioned to the role of architect, face the dilemma of striking a balance between hands-on coding and designing architecture. Both are time intensive activities and require lot of focus and energy. Although, an architect majorly utilizes technical breadth, he/she is supposed to maintain a certain level of technical depth as well. However, an architect is not a full-time software developer now. If he/she decides to own up a critical path of the project, it might end up being a bottleneck.

🎡Hence, an architect must effectively delegate such tasks to the development team and can instead pick up on some business functionality related tasks, which are supposed to be released in future iterations. It also gives the architect an exposure to the pain points of development team in development environment.

⏳Other approach can be to do POCs on critical solutions to make a decision for choosing the best one. While doing POC, architect can acquire a firsthand implementation experience and better estimate amount of effort required to develop full solution. It also allows to gauge upon architectural characteristics such as scalability, performance, fault-tolerance, etc.

🕵An architect can also get actively involved in picking up bugs and doing code reviews, which will give him/her a good amount of exposure to existing source code and its pain points.

💡Remember, any architect trying to be a one-man (woman) show, is bound to get trapped in bottle necks and bring upon huge technical debts to organizations. The crusade to control everything has always led to disasters. Instead, organizations must foster a trusting environment, where works can be effectively delegated to designated teams and their bottlenecks are addressed time to time, increasing their active participation in improving the quality of their daily work.

🔋Energy can neither be created or destroyed. It can only be transformed from one form to other.

#softwarearchitect #devops #balance #architecture #softwaredevelopment #coding #programming

--

--

Reeshabh Choudhary

Software Architect and Developer | Author : Objects, Data & AI.