تاملات گاه گاه یک توسعه دهنده نرم افزار

بازگشت از ماه! یک بازی برای تقویت مهارت کار تیمی

moon landing

بازی ها نقش بسیار مهمی در افزایش مهارت کار تیمی دارند. انجام بازی، هم باعث شادی و تفریح است و هم از نتایج آنها می‌توان نکته‌هایی آموخت که برای همیشه در ذهن ماندگار خواهند شد. اگر به عنوان مربی چابکی فعالیت می‌کنید، از معجزه این بازی‌ها غافل نشوید!

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

تاملی در اصل هشتم بیانیه چابک

مقدمه:

اصل هشتم بیانیه چابک می‌گوید که فرآیندهای چابک، از «توسعه‌ی پایا» (Sustainable Development) حمایت کرده و آن را ترویج می‌کنند:

Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

هدف از این یادداشت، بررسی دقیق‌تر این اصل و مفاهیم پیرامون آن است.

۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

احراز هویت کاربران در سامانه های پذیرنده ی نشانه ی امنیتی (Security Token) چگونه انجام می‌شود؟

مقدمه:

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

 

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

۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

پدیده نامتقارنی تخمین چیست و چگونه از تاثیر منفی این پدیده در وزن دهی استوری ها کم کنیم؟

فرض کنید که دو استوری داریم. استوری شماره ۱ و شماره ۲. استوری شماره ۲ به طور چشمگیری از استوری شماره ۱ بزرگتر است.
حالا دو تیم الف و ب را در نظر بگیرید. از تیم الف خواسته شده که بگوید اگر استوری شماره ۱ برابر ۱۰ پوینت باشد،‌ استوری شماره ۲ چند پوینت خواهد بود؟
از تیم ب هم خواسته شده که بگوید اگر استوری شماره ۲ برابر ۱۰ پوینت باشد، استوری شماره ۱ چند پوینت خواهد بود؟
آیا به نظر شما نسبت معنا داری بین پاسخهای دو تیم وجود خواهد داشت؟

۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

چه اتاقی برای تیم توسعه نرم افزار مناسب است؟


آیا از دکور، نور، سکوت، تهویه و تزیینات اتاق محل کار خود رضایت دارید و از بودن در آن فضا لذت میبرید؟

شما به این سوال چه جوابی میدهید؟ ۵۶ نفر به این سوال پاسخ دادند و نتیجه ی زیر بدست آمده است.

خیر. در سازمان ما این قبیل موضوعات اهمیت چندانی ندارند. ☹️ – 21

👍👍👍👍👍👍👍 38%


بله، اما میتواند بهتر شود و بهبود آن برای من مهم است. – 16

👍👍👍👍👍 29%


بله. فوق العاده است. – 12

👍👍👍👍 21%


خیر. اما سازمان ما برای بهبود آن تلاش میکند. – 7

👍👍 13%


👥 56 people voted so far.

۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

آیا داشتن دانش فنی برای اسکرام مسترها ضروری است؟

آیا اسکرام مستر باید از مهارتهای فنی برخوردار باشد؟ چرا بعضی اوقات تیمها از اسکرام مستر حرف شنوی ندارند؟

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

اما سوال این بود:

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

۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

مفهوم Ubiquitous Language در Domain-Driven Design

از جمله ی مفاهیمی که در DDD مطرح شده است مفهومی است با عنوان Ubiquitous Language. معادل فارسی آن را می توانید به دلخواه از این موارد انتخاب کنید: "زبان فراگیر" ، "زبان عام"، "زبان مشترک" و یا "زبان غالب".انتخاب من "زبان مشترک" است. اما این اصطلاح دربرگیرنده چه مفهومی است و هدف از طرح آن در DDD چیست؟
در جلساتی که توسعه دهندگان نرم افزار با متخصصین حوزه کاری (Domain)، برگزار می کنند، طیف وسیعی از واژگان و اصطلاحات هم توسط توسعه دهندگان و هم توسط متخصصین دامین، بکار گرفته می شود. بسیار پیش آمده که هر چند هر دو گروه از واژه مشترکی استفاده می کنند، اما آن چیزی که در ذهنشان نسبت به آن واژه وجود دارد، متفاوت از یکدیگر است.
۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

15 روش برای شکستن یک داستان کاربری بزرگ به داستانهای کاربری کوچکتر

بیان مناسب داستانهای کاربری، کار ساده ای نیست. گاهی نویسندگان داستانهای کاربری در دام داستانهای کاربری بزرگ گرفتار می شوند. داستانهای کاربری بزرگ ، باعث ایجاد مشکلاتی در سطح برنامه ریزی، اجرا و تحویل می شوند و قاعده INVEST را مکررا نقض می کنند. اما چه کنیم که داستانهای کاربری بزرگ را به داستانهایی کوچکتر تقسیم کنیم؟ نوشتار زیر 15 پیشنهاد است برای همین منظور.

۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

چه ارتباطی بین تاکیدات Domain Driven Design و اصول چابکی وجود دارد و چرا آشنایی با DDD برای تیم‌های چابک مفید است؟

قبل از پاسخ به این سوال مختصرا توضیح می‌دهم که DDD رویکردی برای طراحی و مدل سازی دامین‌های پیچیده است. دامین‌هایی که نیازمندی‌ها در ابتدای پروژه شفاف نیستند و به مرور و به واسطه‌ی کسب آموخته‌های جدید، کشف و ظاهر می‌شوند.
هر چند در سالیان اخیر، توسعه به سبک چابک در بین توسعه دهندگان نرم افزار از اقبال بیشتری برخوردار شده است، اما کمتر دیده‌ام که مفاهیم و اصولی که می‌توانند به یک تیم اجایل قدرت بیشتری بدهند، به اندازه کافی مورد بررسی و توجه قرار بگیرند و این باعث می‌شود که متدولوژی‌های چابک، به تدریج ناکارآمد جلوه کنند و به یک شیر بی یال و دم تبدیل شوند.
استفاده از پیشنهادهای Domain Driven Design  در مدل‌سازی و توسعه محصول در دامین های پیچیده، از موضوعاتی است که می‌تواند یک تیم اجایل را اجایل‌تر کند و به تقویت میزان پایداری به اصول و شاخص‌های چابکی در تیم، بیانجامد. ولی چگونه؟ فرهنگ و زمینه‌های فکری چابکی، با فضای فکری DDD چه خویشاوندی دارند؟ ارتباط آنها چیست؟

۰ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک

آیا سپردن کار به اعضای تیم با ذکر نام ایشان، طی جلسه برنامه‌ریزی اسپرینت، سودمند است؟

 در جلسه‌ی برنامه‌ریزی اسپرینت (Sprint Planning)، اعضای تیم تعدادی از آیتم‌های سبد محصول (Product Backlog) را به ترتیب اولویت برای کار در اسپرینت بعدی انتخاب می‌کنند. در همین جلسه، بسیاری از تیم‌ها وظایفی را که برای تکمیل هر آیتم (Product Backlog Item) ضروری است، مشخص می‌کنند و در همان جلسه با ذکر نام تعیین می‌کنند که هر فرد چه کاری را باید انجام دهد. 

علاوه بر این، خیلی از تیمها مقدار تلاش (Effort) مورد نیاز برای انجام هر وظیفه را هم مشخص می‌کنند. نهایتاً آنچه که به عنوان بک‌لاگ اسپرینت (Sprint Backlog) به دست می‌آید چیزی شبیه جدول زیر خواهد بود:

۱ نظر موافقین ۰ مخالفین ۰
روح الله دلپاک