Jump to ratings and reviews
Rate this book

Thinking Architecturally

Rate this book
New software technology appears every year. Like clockwork, another language, library, pattern, or approach will arrive on the scene with plenty of hype and developer enthusiasm. As someone whose job requires making architectural decisions, you need to evaluate these new technologies with an eye toward the inevitable tradeoffs before deciding if a new framework or language is right for your project.

In this ebook, solution architect Nathaniel Schutta guides tech leads, senior developers, junior developers, and of course, practicing architects through the process of appraising promising new technologies. Recognizing how today’s tech is informed by the past is a key part—some approaches that didn’t work years ago might now have all the ingredients to succeed. You’ll learn how to make effective decisions regarding the use of new tech solutions and explore the value of fitness functions to ensure that your ultimate choice is reflected in the codebase.

58 pages, ebook

Published May 14, 2018

4 people are currently reading
103 people want to read

About the author

Nathaniel Schutta

6 books5 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
11 (20%)
4 stars
20 (36%)
3 stars
20 (36%)
2 stars
4 (7%)
1 star
0 (0%)
Displaying 1 - 11 of 11 reviews
13 reviews
July 22, 2023
This book helps in understanding what it takes when evaluating different technologies or solutions for your project/org and how to think strategically for your solution to be implemented and maintained in a long run
Although, it would have been great if there were more real world analogies
Profile Image for سامح دعبس.
188 reviews58 followers
March 13, 2020
عادة، تناقش كتب معمارية البرمجيات (Software Architecture) مواضيع ثابتة، مثل ماهية المعمارية (Architecture)، وكيفية عمل التصميم المعماري (Architecting)، ومواصفات ومهارات وأدوات المعماري (Architect) والمتوقع منه، ومواضيع أخرى متفرعة عن الثلاثة مواضيع الرئيسية هذه. لكن توجد بعض الكتب التي تناقش موضوعا واحدا فرعيا بعمق أكبر، ومن هذه النوعية: الكتاب الذي بين أيدينا اليوم، كتاب "التفكير المعماري Thinking Architecturally"، لمؤلفه "ناثانيال شوتا (Nathaniel Schutta)"، الذي يناقش كيف يتعامل المعماري مع التقنيات، وقد نشرته مؤسسة "أوريلي (O’Reilly Media)" سنة 2018.

