Home / Blog / How to be an architect and still have a time to coding?

How to be an architect and still have a time to coding?

12 Nov 2018 | cooperation software architecture

The way your work looks like depends to a large extent on the company you are in and the number of tasks you have to do. What to do in order to find time for coding? Check out our article from the “everyday life of the Systems Architect” series.

What do we do as a system architect?

Good question. How about we start with who the system architect is? In many organizations, it is a man who was a developer, but due to experience as well as analytical and interpersonal skills (and of course many other characteristics), we become the system architect. A visionary. We have a vision of the system (more often a piece of the system), which we translate into tasks for the development team.

As architects, we must set standards that are applied in the project, but it is also important to give the teams a free hand on how to do something. In a perfect world, everything goes well, everybody understands everything, the dev teams have few questions and yet, they know what to do. In a perfect world. But how does it look like in everyday work at a software house?

I guess more interesting, because something can always spill out…yes, you know sometimes it happens. In fact, the work of the systems architect is a continuous meeting, answering questions, often a lack of understanding at the level of architect-developers, as well as architect-architect. As a result, architects spend a lot of time on conversations, consultations, creating documentation, and very little on … coding.

What we don’t do as the system architect?

Exactly this, from where it all began. Coding. Lack of the possibility of coding is a basis for frustration, don’t you feel like it? Imagine that you really love doing something and you do it for many years. However, each year, you get challenges and duties that slowly, though systematically, move you away from your beloved activity. This is how most of us feel. And yet the key thing for us is knowing the code, coding trends. Why? Because it keeps us in touch with the developer’s reality. Without knowing current coding practices we may become off base.

Unfortunately, the amount of time we as architects dedicate to the code is rather slim. This is simply because of the multiplication of meetings. Of course, meetings are very important, because they allow you to discuss what has been done, what else needs to be done and how to deal with the challenges. In addition, it is the meetings with business and CTO that give direction to further work. Fortunately, there is one simple (in theory) trick …

How to code more?

Of course, I won’t reinvent the wheel, if I write, that my trick is delegating tasks. It is known, however, that every man who has a lot of responsibility has a problem with delegating his to-do’s (well, unless someone generally likes, when others do everything for him/her). It is related to the fact that we are afraid. We are afraid that someone will not do it well enough, and it is required of us that the system will work.

A big role in whether the System Architect will be able to see the code more often is played by his dev team. Yes, it’s up to them if the architect can do it. Not only to answer questions and participate in meetings. An architect is also a developer that likes to code.

Precisely, work organization is the key to success. The more time the architect has to concentrate on doing analytics, constructing the requirements well and planning the work for the team, the fewer questions and explanatory meetings it will be during work time. The need to focus and properly transposed business requirements into the work of developers will definitely help the entire team work.

What else distracts us from coding? Bureaucracy and documentation. This is probably the pain of most people responsible for the project. Architect! Look for a person in your environment who can help you with it. Often, a project manager can be that person. Again, delegating tasks!

In general, when the work structure is flattened, more tasks are delegated to the teams. And yes, it definitely helps. But delegated tasks are mainly coding tasks. How to keep some coding for you? Let me tell you more about it the next time.

still-coding.jpg

3 ways to make your job easier.

Architect, let me help you.

  • Create a team that you trust

In a situation when you’re working with someone for the first time, give him/her a leap of faith. Sure, at the beginning you need to check what they have done in the code, but you have a team leader or a QA for it. Know that, they also care about delivering effective pieces of the system.

How to build trust? Through communication. When communication is failing, there’s no understanding. Then how good is it, what you guys are doing? What do you do? If you can not get along (which unfortunately happens).

  • Create acceptance criteria

Thanks to them, you’ll be able to features on time, and the team will know what it’s billed for.

  • Be open for consultations

Every architect has its own vision and wants it to be implemented. As clear as bell. Pure and simple, after all, this is why we are visionaries. However, it’s probably worth listening to the team sometimes to work out the best solutions. It’s the best for your cooperation with the team and a piece of the system that you create and above all, of course for business.

Our architect’s real-life

As you can see, the architect’s job is a series of tasks and broad competences. In our articles, we try to bring closer an everyday life of the software house. Ordinary situations, our challenges, and successes. If you have any stories related to this topic, don’t hesitate to share it with us! Let’s create a place where we can share our experience and still remain human in a tech world.

So, what are your experience in working with architects or as a System Architect?

Avatar

Adam Krosny

Adam is a natural leader which is often evident during various it projects. Intuitive and visionary, he is skilled at designing software architecture and guiding the team in the right direction.