How to Improve Software Architecture Skills Daily

How to Improve Software Architecture Skills Daily

Thanks To the original writer :

https://levelup.gitconnected.com/how-to-improve-software-architecture-skills-daily-6f362d4e6493


3 practical exercises that you can do during any programming task.

There are many ways to grow as a software developer, and all of them will require time and effort. I suggest practical exercises that can be part of your daily tasks, with no need to start your own project or join a Bootcamp.

Find 2 or more solutions for each problem you meet

Improves problem-solving & creativity


Whether your current task is debugging, writing new code, or refactoring, dev missions are all about problems and solutions. The problem scope can vary, from reusing existing code to choosing a database.

Even if you already choose the solution, take the time to do this thought experiment.

List the trade-offs and choose a solution

Improves prioritization & detailed thinking.


Expose ourselves to more criteria, learn about other considerations why we should or should not do things.

Go over the solutions and rank how each solution meets each criterion. Keep your judgment clear; even a “bad” solution should get a good rank in some aspects.

Finally, prioritize the criteria- try to understand what aspects are the most important to your company and choose the solution that maximizes the benefits for your case. This is the work of a tech leader.

Have a technical discussion with a non-tech person

improves communication & technical understanding


Different people have different abilities to understand your work. Talking with them will force you to zoom out, generalize details into a high-level concept or zoom in on details. I would actively start discussions or try to explain a problem to someone to test my own understanding of the issue.

A detailed example for discussions

I wrote down 4 examples for types of people, what your interaction is and how an explanation will sound.


Senior engineer

Is someone with more experience than you in the subject matter or is great at asking the right questions.

Presenting to them requires you to have a deep understanding of the subject and what’s under the hood.

I often find myself going back to research some more after this kind of talk- and this is great!

“I integrated WebRTC: I added the MAOI API, integrated the Janus libraries and converted WS to WSS“


Team member /Junior

is someone with solid tech skills that you need to guide. This requires you to generalize details into clear guidelines and flows.

“I integrated WebRTC: added a new API called … , Integrated a library named … it’s documentation is …. and converted web sockets to secure web sockets, I did this in order to …”


Non-developers Technical person, such as QA or project manager

is present at discussions, and you need to work out obstacles or gain their support. It would be best if you communicated without them knowing every technical detail of your work.

“The WebRTC integration is estimated in 3 sprints and will require collaboration with backend team. I want to spend 4 more days to enhance security”


Non-developers and non-tech people, such as HR or your friends

is someone you should be able to share your work or demonstrate your qualities in a job interview, without discussing the tech aspects of the project at all.

To HR: “I integrated WebRTC, which is a protocol to transport video on the web. my work included collaboration with other teams, where I led the conversations but we all agreed on the solution together. I also took the initiative to enhance the security of the feature.”


In conclusion

I suggested 3 exercises you can do in the scope of every development task you are doing, that will help you improve your architectural skills.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了