Three Wishes

  • یوسف مهرداد بی‌بالان

وقتی دوست خوبم مهدی داشت می‌رفت، نامه خداحافظی‌ قشنگ و آموزنده‌ای نوشته بود که بخش کوچکی از آن را در اینجا آورده‌ام.

I wish you three things;
Hope for without hope, we cease to be dreamers.
I wish you courage, for it takes courage to listen to and follow your heart.
But above all, I wish you love, for love heals, love endures and love conquers all.

گزیده:

“You know what, your imagination works faster than your mind.” Simona Panova

اسکرام SCRUM – بخش هفتم

  • یوسف مهرداد بی‌بالان

مترجم: مهندس علیرضا اسماعیلی

بخش اول
بخش دوم
بخش سوم

بخش چهارم
بخش پنجم
بخش ششم

۱-۵-اجرای اسپرینت(Sprint execution)
پس از برنامه­ریزی اسپرینت و توافق در مورد دستور کار اسپرینت جاری، تیم توسعه­ وظیفه­ها(Task) را با هدایت استاد اسکرام انجام می­دهد، با این هدف که ویژگی­ها به عنوان «انجام­شده»(Done) پذیرفته شوند. «انجام­شده» بدین معناست که کارهای لازم برای توسعه­ی یک ویژگی­ با کیفیت، با درجه­ی بالایی از اطمینان انجام شده است.

وظایفی که تیم انجام می­دهد، دقیقاً به ماهیت کار بستگی دارد. برای نمونه می­تواند کارهای صرفاً نرم­افزاری یا ترکیب آن با کارهای سخت­افزاری و حتی کارهای بازاریابی باشد.

چگونگی و ترتیب انجام وظیفه­ها را کسی به تیم توسعه تحمیل نمی­کند. بلکه اعضای تیم، کارها و وظایفشان را تعریف نموده و سپس خود را به بهترین شیوه برای تحقق اهداف اسپرینت سازماندهی می­کنند.

۱-۶-اسکرام روزانه(Daily Scrum)
اعضای تیم توسعه، جلسه‌ی «اسکرام روزانه» را در هر روز از اسپرینت و ترجیحاً در یک زمان مشخص برگزار می‌نمایند که مدت آن ثابت و حداکثر 15 دقیقه است. برای ترغیب به کاهش زمان جلسه، افراد آن را به صورت ایستاده برگزار می‌کنند و از این رو آن را «جلسه ایستاده روزانه»(Daily stand-up) نیز می­نامند.

رویکرد رایج در اجرای اسکرام روزانه این است که هر یک از اعضای تیم برای اطلاع دیگران به کمک استاد اسکرام و به سه پرسش زیر پاسخ می‌دهد:
○ بعد از اسکرام روزانه‌ی قبلی، چه کارهایی را انجام داده‌ام؟
○ تا اسکرام روزانه‌ی بعدی، چه کارهایی را برنامه‌ریزی کرده‌ام؟
○ چه مشکلات و موانعی جلوی پیشرفت مرا می‌گیرند؟

با پاسخ هر یک از اعضا، دیگر اعضای تیم در جریان کلی امور، میزان تحقق اهداف اسپرینت، تغییرات برنامه‌ی روز جاری و کارهای ضروری و فوری قرار می‌گیرند. اسکرام روزانه امری مهم برای کمک به تیم و به منظور مدیریت سریع و منعطف کارهای اسپرینت است.

اسکرام روزانه جلسه‌ای برای حل مشکلات نیست. در بسیاری از تیم‌ها گفت‌وگو درباره‌ی مشکلات پس از جلسه و در گروه‌هایی کوچک با حضور افراد علاقه‌مند به موضوع انجام می‌شود. اسکرام روزانه با جلسات مرسومِ گزارش وضعیت کار در پروژه‌ها متفاوت است؛ به‌ویژه جلساتی که اغلب به دعوت مدیر پروژه و برای به‌روزرسانی وضعیت پروژه برگزار می‌شود. با وجود این تفاوت، اسکرام روزانه نیز برای اطلاع‌رسانی وضعیت اقلام بک‌لاگ به اعضای تیم مفید است. اساساً اسکرام روزانه فعالیتی برای «بازرسیِ» برنامه­ریزی روزانه، ایجاد هماهنگی و تطبیق آن با شرایط جاری است که به تیم خودسازمانده(Self-organizing team) در انجام بهتر کارها کمک می‌کند.

