پنج‌شنبه ۱ آذر ۱۴۰۳ |  عضویت / ورود

اهمیت «اتکاپذیری» و عاقبتِ «پیچیدگی های غیرضروری» در تولید محصول! (به خصوص محصول نرم افزاری)


نمی‌دانم شما هم در مساجد مختلف، با این صحنه مواجه شده‌اید؟

https://img.aftab.cc/news/94/complexity.jpg

وسط تصویر را می‌گویم. به ساعت‌ها نگاه کنید...

من در شهر خودمان شاید در ده مسجد با این صحنه روبه‌رو شده‌ام! (هر چند روزهای اول، هیأت امنا و واحد فرهنگی از آن ساعت دیجیتال ذوق‌زده هستند، اما بعد از چند ماه، ترجیح می‌دهند خاموش باشد!)

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

این، نمونه‌ی بارزِ برخورد انسان‌ها با یک محصول پیچیده و غیرقابل اتکا است!

دو دلیل برای خاموش کردن آن ساعت دیجیتال وجود دارد:

دلیل اصلی: پیچیدگی‌های غیرضروری!

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

پس ای تولیدکننده نرم‌افزار یا سخت‌افزار و هر محصول دیگر! دقت کن: انسان‌ها محصول ساده‌ای که آموزش کمتری لازم داشته باشد را به محصول پُرامکانات و پُر زرق و برقی که نیاز به آموزش‌های بیشتر داشته باشد ترجیح می‌دهند! حتی اگر در ابتدا از داشتن آن محصول پر زرق و برق، ذوق‌زده شده باشند...

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

دلیل دوم: اتکاپذیری!

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

پس، ای تولیدکننده! دقت کن: انسان‌ها حاضرند از خیرِ خیلی از امکانات بگذرند اما یک محصول اتکاپذیر داشته باشند!

اتکاپذیری در تولید یک محصول آن‌قدر مهم است که ما یک درس به نام «نرم‌افزارهای اتکاپذیر» در این ترم از دکترا داشتیم که جزئی‌ترین موارد اتکاپذیری را بررسی کردیم.

دلم می‌خواهد این تصویر مهم از این درس اینجا باشد که حداقل خودم کلمات مهم و دوست‌داشتنی آن‌را هر بار مرور کنم:

https://img.aftab.cc/news/94/dependebility.png

به شاخه‌ی Attributes (ویژگی‌های اتکاپذیری) دقت کنید:
- محصول باید Availability داشته باشد. یعنی آمادگی ارائه سرویس صحیح. یعنی هر وقت که به آن نیاز بود در دسترس باشد. ممکن است یک محصول خیلی قابل اعتماد باشد (مثل نرم‌افزار دستگاه خودپرداز) اما در دسترس‌پذیری‌اش کم باشد (باز هم مثل دستگاه خودپرداز!!)
- محصول باید Reliability داشته باشد. یعنی تداوم سرویس صحیح. یعنی در یک بازه زمانی که مورد استفاده قرار می‌گیرد، سرویس صحیحی ارائه کند.
- محصول باید Safety داشته باشد. یعنی خطرات جانی برای کاربران و طراحانش نداشته باشد. (هر نوع خطری، گاهی اعصاب کاربر را به هم می‌ریزد)
- باید Confidentiality یعنی محرمانگی داشته باشد. یعنی اطلاعات را به افراد غیرمجاز ارائه نکند.
- باید Integrity یعنی یکپارچگی داشته باشد. یعنی نسخه‌هایی از یک سری اطلاعات با مقادیر مختلف در سیستم وجود نداشته باشد. مثلاً معدل را در پنل کاربری ۱۴.۵ محاسبه کند و در پنل مدیریت ۱۵
- باید Maintainaility داشته باشد. یعنی نگهداری آن مشکل یا غیرممکن نباشد.

حالا آن ساعت دیجیتال و آن ساعت سنتی و تابلو سنتی را از لحاظ این ویژگی‌ها بررسی کنید و ببینید کدام برنده است؟ کدام دردسترس‌تر است؟ کدام قابل اعتمادتر است؟ کدام ایمنی بیشتری دارد؟ کدامیک قابلیت نگهداری بیشتری دارد؟

 

خلاصه:

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

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

موفق باشید؛
حمید رضا نیرومند


[ارسال شده در مورخه : شنبه، 3 بهمن، 1394 توسط Hamid]
[ #برنامه‌‌نویسی]



بازدیدها از این مطلب: 5733 بار   امتیاز متوسط :   تعداد آراء: 1   امتیاز دهید:

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 13 با 8 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

منوچهر                توسط منوچهر در مورخه : شنبه، 3 بهمن، 1394(لینک نظر)
بسیار عالی و قابل فهم


[ ارسال جوابیه ]


mrsmhn                توسط mrsmhn در مورخه : یکشنبه، 4 بهمن، 1394(لینک نظر)
باسلام واحترام

یک خواهش

لطفا هر اتفاق مهمی که توی سایت افتابگردان میفته (در صفحات جانبی)، توی توییتر بنویسید. چون نمیتونیم همیشه همه صفحات و چک کنیم!

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

یاعلی


[ ارسال جوابیه ]