من المشاكل المزعجة التي تواجه معماريي البرمجيات، والمطورين بصفة عامة، في التعامل مع التقنيات: مشكلة عدم القدرة على متابعة التغير السريع والمستمر في الصناعة، ولحسن الحظ، هذه أول مشكلة يتعامل معها الكتاب أيضا!
ومما تناول به المؤلف المشكلة: أهمية التقنيات "القديمة" وأن معرفتها ليست شرا محضا؛ فقد تكون مفيدة جدا، خاصة إذا علمت أن التاريخ يعيد نفسه في الصناعة، وأن التقنيات كثيرا ما تموت ثم تحيا بوجوه مختلفة، وهذا يعطيك بصيرة في تقييم التقنيات الحديثة إذا ما قارنتها بتقنيات قديمة مشابهة اختفت، وهل أسباب اختفائها اختفت معها أم لازالت موجودة. وقد تكون مفيدة من الناحية المادية إذا كانت مستخدمة بكثرة في فترة ما، ثم لم يعد يعرفها أحد إلا قليلا، وهؤلاء القليل ستكون أجورهم مرتفعة بلا شك بسبب الندرة.
ليست هذه دعوة بالطبع لأن تعيش ديناصورا في وسط هذا العالم المتغير، بل هي دعوة للواقعية في التعامل مع التغيرات السريعة، ولذلك يأتيك المؤلف بمجموعة من النصائح حول كيفية مواكبة هذه التغيرات السريعة، وكيفية اختيار التقنيات التي ستتعلمها، مثل أهمية التركيز وعدم التشتت في تعلم كل جديد، وينصح بمتابعة الدوريات التي تتابع وتقيم التقنيات الحديثة، مثل Thoughtworks Technology Radar، [https://thght.works/38BhkCV]، الذي يصدر مرتين في السنة، وأن يكون لك "رادارك الخاص" للتقنيات في مؤسستك وفي خطة تعلمك الشخصية، وأن تنشيء أو تشترك في نادٍ لمناقشة الكتب التقنية (book club)، وتشترك في الاجتماعات التقنية (technical meetups)، وغيرها من النصائح المفيدة.
كتبت من قبل مقالتين في نفس الموضوع، يمكن الرجوع إليهما من هنا:
الأركتكت الدحيح [http://bit.ly/2W3xB0G]
Learn technologies just in need not just in time! [http://bit.ly/3cM2XyT]

الآن، عرفت عن التقنيات المتاحة وتعلمت الذي تراه مهما منها، ستواجهك المشكلة الثانية: كيف تختار التقنيات المناسبة لمشروعك الجديد؟
كثيرا ما تحدث هنا مشكلة الاختيار بسبب الموضة الحالية (current fad) أو بسبب التعود وعدم الرغبة في الخروج من منطقة الراحة (comfort zone)، أو بسبب الرغبة في ذكرها في السيرة الذاتية (CV)! هنا ينصحك المؤلف بضرورة دراسة مميزات وعيوب الاختيارات والبدائل المختلفة والحالات المناسبة لكل اختيار فيها، وهل تنطبق على حالتك أم لا، والمخاطر المصاحبة لكل اختيار وكيفية معالجة وتخفيف هذه المخاطر، وإجراء التجارب الاختبارية (proof of concepts) المناسبة لمشروعك، وغيرها من النصائح المفيدة.
الكتاب ممتع بصفة عامة، لكن الفصل الرابع الذي يتحدث عن تقييم واختيار التقنيات هو أمتعها على الإطلاق، حتى أني كنت أضع اللمسات الأخيرة من مقالة عن نفس الموضوع، ثم عدلت عن نشرها بعد قراءة هذا الكتاب بسبب الفوائد الكثيرة التي ذكرها وغابت عني، فلا يفوتكم الكتاب، على الأقل هذا الفصل. ولمزيد من التحميس على قراءة هذا الفصل، دعني أخبركم أن دراسة الحالة التي ذكرها المؤلف في هذا الفصل هي المقارنة بين React و Angular!

ثم نأتي للمشكلة الثالثة: كيف نقنع الفريق والإدارة بتبني هذه التقنيات التي اخترناها؟
كثير من الناس يتخذون رفض التغيير مبدأً، ومنهم من يخشى أن يسبب له هذا التغيير تهديدا لمكانته أو وظيفته، ومنهم من يشكك في جدوى التغيير لعدم رغبته في الخروج من منطقة الراحة، وغير ذلك من الأسباب. الشاهد أن التغيير صعب، كل تغيير صعب، ويحتاج لصبر وطول زمن ومهارات شخصية "وسياسية" وتسويقية ممن يقود هذا التغيير، الذي هو أنت أيها المعماري!
وهنا يعطي المؤلف بعض النصائح مثل عقد ورش العمل، واستجلاب أناس من الخارج؛ فزامرُ الحي لا يُطرِب - كما يقول المثل - وكسب تأييد المؤثرين في صناعة القرار، وغيرها من النصائح.

المشكلة الرابعة والأخيرة التي يعالجها الكتاب: كيف نحافظ على اختياراتنا التقنية في المشروع؟
هنا المؤلف يتكلم بصفة عامة عن المتطلبات غير الوظيفية (non-functional requirements)، وكيفية اختيارها واستدامتها في المشروع من خلال تلخيصه لبعض أفكار كتاب "بناء معماريات تطورية Building Evolutionary Architectures"، وقد تحدثنا عن نبذة من هذه الأفكار في مقالة "تزاحم المصالح في معمارية البرمجيات (Software Architecture trade-offs)" [http://bit.ly/3aIHeWD ]، فيمكن الرجوع إليها لمن أراد.

وبعد، فالكتاب لطيف جدا، وسهل اللغة، والجميل أنه صغير جدا بالنسبة لكتب البرمجة، فهو مجرد 57 صفحة، وبه تمارين تساعد على تعزيز مهارات التفكير المعماري في آخر كل فصل (Architecture Katas)، والأجمل أنه يمكن الحصول على نسخة شرعية مجانية منه من هنا [http://bit.ly/3aPJ7B7]، ولذلك فأنا أرشح هذا الكتاب بشدة، خاصة لمن بينه وبين التعلم من الكتب حاجز نفسي.
Profile Image for Luboš.
495 reviews58 followers
July 9, 2018
A decent brochure (short to read). I have already heard a lot during his talk at Devoxx conference, but still worth reading. Very inspiring for aspirants on the architect role and/or eye-opener for developers.

Available for free
2 reviews
June 13, 2022
It's a simple but interesting read on some factors you have to consider as a software architect.

I think the most practical aspect for it are the katas included into the book that work as practical exercises for the reader. Which I think can comfortably be translated into regular practice for mapping(to discover and catalogue) and evaluating technologies apply.

I particularly especially like the consideration he puts into the human aspects of planning, like whether developers will have ready access to documentation or stack overflow when deciding to use technologies. And his advice to consider past office political issues and present ones, as they do play a role in discovering suitable technologies for each specific company context.
Profile Image for Yury Jefse.
99 reviews4 followers
December 26, 2018
O livro retrata muito bem como é a jornada de mudança de tecnologia em uma empresa na visão de um arquiteto de software como também de um usuário de negócios. Apresentando algumas ferramentas para melhorar essa mudança tanto na área tecnológica quanto na pessoal como no gerenciamento da expectativas do time técnico e não-técnico. Recomendado para quem quer um livro pequeno e leve sobre alguns desafios de um arquiteto de software.
Profile Image for Dan.
6 reviews1 follower
May 28, 2018
Full of down-to-Earth practical advise for (present or future) software architects, but worth reading for most software developers too.
Profile Image for Anish K George.
69 reviews2 followers
April 2, 2019
Many things that are told already many times are retold. Title is a bit misleading.
Profile Image for Baskoro Indrayana.
15 reviews2 followers
February 2, 2019
Schutta does a great job in presenting what a software architect does; and the opportunities, losses, hard-earned lessons (only via experience), X factors, and considerations to take. Instead of us having to spend a decade plus plus, he shared all of them by one shot here.

What I love about the book is that he explicitly recommends that *junior* roles read and get insights from this book. This recommendation should not be overlooked.

Being in a relatively senior role of my company, I totally approve of that: too many developers (and 'engineers' and other roles with similarly limited scope/responsibility), including myself in the past, get sucked into the code vortex, unaware or careless about the big picture. The big picture (use case and requirement-level knowledge) is actually from which your clientele pay your company for. There's much more to software/data system/whatever system than code/script/unit technical level.

This book is not a complete expository text. But as per its title, it provides you with a gentle introduction to the architecture realm and the right "thinking" for you there.
Profile Image for Viktor Malyshev.
138 reviews5 followers
April 12, 2021
Great book about the basics of architecture and how to start thinking in terms of it. Why basics? It stands for a few well-known ideas like changes are inevitable, evaluating pros and cons, accepting risks, etc. Nothing new, but still very useful.
Will be a great start for anyone new in software arch.
Profile Image for James Igoe.
102 reviews19 followers
October 9, 2018
An overview of architectural decisions, the politics and persuasion involved, and the needs to balance competing measures and attributes. A fairly easy read, but full of great suggestions, and, for many, reminders of how to handle being a senior developer or architect.
Displaying 1 - 11 of 11 reviews

Can't find what you're looking for?

Get help and learn more about the design.