اسکرام از تمثیل «خوک» و «مرغ» استفاده می­کند تا افراد شرکت‌کننده در اسکرام روزانه را به دو دسته تقسیم کند: دسته اول افرادی هستند که باید مشارکت و حضوری فعال داشته باشند (افراد اصلی) و دسته دوم افرادی که فقط می‌توانند شنونده باشند (افراد فرعی). حیوانات مزرعه از یک داستان قدیمی اقتباس شده‌اند: «خوک و مرغ تصمیم می‌گیرند تا شریکی رستورانی تأسیس کنند. مرغ پیشنهاد می‌کند که فهرست غذای آنها شامل ژامبون گوشت (سهم خوک) و تخم‌مرغ (سهم مرغ) باشد. خوک با این پیشنهاد مخالفت می‌کند، چرا که سهم آن دو در شراکت به یک اندازه نیست. خوک برای تهیه ژامبون گوشت باید از جانش (گوشتش) مایه بگذارد ولی مرغ نیازی ندارد که از جانش مایه بگذارد و فقط کافی است که تخم بگذارد.» در اینجا، «مرغ فقط مشارکت می‌کند، در حالی که خوک متعهد (Committed) است و باید از جانش مایه بگذارد». روشن است که کاربرد چنین تمثیلی در اسکرام، جداکردن افراد فرعی (مرغ‌ها) از افرادی اصلی (خوک‌ها) است که متعهد به تحقق اهداف اسپرینت هستند. در اسکرام روزانه، فقط خوک‌ها مجازند صحبت کنند و مرغ‌ها و افراد دیگر فقط به عنوان شنونده حضور دارند.

اگر چه بسیاری با این موضوع موافق نیستند، اما به تجربه پی‌برده‌ام که تعیین جایگاه تمثیلی اعضای تیم اسکرام در قالب خوک یا مرغ بسیار مهم است. برای نمونه در اسکرام، حضور مالک محصول در اسکرامِ روزانه اجباری نیست، پس وی نقش مرغ را دارد؛ حال این پرسش پیش می‌آید که «چگونه وی می‌تواند متعهد باشد، در حالی که الزامی به حضور وی نیست؟» با این استدلال، «اجباری نبودن حضور مالک محصول در جلسه اسکرام روزانه» نادرست خواهد بود. قابل پذیرش نیست که مالک محصول به عنوان عضوی از تیم اسکرام، تعهد کمتری از تیم توسعه در قبال نتایج اسپرینت داشته باشد. اگر قصد دارید این موضوع یعنی حضور اختیاری مالک محصول را اعمال کنید، به تمثیل خوک و مرغ فکر کنید و از این کار منصرف شوید.

۱-۷-انجام‌شده (Done)
نتیجه‌ی هر اسپرینت بخشی از محصول است که بالقوه قابل عرضه است و بدین معناست که هر آن چه که قرار بود تیم اسکرام انجام دهد، بر اساس توافق صورت گرفته در مورد واژه‌ی «تعریف انجام‌شده» (Definition of Done)، واقعاً تمام شده است. این واژه درجه‌ی اطمینان از کیفیت و قابل عرضه بودن کارهای تمام‌شده را مشخص می‌کند. برای مثال واژه‌ی «انجام‌شده» در توسعه‌ی نرم‌افزار می‌تواند به معنای طراحی، ساخت، یکپارچه‌سازی، آزمایش و مستندسازی بخشی از محصول باشد.

با تعریف سخت‌گیرانه از واژه‌ی «انجام‌شده»، کسب‌وکار می‌تواند ارزیابی کند که در صورت عرضه یعنی استقرار (Deploy) یا انتشار محصول در پایان اسپرینت، چه چیزی عاید مشتریانش خواهد شد.

