
“Once again Saltmarch has knocked it out of the park with interesting speakers, engaging content and challenging ideas. No jetlag fog at all, which counts for how interesting the whole thing was."
Cybersecurity Lead, PwC
In software development, practitioners must have an architectural mindset, understanding the implications of technology decisions, analyzing trade-offs, and consistently updating their technical knowledge.
This article shares some of the insights from a thought-provoking talk given by Mark Richards at the Great International Developer Summit (GIDS) 2023 in Bengaluru, India. Mark, a seasoned software architect and author, shared his insights on how software practitioners can expand their architectural thinking to create more effective and efficient software solutions. You can watch the full talk here for free.
In this article, we delve into the key points from Mark's talk, including understanding the broader context of your work, analyzing trade-offs, expanding technical knowledge, and the importance of avoiding over-evangelizing any particular technology or framework. We also discuss the "20-minute rule", a daily practice Richards recommends for expanding your technical breadth.
Architectural Thinking Mindmap
The first step in thinking like an architect is to understand the broader context of your work. This involves identifying the key characteristics that your architecture needs to support. For instance, if your business prioritizes time-to-market, your architecture should support characteristics like maintainability, testability, and deployability.
Every decision in software architecture involves trade-offs. For instance, you might have to choose between performance and maintainability. The key to making these decisions is understanding the business drivers. If time-to-market is a priority, you might opt for maintainability over performance, even if it means your system will run a bit slower.
It's also important to avoid the "out of context" trap. This occurs when you make decisions based on a list of pros and cons without considering the specific context of your project. For example, while a shared library might seem like the best choice based on a general scorecard, a shared service might be a better fit for your specific project if you're using polyglot programming and need to manage frequent changes to shared functionality.
To stay ahead in the field, it's crucial to continuously expand your technical knowledge. Resources like InfoQ, DZone Refcards, and the ThoughtWorks Technology Radar can help you stay updated on the latest trends and technologies.
However, it's not just about knowing what's new. It's also about understanding what these technologies do, why they exist, and how they differentiate themselves from others. For instance, you don't have to code in every new programming language, but you should understand what they do and why they're there.
While it's natural to get excited about a new technology or framework, it's important to avoid over-evangelizing. This can hide the trade-offs that inevitably exist, leading to decisions that might not be in the best interest of the project. Remember, everything in software architecture is a trade-off.
Finally, consider adopting the "20-minute rule". Spend at least 20 minutes each day expanding your technical breadth. This could involve reading articles, exploring new technologies, or even just creating a list of words you've never heard of. The key is to make this a part of your daily routine, ideally first thing in the morning.
In conclusion, thinking like an architect doesn't necessarily mean you have to become one. Whether you're a developer or an aspiring architect, adopting an architectural mindset can help you create more effective and efficient software solutions.
Have questions or comments about this article? Reach out to us here.
Banner Image Credits: Mark Richards Speaking at Great International Developer Summit
“Once again Saltmarch has knocked it out of the park with interesting speakers, engaging content and challenging ideas. No jetlag fog at all, which counts for how interesting the whole thing was."
Cybersecurity Lead, PwC
“Very much looking forward to next year. I will be keeping my eye out for the date so I can make sure I lock it in my calendar."
Software Engineering Specialist, Intuit
“Best conference I have ever been to with lots of insights and information on next generation technologies and those that are the need of the hour."
Software Architect, GroupOn
“Happy to meet everyone who came from near and far. Glad to know you've discovered some great lessons here, and glad you joined us for all the discoveries great and small."
Web Architect & Principal Engineer, Scott Davis
“Wonderful set of conferences, well organized, fantastic speakers, and an amazingly interactive set of audience. Thanks for having me at the events!"
Founder of Agile Developer Inc., Dr. Venkat Subramaniam
“What a buzz! The events have been instrumental in bringing the whole software community together. There has been something for everyone from developers to architects to business to vendors. Thanks everyone!"
Voltaire Yap, Global Events Manager, Oracle Corp.