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