لازم به یادآوری است که «قابل عرضه بودن» (Potentially shippable) بدین معنا نیست که آن‌چه ساخته شده، حتماً تحویل می‌شود. تصمیم درباره‌ی تحویل محصول، تصمیمی در سطح مدیران کسب‌وکار است که اغلب متأثر از موضوعاتی مانند موارد زیر است:

آیا ویژگی‌های اضافه شده برای استقرار نسخه جدید کافی است؟
آیا بخشی از فرایندهای مشتری که در محصول پوشش داده شده، استقرار نسخه جدید را توجیه می‌کند؟
با توجه به نصب دو هفته پیش محصول، آیا کاربران آمادگی پذیرش تغییرات را، آن هم پس از دو هفته دارند؟

مفهوم «محصول قابل عرضه» معیار مناسبی برای کسب اطمینان از کامل شدن کارهای اسپرینت است. چرا که اگر کسب‌وکار بخواهد محصول را به مشتری تحویل دهد، نباید کار مهمی مانند آزمون یا یکپارچه‌سازی تا پایان اسپرینت باقی مانده باشد.

برخی از تیم‌ها به مرور زمان و با کسب تجربه، واژه «تعریف انجام‌شده» را تغییر می‌دهند. برای مثال در تولید بازی‌های رایانه‌ای، ممکن است ارائه ویژگی‌های قابل تحویل در مراحل ابتدایی از نظر اقتصادی امکان‌پذیر و مطلوب نباشد. در این شرایط، «تعریف انجام‌شده» می‌تواند بخشی از کارکرد محصول باشد که امکان دریافت نظرات و بازخورد دیگران را فراهم کند. با این کار، تیم می‌تواند درباره کارهای آتی و روش انجام آنها تصمیم‌گیری کند.

گزیده:
آن‌که انتظار دارد هر چهار فصل سال بهار باشد، نه خود را می‌شناسد، نه طبیعت را و نه زندگی را !
فرانسوا ولتر

سه رکن اثربخشی

  • یوسف مهرداد بی‌بالان

این روزها بیش از گذشته به همفکری، مشورت و راهنمایی نیاز دارم. بخشی از این راهنمایی را از خواندن کتابها به دست می‌آورم. یکی از بهترین کتابهایی که خواندم کتابی است به نام The 3 Pillars of Personal Effectiveness از Troels Richter است که از سایت InfoQ می‌توان دانلود کرد.
سه رکن اثربخشی فردی از دیدگاه نویسنده عبارتند از:
1- اهمیت یا Importance
2- تمرکز یا Focus
3- ارزش یا Value
وی در جایی اشاره می‌کند:
«بهره‌وری مقایسه مقدار (Quantity) تولید شده است با ظرفیت(Capacity). [چه مقداری با چه ظرفیتی تولید شده است]
اثربخشی مقایسه ارزش (Value) ایجاد شده است با کار و تلاش (Effort). [چه ارزشی با چقدر کار ایجاد شده است]
پارادکس(تناقض) این است که شما می‌توانید دارای بهره‌وری بالایی باشید، ولی اثربخش [مفید] نباشید. »

این کتاب نثر روانی دارد و به نکات ظریف و آموزنده‌ای اشاره می‌کند. توصیه می‌کنم این کتاب را حتماً بخوانید. اگر فرصتی داشتم حتماً آن را به فارسی برمی‌گرداندم تا افراد بیشتری از آن استفاده کنند.
خوشحال خواهم شد که نظر شما را درباره‌ی آن بدانم.

اگر عضو InfoQ نیستید، این کتاب را می‌توانید از اینجا نیز دانلود نمایید.

گزیده:

Stephen R. Covey, The 7 Habits of Highly Effective People:
Habit 1: Be Proactive
Habit 2: Begin with the End in Mind
Habit 3: Put First Things First
Habit 4: Think Win/Win
Habit 5: Seek First to Understand, Then to Be Understood
Habit 6: Synergize
Habit 7: Sharpen the Saw”

اسکرام SCRUM – بخش ششم

  • یوسف مهرداد بی‌بالان

بخش اول
بخش دوم
بخش سوم

بخش چهارم
بخش پنجم

