Joern Buchwald
Independent Software Architect
I help startups to plan software architecture and team psychology
Establishing high-performing software development teams is really hard. It requires software architecture and team structures capable of autonomy and decentralized decision-making.
The psychological foundation for this is a strong, trust-based relationship between business leaders and developers. Developers need autonomy over technical decisions and approval for investing time in software quality to make software development sustainable. Business leaders need assurance that technical decisions and time investments align with the business strategy and ultimately benefit the business.
Having worked in various roles and projects as a developer, I have witnessed this fail many times. I believe that a consciously planned sociotechnical architecture is necessary to prevent structural problems in software development. Now, as an independent architect, I've made it my mission to help startups build the right sociotechnical architecture from the beginning.
Sociotechnical Architecture
Based on past experience, best practices and scientific research, I created a framework of key capabilities for an effective sociotechnical architecture:
Build loosely-coupled software systems with built-in quality and documentation
Align system and component boundaries with product, team and technology structures
Define quality dimensions and break them down into capabilities that need to be established
Document a consistent architectural narrative to synchronize technical knowledge
Build a team structure and culture that empowers developers to make and own decisions
Build teams that deliver an external product or an internal service to other teams
Establish decentralized, collective ownership to balance product development and architecture quality
Establish an organizational culture that is based on trust, collaboration and free information flow
Establish workflows and tooling for fast and reliable delivery of changes
Embed product management at the system level to align development teams and stakeholders
Streamline the development, integration and deployment of frequent, small changes
Incorporate tools, workflows and responsibilities for operating the software into development teams
Blueprints
The goal of my work is to deliver advice that has practical value for developers. Because of this, I like to deliver my work in form of blueprints which are code repositories that contain enough codebase and documentation structure to convey the architectural bigger picture.
Want me to help?
As an independent software architect, I can be hired by startups to help them with establishing or improving development teams. Typically, I will be working as an advisor or sparring partner for a technical co-founder in an enabling role. My focus is to work on the technical and organizational structure so that development teams can work efficiently on their own. I like to become a trusted advisor that can be called in when necessary. I offer two ways two help:
Hire me to plan or improve technical and organizational structures for development teams. This may include deliverables like architecture blueprints, codebase overhauls, workshops and coaching sessions for leaders and developers.
Get unlimited access to pick my brain via audio calls, video calls or text chat. Invite me to strategic discussions to make sense of the context and the implications of technical and organizational decisions.
Interested?
Feel free to contact me in English or German to schedule a first call.
JΓΆrn Buchwald
Coding has been my passion since age 12 and my full-time profession since 2013. I have been an employee, a freelancer and a co-founder of SaaS startup that unfortunately failed. As a developer I worked for startups as well as large corporations mostly on frontend development (TypeScript, Web, Hybrid Mobile), but also backend development (Node, Java, PHP) and cloud infrastructure (CI/CD, Docker, AWS, Serverless, Kubernetes). I guess I could be called a generalist with an interdisciplinary perspective on software development. I always wanted to understand the bigger picture.
For about seven years I worked in numerous projects within different companies. As a freelancer and as an employee of a software agency I entered a lot of projects in different companies usually for a limited amount of time. It gave me a lot of insight into different projects and how development teams work.
As a developer, I was eager to solve technical problems. However, at some point I noticed something very surprising to me. The really big problems that projects struggled with were actually not technical. They often resulted in technical problems but were often caused by things like communication problems, unclear responsibilities or a bureaucratic culture in which developers felt being trapped with no agency. In the projects I worked in I always loved to listen to the stories of fellow developers and it turned out that these problems are very common. Very often, management could not get a grip on the problem and developers suffered in silence and despair. As a result, the delivered software did not meet what was promised to stakeholders and the damage was done.
Why do so many projects struggle although everyone seems to do their best? What would I recommend decision makers to do different? It bothered me to not have a clear answer to this question because I was convinced that an answer would provide huge value. Eventually, I quit my developer job to become independent again and I made it my mission to solve this. I began researching and exploring how to fit together software architecture, organizational design, software management, leadership coaching, sociological research and psychology into a consistent sociotechnical architecture.
- Master of Science
Applied Computer Science, Ruhr-University Bochum
- 10+ Projects
Since 2013: Software agency employee, Freelance developer, Technical co-founder
- Developer / Architect
Web, Mobile, Backend, DevOps, Cloud Infrastructure
- German / English
References
Here are a few of my past projects: