فرز و چابک به سبک Scrum! (مقدمه)

Scrum که یکی از چارچوب‌ها یا همون framework‌های Agile محسوب میشه در واقع چارچوبی مدیریتی هست برای تولید و توسعه‌ی پروژه‌ها و محصولات خلاقانه! (البته خیلی جاها این خلاقانه رو میگن پروژه‌های پیچیده)

اصلاً اسکرام (Scrum) چیه؟ Agile چیه؟ قضیه چیه؟ چارچوب مدیریتی رو چه به شبکه؟؟؟ 😐

پاراگراف Bold شده‌ی بالا به همراه سوالاتی که مطرح شد، نقشه راه موضوعی هستن که قراره یه چند وقتی زیاد باهاش سر وکار داشته باشیم و به سراغش بریم 🙂

***

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

برای پیدا کردن جواب این چراها بیاین برگردیم به دهه‌ی 1990 میلادی، زمانی که این مشکلات خیلی خیلی بیشتر از حال حاضر بودن و ریشه‌‌‌ی این مشکلات و راهکارهایی که برای حلشون داده شد رو از اونجا رهگیری کنیم.

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

علتش هم واضح بود: زمانی که تأخیر زیادی تا تحویل محصول نهایی رخ بده، مطمئناً نیازهای بازار و مشتریان در طی این مدت تغییر می کنه. در نتیجه محصول نهایی دیگه اون چیزی نیست که مشتری می‌خواد.

برای مثال بیاین بریم سراغ حوزه‌ای در دنیای تکنولوژی که بیشتر باهاش آشنایی داریم یعنی حوزه‌ی نرم افزار و ببینیم در اون زمان اوضاعش چه شکلی بوده.

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

فازهای مدل Waterfall منبع: Scrum Reference by Michael James and Luke Walter

مشکل بزرگ مدل Waterfall تأخیر زمانی زیاد تا تحویل نهایی محصول بود. بنابراین این روش قادر نبود به فرآیند تولید سرعت ببخشه و عملاً نمی‌تونست پاسخگوی نیازهای دنیای صنعت باشه. همین مشکل باعث شد تا یک سری از رهبرای فکری دنیای نرم‌افزار (یه گروه هفده نفره)، در سال 2000 و بعدش 2001 دور هم جمع بشن و با معرفی یه فلسفه‌ی فکری و عملکردی جدید و انتشار یه بیانیه در رابطه با این فلسفه‌ی فکری، سعی کنن به این اوضاع نابه‌سامون اندکی سروسامون بدن.

این فلسفه‌ی فکری جدید Agile نام داشت و بیانیه‌ای که به معرفی ارزش‌های اون پرداخت تحت عنوان Agile Manifesto یا ارزش‌های Agile، منتشر شد. ادامه خواندن “فرز و چابک به سبک Scrum! (مقدمه)”

بیت‌کوین مثه نون‌سنگک!

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

تبادل حضوری

یک صبح زیبای جمعه، رفتم ۱ عدد نون سنگک خریدم و دارم برمیگردم که توی کوچه آقای همساده منو نون‌سنگک بدست میبینه و اصرار که «این ۱ عدد نون رو بده بمن به قیمت بیشتری ازت می‌خرم حتی!» بالاخره راضی می‌شم و نون رو تقدیمش می‌کنم، و نهایتاً بقول اون مجری معروف، ۱ نونی که داشتم رو دادم به اون، پس دیگه هیچ نونی ندارم، یعنی من ۰ نون دارم و همساده ۱ نون؛ پس ۰ – ۱ به نفع همساده. 😐

آقای همساده و نون‌سنگک!

ساده بود، درسته؟ حالا بیاین یکم فلسفیش کنیم قضیه رو 🙂

۱ نون در دست من بود که بطور فیزیکی اون رو در دست آقای همساده گذاشتم. من اونجا بودم، آقای همساده هم بود؛ هردو می‌دونیم که این اتفاق افتاد. هر دو ۱ نون و تبادلش رو دیدیم و با دستای خودمون تبادل نون رو حس کردیم.
نیاز به شخص ثالثی نبود که کمک کنه این تبادل نون رخ بده و تأیید کنه که این اتفاق افتاده.

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

به کل این اتفاق می‌گن تبادل حضوری؛ حالا بجای نون سنگک این تبادل می تونست برای کتاب باشه، یا سیب، یا گلابی، هر چی، حتی یک اسکناس!

نون‌سنگکِ دیجیتال (بخوانید بیت‌کوین)

بیت‌کوین یا نون‌سنگک دیجیتالی؟ مسئله این است!

حالا، فرض کنیم تکنولوژی به جایی رسیده که آدما می‌تونن حتی نون سنگک دیجیتال مصرف کنن و من یک نون سنگک دیجیتال دارم و دوباره میدمش به آقای همساده.

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

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