۱-۴- اسپرینت (sprint)
در اسکرام، کارها در تکرارها و دوره‌هایی انجام می‌گردد که مدت آنها حداکثر یک ماه تقویمی است. این تکرارها و دوره‌ها را اسپرینت می‌نامند (شکل زیر). کارهای انجام شده در هر اسپرینت باید منجر به خروجیِ با ارزش و ملموسی برای مشتری یا کاربر گردد.

شکل خصوصیات اسپرینت

اسپرینت‌ها دوره‌هایی با مدتِ ثابت (timeboxed) هستند یعنی تاریخ آغاز و پایانِ مشخص و غیر قابل تغییری دارند و بهتر است که مدت همه‌ی اسپرینت‌ها در یک پروژه برابر باشد. اسپرینت جدید بلافاصله پس از پایان اسپرینت قبلی آغاز می‌شود. به عنوان یک قاعده، هیچ‌گونه تغییری در محدوده کار یا افراد تيم در طول اسپرینت مجاز نیست؛ هرچند گاهی شرایط کسب‌وکار، پایبندی به این قاعده را غیرممکن می‌سازد.

۱-۵- برنامه‌ریزی اسپرینت (sprint planning)
ممکن است بک‌لاگ محصول حاوی هفته‌ها یا ماه‌ها کار باشد که معمولاً بیش از کارهای قابل انجام در یک اسپرینت است. مالک محصول، تیم توسعه و استاد اسکرام، برنامه‌ریزی اسپرینت را با هدف تعیین مهم‌ترین اقلام بک‌لاگ محصول برای انجام در اسپرینت جاری برگزار می‌کنند (شکل زیر).


شکل : برنامه‌ریزی اسپرینت

در برنامه‌ریزی اسپرینت، مالک محصول و تیم توسعه بر روی هدف اسپرینت (sprint goal) توافق می‌کنند. هدف اسپرینت بیانگر دستاوردهای مورد انتظار در پایان آن است. تیم توسعه با استفاده از این هدف، بک‌لاگ محصول را مرور و مهم‌ترین اقلام را انتخاب می‌کند. انتخاب اقلام به گونه‌ای است که تیم به صورت واقع‌بینانه و با آهنگی پایدار ( Sustainable pace) قادر به انجام آنها در اسپرینت جاری باشد. آهنگ پایدار سرعتی است که تیم توسعه با حفظ آن بتواند به راحتی برای مدت طولانی کار کند.
بسیاری از تیم‌های توسعه برای اطمینان از این که قادر به انجام کارهای تعیین‌شده هستند، هر یک از ویژگی‌ها (feature) را به مجموعه‌ای از وظایف (task) می‌شکنند. این وظایف و اقلام بک‌لاگ مرتبط با آنها، بک‌لاگ دیگری را تشکیل می‌دهند که بک‌لاگ اسپرینت (sprint backlog) نامیده می‌شود (شکل زیر).

شکل بک‌لاگ اسپرینت

پس از آن، تیم توسعه مدت انجام هر یک از وظایف را براورد می‌کند (معمولاً به ساعت). شکستن اقلام بک‌لاگ به مجموعه‌ای از وظایف، نوعی طراحی و برنامه‌ریزی به‌موقع (just in time) است.
بسیاری از تیم‌های اسکرام که اسپرینت‌های دو هفته‌ای تا یک ماهه دارند، برنامه‌ریزی اسپرینت را طی چهار تا هشت ساعت انجام می‌دهند. برنامه‌ریزی اسپرینت یک هفته‌ای نباید بیش از دو ساعت طول بکشد. برای برنامه‌ریزی اسپرینت رویکردهای متفاوتی وجود دارد. رویکردی که اغلب از آن استفاده می‌شود، دارای چرخه ساده‌ای است: یک قلم بک‌لاگ را انتخاب کنید (ترجیحاً مهمترین قلم بعدی بر اساس چینش مالک محصول). آن را به مجموعه‌ای از وظایف بشکنید و مطمئن شوید که انجام آن به همراه اقلام انتخاب شده‌ی قبلی برای اسپرینت جاری امکان‌پذیر است. اگر قلم قابل انجام بود و کماکان ظرفیت خالی وجود داشت، چرخه را تا زمان تکمیل ظرفیت تکرار کنید.

