در یکی از پروژهها، یک توسعهدهنده جدید به تیم اضافه شده بود.
چند هفته بعد از شروع کارش، در یکی از جلسات گفت:
«چرا این بخش سیستم اینقدر پیچیده طراحی شده؟»
چند نفر از اعضای قدیمی تیم لبخند زدند.
یکی از آنها گفت:
«چون تو هنوز داستانش رو نمیدونی.»
و واقعاً همینطور بود.پشت آن طراحی عجیب، چند سال تصمیمگیری، محدودیت، شکست، تغییر نیازمندی و تجربه پنهان شده بود.
اتفاق جالبی که بارها در پروژهها دیدهام این است که ما معمولاً فقط نتیجه تصمیمها را میبینیم.
نه شرایطی که آن تصمیمها در آن گرفته شدهاند.
برای همین گاهی قضاوت کردن خیلی آسان به نظر میرسد.
«من بودم اینطوری طراحی نمیکردم.»
«این معماری اشتباهه.»
«این کد باید از اول نوشته بشه.»
اما حقیقت این است که بیشتر سیستمها در شرایط ایدهآل ساخته نمیشوند.
در محدودیت زمان ساخته میشوند.
در محدودیت بودجه.
در فشار کسبوکار.
در شرایطی که اطلاعات کامل در دسترس نیست.
و شاید یکی از نشانههای بلوغ حرفهای این باشد که قبل از قضاوت یک تصمیم، سعی کنیم زمینه شکلگیری آن را بفهمیم.
نه برای اینکه از هر تصمیمی دفاع کنیم.
برای اینکه بدانیم طراحی سیستمها را فقط با نگاه کردن به کد نمیشود ارزیابی کرد.
باید داستان پشت آن کد را هم فهمید.
چون خیلی وقتها چیزی که امروز اشتباه به نظر میرسد،
دیروز بهترین تصمیم ممکن بوده است.
Post #675
318