یه مثال ساده تر. این روزا قطعا از نسخه های دیجیتال کتاب‌ها مثلاً pdf ها بارها و بارها استفاده کردیم و می کنیم. خب فرض کنیم من نسخه‌ی pdf از یه کتاب رو از سایتی غیر از ناشر اصلی می‌خرم، یا مثلا یه سرچ تو گوگل میزنم و یک سایت متفرقه به طور رایگان دانلود می‌کنم. خب از کجا معلوم که این نسخه‌ی دیجیتالی کتاب که من الان دارم از اون سایت نامعلوم می خرمش یا رایگان دانلودش میکنم، همون نسخه ی اصلی کتاب باشه که ناشر داره می فروشتش با محتوای اصلی و درست؟ از کجا معلوم اصلا نسخه ی ویرایش شده یا نسخه ی ناقصش نیست؟ ادامه خواندن “بیت‌کوین مثه نون‌سنگک!”

Segment Routing : بررسی مفاهیم پایه و عملکرد

در این پست سعی شد تا دلایل و مشکلاتی که سبب پر رنگ شدن ایده ی Source Routing و تولد راهکاری با نام Segment Routing گشتند، بررسی شوند. Segment Routing تکنولوژی نه چندان جدید برای انجام Source Routing می باشد. در این روش، مبدا مسیری را انتخاب کرده و آن را در قالب لیستی از سگمنت ها در هدر پکت قرار می دهد. segment ها مشخص کننده ی رفتار و عملی هستند که باید در قبال پکت صورت گیرد. با استفاده از سگمنت روتینگ در شبکه ها، دیگر نیازی نیست که منطق ارسال پکت ها حتما بر اساس یک application خاص یا بر اساس یک جریان خاص باشد، بلکه forward پکت ها تنها بر اساس همان دستورالعملی که توسط سگمنت ها مشخص شده اند، صورت می گیرد.

تفاوت سگمنت روتینگ با MPLS و MPLS-TE در آن است که، Segment Routing از هیچ پروتکل اضافه تری چون LDP و RSVP برای سیگنالینگ و forward اطلاعات خود در طول یک دامنه ی SR استفاده نمی کند بلکه در مقابل، این اعمال را تنها با بهره گرفتن از قابلیت های توسعه یافته ی پروتکل هایی چون OSPF و IS-IS انجام می دهد. هم چنین در هنگام اجرا در یک ساختار MPLS یا IPv6، می تواند مستقیما از data plane آن ها بهره گیرد. اگر ساختار MPLS باشد، SR مستقیما از MPLS Data Plane بدون هیچ تغییری در آن، استفاده می کند. مزیت دیگر SR نسبت به MPLS در استفاده ی کارآمدتر از bandwidth و همینطور کاهش latency است.

Segment Routing: مفاهیم پایه

یک دامنه ی SR مجموعه ای از روترها است که اصطلاحا همه ی آن ها SR-Capable می باشند به این معنا که قابلیت تشخیص و کار با سگمنت ها را دارند. مشابه LSP در MPLS، مسیری در دامنه ی SR که به منظور ارتباط نقاط مختلف از آن استفاده می شود، SR-PATH نام دارد. SR-PATH الزاما کوتاهترین مسیر محاسبه شده توسط IGP نیست. به بیان بهتر SR-PATH می تواند کوتاهترین مسیر محاسبه شده توسط IGP و یا مسیری که بر حسب پارامترهای TE تعیین شده است، باشد. در واقع این سگمنت ها هستند که هر کدام بخشی از مسیر را مشخص می کنند که ترکیب آن ها با هم، نشان دهنده ی کل مسیر از یک مبدا تا یک مقصد مشخص می باشد. ادامه خواندن “Segment Routing : بررسی مفاهیم پایه و عملکرد”

Meltdown و Spectre: دو خانواده‌ی خطرناک برای پردازنده‌ها

همین ابتدا خیال شما را راحت کنم؛ اگر دستگاهی پردازنده‌ی کامپیوتری دارد، به احتمال خیلی زیاد در معرض خطرات  بزرگ امنیتی Meltdown و Spectre هست. موضوع آنقدر جدی است که Brian Krebs یکی از متخصصین مطرح امنیت اطلاعات در وصف آن گفته: «رخنه‎‌های ترسناکِ تراشه، شبح فروپاشی را احضار می‌کنند». اگر می‌خواهید درباره این خطر جدی و مقابله با آن بدانید، پیشنهاد می‌کنم تا انتهای مطلب همراه باشید.

بدلیل درخواست صاحب معنوی برخی تصاویر از منظر کپی‌رایت، این مطلب از انتشار خارج شد.

پدربزرگ و حفظ امنیت اطلاعات

تصویر: PathDoc/Shutterstock

پیرو باگ‌های اخیری که کشف شد (Spectre و Meltdown) و هزاران باگی که قبلاً کشف شدن، و امنیت اطلاعات رو بشدت تحت تاثیر قرار دادن، داشتم فکر میکردم که “بهترین، راحت‌ترین، ساده‌ترین، کارامدترین و اساسی‌ترین” راه‌کارهای امنیت اطلاعات چیا هستن که یکی بتونه حتی به پدر و مادر مسن آموزش بده؟ چند مورد به ذهنم رسید که در ادامه ذکر می‌کنم: ادامه خواندن “پدربزرگ و حفظ امنیت اطلاعات”