رویکرد دیگر این است که مالک محصول به همراه تیم، اقلام مورد نظر را از بک‌لاگ محصول انتخاب می‌کند و سپس تیم بدون حضور مالک محصول، آنها را به مجموعه‌ای از وظایف می‌شکند تا از انجام‌پذیر بودن آنها مطمئن شود.

گزیده:
قسمت اعظم خستگي‌هاي ما ناشي از افكار ماست و هرگز خستگي كه صرفاً به جسم مربوط مي‌شود وجود ندارد و بسيار نادر است. در حقيقت، خستگي از نحوه فكر و احساسات ما شروع مي‌شود و به سرعت تكثير مي‌يابد.
مرجع: اس.جی.

چرا بيشتر کارمندان‌ از شغل خود ناراضي هستند؟

  • یوسف مهرداد بی‌بالان

نگاه دقیق و نافذی به کارمندان‌تان بیندازید.
آیا می‌دانید امروزه نزدیک به هشتاد درصد از کارمندان آماده واگذاری منصب‌ها و بیرون‌رفتن از کار فعلی‌شان هستند؟ به گفته یک سایت جدید در زمینه نظرسنجی (یعنی‌سایت Monster.com)، تقریبا نیمی (42 درصد) از کارمندان از شغل‌های کنونی‌شان ناراضی هستند و درصد عظیمی از آنها (81 درصد) برای به چنگ آوردن شغلی در سال جدید برنامه دارند.
سایت مذکور از کارمندان نظرسنجی کرده است تا دریابد چه چیزی آنها را به جست‌وجوی شغلی تازه ترغیب کرده است و تا چه حد در خصوص پیداکردن یک شغل جدید مطمئن هستند.
به نحو غافلگیرکننده‌ای، نتایجی که به‌دست آمده نشان نمی‌دادند که اثرات دوام رکود اقتصادی بر کارمندان سنگینی کرده باشد؛ بلکه به نحو بهت‌آوری، 79 درصد از کارمندان پاسخگو در این بررسی و 74 درصد از آنهایی که بیکار بودند ــ در مورد انتظارات‌شان برای یافتن شغلی تازه برای سال آینده خوش‌بین و دلگرم بودند.
نتایج همچنین نشان می‌دهند که 56 درصد از آنها برای شغلی تازه می‌ستیزند، 74درصد می‌گویند نمی‌توانند شغلی را که دقیقا با تجربیات و قابلیت‌های‌شان جور باشد پیدا کنند و 38 درصدشان باور دارند که مدیران ارزش مهارت‌ها و تجربیات آنها را درک نمی‌کنند.

اما چه عاملی کارمندان را برمی‌انگیزد که به دنبال جای تازه‌ای برای درآمدزایی باشند؟ در اینجا مواردی را ذکر می‌کنیم که آنها گفته‌اند و یقینا می‌توانید از پاسخ‌های‌شان بیاموزید.

۱. مسائل مالی
تقریبا اکثرا (96 درصد) دستمزد را یک دلیل مهم برای جست‌وجوی شغلی تازه در نظر داشته‌اند و 32 درصد می‌گویند، «حقوق و مزایای بالاتر» دلیل اولیه این است که چرا به دنبال شغل دیگری هستند.

۲. پوشش امنیتی
95
درصد از کارمندان می‌گویند به دنبال شغلی هستند که امنیت شغلی بیشتری داشته باشد و 26 درصد می‌گویند که همین دلیل «اصلی»‌شان برای پیداکردن شغلی تازه است.

۳. رعایت احترام
موضوعات غیرملموس و ناپیدا، عوامل مهمی در جست‌وجوی شغل محسوب می‌شوند. 97 درصد از کارمندان می‌گویند: «احترام و قدردانی» عوامل تعیین‌کننده‌ای در یک شغل جدید هستند.

