وظیفۀ دولوپرها در دنیای نرمافزار چیزی جز حل کردن مشکلات کاربران نیست. کاربران مشکلی را مطرح میکنند و توسعهدهنگان با ارائهٔ سولوشنی (راهحلی) آن را حل میکنند اما این در حالی است که اگر این وضعیت معکوس گردد، دردسرها شروع میشوند! اگر توسعهدهندگان تمامی خواستهها و پیشنهاداتی که کاربران در مورد یک وبسایت یا نرمافزار میدهند را عملی کنند، نتیجۀ کار یک نرمافزار بهدردنخور و در عین حال پیچیده خواهد بود. قبول داریم که این کاربران هستند که میدانند مشکل چیست و گاهی هم ایدههای جالبی دارند، اما از یاد نبریم که تصمیمگیرندۀ نهایی در راهکارهای نرمافزاری، همیشه باید توسعهدهندگان باشند و نَه کاربران. اگر علاقمند به کسب اطلاعات بیشتر در مورد این موضوع هستید، در ادامه با سکان آکادمی همراه باشید.
Feature Request (درخواست افزودن قابلیت جدید به نرمافزار) توسط کاربران به خصوص زمانی دردسرساز میشود که نرمافزار برای تعداد کمی کاربر درون یک سازمان نوشته شود و اگر یکی از کاربران نرمافزار مدیر رده بالایی باشد، وی قدرت زیادی روی توسعهدهنده خواهد داشت؛ به عبارت دیگر، این دست افراد به راحتی میتوانند به توسعهدهنده امر و نهی کنند!
اگر مدیری تا این حد به توسعهدهندهاش -یا بالتبع شرکت نرمافزاری که پروژه را اَوتسورس کردهاند- اعتماد دارد که اجازه میدهد برایش نرمافزار بنویسد، پس باید آنقدر اعتماد داشته باشد که تصمیمگیری در مورد آن نرمافزار را هم به عهدۀ او بگذارد. گروهی که اعتماد فیمابین در آن وجود نداشته باشد، کارایی بسیار پایینی خواهد داشت تا جایی که حتی نمیشود به آنها «گروه» گفت! بلکه صرفاً عدهای افراد هستند که مدام در حال دفاع از خود در مقابل یکدیگر هستند.
بهترین راهی که کاربر میتواند در تصمیمگیری توسعهدهنده سهیم باشد، دادن اطلاعات کافی است. به عبارت دیگر، توسعهدهنده برای گرفتن بهترین تصمیمات که در نهایت به نفع کاربر هم باشد، نیاز به اطلاعات کافی دارد و این اطلاعات معمولاً توسط کاربر تأمین میشود. اگر به عنوان یک کاربر فکر میکنید نرمافزاری دارد در مسیری اشتباه حرکت میکند، دربارهٔ مشکلی که میخواهید حل شود اطلاعات بدهید و توضیح بدهید که چهطور و چرا این نرمافزار مشکل شما را حل نمیکند.
در عین حال، ببینید چند نفر دیگر همین مشکل را دارند؛ بهترین شکل این است که آمار و ارقام بدهید، اما زمانی که توسعهدهنده میخواهد تصمیمگیری کند، گاهی حتی نقلقول هم میتواند مفید باشد. به طور کلی، توسعهدهندگان بیشتر علاقمند به اطلاعات و آمار و ارقام از یک سو و همچنین نوع مشکل از سوی دیگر هستند. به زبان سادهتر، از توسعهدهنده راهکار نخواهید، فقط به او دربارهٔ مشکلتان اطلاعات کافی بدهید.
از طرف دیگر، اگر توسعهدهنده فقط بر پایهٔ تصوری که خودش از مشکلات کاربران دارد دست به تولید راهکار بزند، نتیجۀ کار نرمافزاری خواهد بود که کاربران از آن متنفر خواهند بود. همواره به یاد داشته باشیم که مشکل توسط کاربر مطرح میشود، نه توسعهدهنده!
گاهی توسعهدهندگان یک نرمافزار، خودشان کاربر آن نرمافزار نیز هستند و میتوانند مشکلاتی که خودشان تجربه کردهاند را ببینند. این خوب است، اما باید این مشکلات را به عنوان اطلاعات از دیدگاه یک کاربر در نظر بگیرند و باید ببینند آیا دیگران هم همین مشکل را دارند یا خیر. نظرات یک توسعهدهندهٔ دیگر به نوعی باارزشتر از نظرات یک کاربر معمولی است (زیرا حین کار، بازخوردهای زیادی از کاربران میبینند و با مشکلات آنها سروکار دارند) اما باز هم توسعهدهنده باید مانند نظرات یک کاربر با آن برخورد کند.
اگر توسعهدهنده به جای مشکلات کاربران، مشکلات توسعهدهندگان را حل کند، نتیجۀ نهایی بهترین راهکار برای کاربران نخواهد بود. شاید به کُرسی نشاندن حرف خود یا بانفوذترین فرد جمع بودن و وادار کردن تیم به حل مشکلات خود حس لذتبخشی باشد، اما قطعاً تولید نرمافزاری که در نهایت هیچ کمکی به کسی نمیکند، حس خوبی نخواهد بود.
علاوه بر این، تجربه نشان داده که معمولاً حل کردن مشکلات توسعهدهندگان باعث پیچیدگی خیلی بیشتری میشود تا حل کردن مشکلات کاربران. پس پیدا کردن مشکلات کاربر و حل آنها خیلی راحتتر است تا تصور مشکلات و اتلاف انرژی برای ارائهٔ سولوشن برای درخواستهای خود توسعهدهندگان.
نتیجهگیری
هرگز منظور ما این نیست که هیچ توسعهدهندهای یک برنامۀ مناسب تولید نکرده، یا هیچ کاربری هرگز یک راهکار خوب پیشنهاد نداده است. قضاوت دربارۀ مسائلی از این دست، باید توسط فردی صاحبنظر انجام شود. علاوه بر این، به خاطر داشته باشیم که کاربران (و ترجیحاً تعداد زیادی کاربر یا اطلاعات دربارۀ تعداد زیادی کاربر) میتوانند بگویند چه مشکلی دارند و توسعهدهنده (ترجیحاً فردی که شرح وظایفش فهمیدن مشکل و تصمیمگیری دربارۀ آن و شاید گرفتن بازخورد از همردههای خود باشد) هم میتواند در اعمال راهکار مناسب تصمیم درست بگیرد.
حال نوبت به نظرات شما است. آیا تاکنون در شرایطی تصمیم گرفتهاید که کاربران اظهار نظرهایی غیرعملی کرده باشند و از توسعهدهنده بخواهند که کارهای عجیبوغریبی روی نرمافزار پیادهسازی کند؟ نظرات و دیدگاههای خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.