Leveraging Leadership, Technology, and Product Management to Build Great Products
Srinath Perera

#Software_Architecture
🧠 از دانش رهبری برای گرفتن تصمیمهای بهتر در معماری نرمافزار استفاده کن. عمیق فکر کن، اما آهسته پیادهسازی کن.
⚙️ هدف کلی سیستمهای نرمافزاری — و در نتیجه معماری نرمافزار — اینه که سیستمهایی ساخته بشن که هم استانداردهای کیفی رو رعایت کنن و هم در بلندمدت یا در یک بازه زمانی مشخص، بالاترین بازگشت سرمایه (ROI) رو ارائه بدن.
🚀 یک محصول عالی، حاصل ترکیب تکنولوژی، رهبری و مدیریت محصول (شامل تجربه کاربری / UX) هست. رهبری در اصل یعنی مدیریت عدم قطعیت و گرفتن قضاوتهای درست. برای ساخت محصولات عالی، رهبران فنی باید دانش تکنولوژی، رهبری و مدیریت محصول رو با هم ترکیب کنن و تصمیمهای درستی بگیرن. بسیاری از اشتباهات فنی، از فاصله بین دانش این سه حوزه و قدرت قضاوت ایجاد میشن.
📘 در کتاب معماری نرمافزار و تصمیمگیری، سرینات پریرا مفاهیم و اصولی رو توضیح میده که معماران نرمافزار باید عمیقاً درک کنن و یاد بگیرن چطور از اونها برای مدیریت عدم قطعیت استفاده کنن. سؤالها و اصولی که در این کتاب مطرح میشن، کمک میکنن هنگام طراحی معماری نرمافزار، عدم قطعیتها بهتر مدیریت بشن و یک فریمورک مشخص برای تصمیمگیری فراهم بشه. این کتاب برای تمام رهبران فنی صنعت نرمافزار مناسبه؛ افرادی که درباره سیستمهایی که میسازن قضاوتهای جامع و کلنگر انجام میدن، و همینطور برای رهبران آیندهای که در حال یادگیری این مهارت هستن.
🧩 این راهنمای جامع، اصول و مفاهیمی — چه فنی و چه غیرفنی — رو توضیح میده که معماران نرمافزار، مهندسان ارشد نرمافزار و تکلیدها باید برای مدیریت عدم قطعیت اجتنابناپذیر در ساخت سیستمهای نرمافزاری درک کنن تا بتونن محصولات مسئولیتپذیر و موفقی ارائه بدن.
📚 این کتاب برای چه افرادی مناسبه؟
🎯 این کتاب یک منبع ارزشمند برای افرادی در صنعت نرمافزار محسوب میشه که میخوان تخصص فنی رو با رهبری مؤثر ترکیب کنن. بهخصوص برای این گروهها مفیده:
👨💻 رهبران فنی فعلی و افرادی که قصد دارن در آینده وارد این نقش بشن: برای تقویت مهارتهای رهبری و تصمیمگیری در معماری نرمافزار.
🛠️ اعضای فعال و مسئولیتپذیر تیم: برای اینکه بدون توجه به نقششون، تأثیرگذاری بیشتری روی پروژههای تیمی داشته باشن.
💡 یادگیرندهها و نوآورها: برای الهام گرفتن از دستاوردهای تاریخی فنی و استفاده از اونها در توسعه نرمافزار مدرن.
📈 این کتاب انتخاب خیلی خوبی برای افرادیه که میخوان پیچیدگیهای معماری نرمافزار رو با قضاوت آگاهانه و مهارتهای رهبری مدیریت کنن.
👤 درباره نویسنده
⚡ سرینات پریرا در ۲۰ سال گذشته یکی از توسعهدهندههای متنباز آپاچی بوده. او نقش مهمی در معماری پروژههایی مثل آپاچی اکسیس۲، آپاچی ایراواتا، دبلیواساو۲ سیایپی (سیدهی) و دبلیواساو۲ کوریو داشته.
🔧 او دو SOAP Engine طراحی کرده و در ساخت چهار مورد دیگه هم مشارکت داشته. همچنین بهعنوان Committer — توسعهدهندهای که دسترسی مستقیم برای ثبت تغییرات در کدبیس داره — در پروژههای آپاچی اکسیس، اکسیس۲، آپاچی جرونیمو و آپاچی ایراواتا فعالیت کرده.
🎓 بعد از اتمام دوره دکتری، در سال ۲۰۰۹ به شرکت دبلیواساو۲ پیوست. محصولات این شرکت توسط بسیاری از شرکتهای فورچون ۵۰۰ مثل خطوط هوایی، بانکها و دولتها استفاده میشن.
🏗️ در دبلیواساو۲، او نقش بازبینی معماری رو برای بیش از ۱۰ پروژه و بیش از ۱۰۰ انتشار نرمافزاری برعهده داشته. همچنین صدها معماری راهکار مشتری و استقرار سیستمها رو بررسی کرده و در هزاران جلسه بازبینی معماری حضور داشته.
📄 او بیش از ۴۰ مقاله پژوهشی داوریشده منتشر کرده که توسط هزاران مقاله علمی دیگه مورد ارجاع قرار گرفتن.
Leverage leadership knowledge to make better software architecture decisions. Think deeply but implement slowly.
The overarching goal of software systems (hence, for software architecture) is to build systems that meet quality standards and that provide the highest return on investment (ROI) in the long run or within a defined period of time.
A great product requires a combination of technology, leadership, and product management (including UX). Leadership is primarily about managing uncertainty and making the right judgment. To build great products, technical leaders need to combine technology, leadership, and product management knowledge, and make the right decisions. Many technical mistakes come from the gap between knowledge about these three items and judgment.
In Software Architecture and Decision-Making, Srinath Perera explains principles and concepts that software architects must understand deeply and how to employ those principles to manage uncertainty. The questions and principles discussed in this book help manage uncertainty while building software architecture and provide a framework for making decisions. This book is for all technical leaders in the software industry who make holistic judgments about the systems they build and for future leaders learning the craft.
This definitive guide explains principles and concepts--technical and non-technical alike--that software architects, senior software engineers, and technical leads must understand to manage the inevitable uncertainty involved in building software systems and to drive success of the products for which they are responsible
This book is a valuable resource for individuals in the software industry who aim to merge technical expertise with effective leadership. It's particularly beneficial for:
Ideal for those seeking to navigate the complexities of software architecture with informed judgment and leadership skills.
Srinath Perera has been an Apache open source developer for the last 20 years. He has played a major role in the architecture of Apache Axis2, Apache Airavata, WSO2 CEP (Siddhi), and WSO2 Choreo. He has designed two SOAP engines and helped build four. He is a committer (a developer who can commit to a code base) for Apache Axis, Axis2, Apache Geronimo, and Apache Airavata.
He joined WSO2 in 2009 after finishing his PhD. WSO2 products are used by many Fortune 500 companies such as airlines, banks, and governments. At WSO2, he has played an architecture review role for 10+ projects and 100+ releases. He reviewed hundreds of customer solution architectures and deployments and sat in on thousands of architecture reviews. He has published 40+ peer-reviewed research articles, which have been referenced by thousands of other research publications.