۴. جست‌وجوی کامیابی
تقریبا همه (97 درصد) کارمندانی که پاسخگوی این نظرسنجی بودند، می‌گویند که توانایی به کار بستن مهارت‌هایشان و احساس کامیابی از آنچه انجام می‌دهند، عوامل مهمی در انتخاب یک شغل تازه محسوب می‌شوند.
به‌علاوه، 27 درصد از آنها می‌گویند: دلیل اصلی اینکه دنبال شغلی تازه هستند این است که دوست دارند احساس کامیابی بیشتری کنند و 27 درصد دیگر هم می‌گویند دلیل اصلی‌شان برای جست‌وجوی یک شغل جدید، یافتن انطباق تازه‌ای با مهارت‌هایشان است.

۵. انعطاف‌پذیری
در حالی‌که از هر ده کارمند جوینده کار چهار نفر می‌گویند: «برنامه‌های کاری منعطف و گزینه دورکاری برای کار از منزل در انتخاب شغل جدید مهم هستند»، اما در واقع و در مقیاس کلان، این عوامل بسیار کمتر از بسیاری از عوامل دیگر تاثیرگذار هستند.

۶. تعهدات کارمندی
این مورد از نظرسنجی‌های این سایت اخذ نشده است بلکه از مطالعه‌ای استخراج شده که موسسه گالُپ انجام داده و درباره این موضوع است که «هفتاد درصد از کارگران آمریکایی فاقد تعهد راستین در قبال کارشان هستند.»

مرجع: دنیای اقتصاد

گزیده:

“Human resources are like natural resources; they’re often buried deep. You have to go looking for them, they’re not just lying around on the surface. You have to create the circumstances where they show themselves.” ― Ken Robinson

درس اول طراحی – بخش 2

  • یوسف مهرداد بی‌بالان

سه:
اغلب دانشجویان آن چه را که آموخته‌اند به شیوه‌ی «یادگرفتن از روی دست کسی» است. یعنی در تیمی که بوده‌اند یا جایی که درس خوانده‌اند، شخصی الگویی را برای طراحی استفاده کرده است و آنها نیز آن را یاد گرفته‌اند و استفاده می‌کنند. مثال پررنگ این شیوه، مبحث لایه‌بندی در معماری است یا استفاده از ترکیبی از interface و class که البته در این مثال (مسأله اشکال هندسی) زیاد از آن استفاده می‌شود. برای این کار، رابط interfaceای به نام IShape و بعد کلاسی به نام Circle و … که آن را پیاده‌سازی می‌کند، ایجاد می‌کنند.

این روش که شاید بتوان آن را «یادگیری با مثال» نیز نامید، در عین حال که یکی از روشهای بسیار مؤثر یادگیری است اما خطر بزرگی را نیز به همراه دارد. چنین روشی اگر فقط در سطح «مثال» باقی بماند و به «چرایی» یا به اصطلاح خودمانی «فلسفه‌ی کار» نینجامد بسیار خطرناک است.
مثال بامزه‌ی این الگوی رفتاری، داستان زیر است:
«زوج جوانی در تعطیلات پیش خانواده عروس می‌روند. عروس از یخچال گوشت را درمی‌آورد. قسمتی از آن را می‌برد و روی قطعه بزرگتر می‌گذارد و آن را در فر می‌گذارد. همسرش از این رفتار غیرمعمول تعجب می‌کند و می‌پرسد چرا این کار را کرده است.
عروس لحظه‌ای فکر می‌کند و می‌گوید:خب، این راهی است که که باید گوشت را پخت. مادر، مگر این طورنیست؟
مادرش می‌گوید:بله، من یاد گرفته‌ام که این طوری انجام بدهم.
بعد مادربزرگ صحبت می‌کند: بله. من خودم این روش را به شما یاد داده‌ام. اما ما آن روزها جوان بودیم و پول زیادی نداشتیم که ماهی‌تابه‌ای بزرگ بخریم. من بیشتر از چهل سال است که دیگر این کار را نمی‌کنم.»

در اینجا وقتی که از دانشجو می‌پرسید که «چرا از ترکیب interface و class استفاده کرده‌اید؟» و بعد بحث را به این سمت می‌برید که «چرا از interface استفاده کرده‌اید؟»، پاسخ‌هایی که دریافت می‌کنید نشان می‌دهد که یادگیری آنان به «چرایی» ختم نگردیده است. آخر گفت‌وگو به اینجا ختم می‌شود که «روزی شخصی (همکاری یا استادی) این گونه انجام داده است و من یادگرفتم». یکی از بامزه‌ترین آنها پاسخی بود که یکی از عزیزان داد: «استادی داشتیم که می‌گفت ما همیشه از ترکیب interface و class استفاده کرده‌ایم و جواب گرفته‌ایم!».
ندانستن «چرایی» خطرات زیادی به همراه دارد. شاگردی که چرایی را نداند، احتمالاً از استاد پیشی نخواهد گرفت. وقتی «چرایی» را می‌دانیم، با حفظ آن، «چگونگی‌»های متنوع و متفاوتی را ابداع می‌کنیم. چرایی‌ها معمولاً ثابت هستند و این چگونگی‌ها هستند که در طول زمان و با تجربه تغیییر می‌کنند.
یکی از گروه‌هایی که به دنبال «یادگیری با مثال» هستند، کسانی‌اند که علجه دارند، وقت کافی برای یادگیری دقیق و عمیق ندارند یا کلاً عجول هستند. این روش هر چند برای شروع و «راه افتادن کار» خوب است، اما اگر در همین سطح باقی بماند، اثرات عمیقی نخواهد داشت.

پرسشهایی که در مسأله‌ی اشکال هندسی می‌توان طرح کرد عبارتند از:
1- تفاوت بین interface و abstract class چیست؟ (لطفاً دقت فرمایید که پاسخ این پرسش فقط دو کلمه است و نه یک لیست بلند و بالا که در اینترنت پیدا خواهید کرد)

2- از interface برای shape استفاده کنیم یا abstract class؟ یا فرقی نمی‌کند کدام یک را انتخاب کنیم؟ (امیدوارم پاسخ شما از این جنس نباشد: «تجربه‌ی من می‌گوید….»؛ «فلانی در کتاب فلان گفته است ….»؛ «چه فرقی نمی‌کند؟!»؛ «مهم آن است که مشتری راضی باشد!»)

3- اصلاً چرا باید برای Shape عنصر و المانی در طراحی در نظر بگیریم؟ (توجه داشته باشید که وجود عامل سومی باعث توجیه وجود Shape می‌گردد و نه دایره و مستطیل. اگر عامل سوم وجود ندارد، وجود Shape در طراحی بی‌استفاده است و فقط از روزی عادت ایجاد شده است)

پرسش از چرایی، حتی در آموزه‌های مدیریتی نیز وجود دارد:
«چرا؟
سیمون سینک، نویسنده کتاب «قدرت چرایی» می‌گوید: همه سازمان‌های بزرگ دنیا، با این سوال روبه‌رو هستند که چرا ما این کار را انجام می‌دهیم؟» این سوال، باید برحسب سیاستی در سطح شرکت باشد. به کارمندانی که مودبانه در مورد چرایی عملکرد سازمان سوال می‌پرسند، توجه کنید. این نشان می‌دهد آنها به شغلشان علاقه دارند و کنجکاوی آنها می‌تواند در نهایت به یک قابلیت مدیریتی تبدیل شود.» دنیای اقتصاد

توصیه: علاوه بر «چگونگی»، به دنبال «چرایی»‌ باشید.
توصیه: فلسفه‌ی مکانیزم‌ها و امکاناتی را که در طراحی دارید، به درستی یاد بگیرید. چرا Interface؟ چرا …

گزیده:
متفاوت بودن آسان، ولی بهتر بودن بسیار دشوار است.
جاناتان ایو

درس اول طراحی – بخش اول

  • یوسف مهرداد بی‌بالان

پیش‌گفتار:
دیرزمانی است که درباره‌ی طراحی چیزی ننوشته‌ام. دوست داشتم در این باره مطلبی بنویسم. احتمالاً مطالب بیشتر «بینشی» است تا «دانشی». امیدوارم مفید باشد. خوشحال خواهم شد که نظرات شما را برای نقد و تکمیل مطالب، دریافت کنم.

گفتار:
آموزش طراحی را معمولاً با یک مثال شروع می‌کنم: دو شکل داریم، مستطیل و دایره. می‌خواهیم آنها را رسم کنیم و مساحت‌شان را کنارشان بنویسیم. طرحی برای مسأله و مبتنی بر پارادایم شیءگرایی ارائه کنید.
چون دوره‌ی آموزشی است، بین دانشجویان نوعی «مسابقه‌ی دانایی» راه می‌افتد. هر کسی تلاش دارد همه‌ی دانش و تجربه‌اش را روی میز بریزد و طرحش اشاره‌ای به آنها داشته باشد. این موضوع طبیعی است، هر انسانی دوست دارد که بگوید «باسواد و باتجربه‌ام»

دانشجویان با انبوهی از تکنیک‌ها و مفاهیم به مسأله حمله می‌کنند: از Interface, abstract class بگیرید تا مباحثی مانند Layering و DI و گاه AOP!

یک:
اولین نکته‌ای که در این شرایط آموخته‌ام این است که «گاهی ندانستن بهتر از دانستن است» و «گاهی بی‌تجربگی به تجربه می‌چربد»!
دانش و تجربه‌ی دانشجویان به خصوص بهترین‌هایشان منجر به بحرانی می‌شود که آن را «انفجار پیچیدگی بی‌مورد» می‌نامم. به زبان ساده‌تر، برای جابه‌جایی یخچال به خانه‌ی جدید، نیازی به اجاره‌ی تریلی هجده چرخ نیست! بدیهی است که تریلی به مراتب قوی‌تر از پیکان‌ وانت است.
انتخاب تکنیک‌ها از یک سیستم اقتصادی تبعیت می‌کند. چقدر هزینه کنیم و چه به دست آوریم. مدیر مؤفقی روزی به من آموخت که «حواست باشد گاهی ده واحد هزینه می‌‌کنی و فقط دو واحد به دست می‌آوری!».
توصیه: همواره در مورد مسائل طراحی، در چارچوب یک سیستم اقتصادی تصمیم‌گیری کنید.

دو:
معلمان زحمت‌کش ریاضی، فیزیک و شیمی سعی می‌کردند که بیاموزند که فهم و درک مسأله، پنجاه درصد حل مسأله است. یادم می‌آید که معلمانم برای یاددان این موضوع، ورودی را یک طرف می‌نوشتند و خروجی‌های مورد انتظار را طرف دیگر. سپس می‌گفتند دنبال مطلب یا راه حلی باشید که بتواند شما را از طرف اول به طرف دوم برساند.
در این بین برای این که معنی قید (Constraint) را بیاموزانند، محدودیت‌هایی بر راه حل حاکم می‌کردند. مثلاً حد زیر را بدون استفاده از روش هوپیتال به دست آورید. جوابهای معادله‌ی درجه دوم زیر را بدون استفاده از روش دلتا محاسبه کنید. پاسخ پرسش زیر را در کم‌تر از نصف صفحه بنویسید.
جورج پوليا جایی گفته است: «پاسخ به پرسشی كه فهميده نشده باشد، كاري ابلهانه است. كار كردن براي رسيدن به هدفي كه مورد پسند نيست، غم‌انگيز است
دانشجویان قبل از آن که مسأله را خوب بفهمند، حول و حوش آن «بچرخند» و ابعاد آن را خوب ببینند، علاقه دارند زود به راه حل فکر کنند و به راه حل برسند. چون هدف نهایی، «راه حل» است. البته وقت کمی که به آنها داده می‌شود نیز این عارضه را تشدید می‌کند.
توصیه: هرچند دست‌یابی به راه حل، موضوعی است تدریجی، اما تا قبل از فهم درست و کامل مسأله و تحلیل آن، به راه حل فکر نکیند.

پانوشت:
خدا رحمت کند آقای منصوری را و سلامت نگهدارد همه‌ی معلمان را.

گزیده:
صبح، باران، بی‌بالان!

برای خروج از جستجو کلید ESC را بفشارید