توسعه دهنده نرم افزار
چطوری درست و هوشمندانه سوال فنی بپرسیم؟
این نوشته نظر شخصی من هست؛ اگر کسی لینک این مطلب رو برای شما فرستاده، نه من و نه اون شخص از شما متنفر نیستیم و این مطالب به هیچ عنوان قصد توهین به شما رو نداره. صرفا به نظر رسیده که شما شیوه درستی برای سوال پرسیدن ندارین.
حرفهام خیلی مشابه نوشته Eric S. Raymond و Rick Moen هست (1) اما روخوانی و ترجمه نکردم. اگر دقیقا شبیه به همون شد به خاطر اینه که «واقعا» این مسئله رو قبول دارم.
قبل از خوندن این پست موارد زیر رو بپذیرید:
1- کمک داوطلبانه در مقابل پشتیبانی پولی بسیار متفاوته؛ شما آدم مهمی نیستین، کسی هم که تصمیم گرفته به شما کمک کنه آدم مهمی نیست. شما دو نفر در فضای مجازی هستین که در رابطه با یک مشکل فنی گفتگو میکنید. پس:
- باید به من کمک کنید
- من آشنای فلانی هستم
- تو هیچ میدونی من کی ام؟
جایگاهی در این فضاها نداره. اگر من یک سکه قورت بدم کسی من رو «بانک» خطاب نمیکنه همچنین شماهم اگر در یک محفل بخصوصی آدم مهمی هستین دلیل نمیشه دیگران همه جا به شما احترام بذارن، احترام از اعتماد به دست میاد و اعتماد به غریبه ها به طرز برخوردشون با همدیگه بستگی داره.
2- وقت من (کسی که قراره به شما کمک کنه) دقیقا به اندازه وقت شما (کسی که سوال رو مطرح کرده) با ارزشه. پس به وقت همدیگه احترام بگذاریم.
3- آدمها نمیتونن ذهن همدیگه رو بخونن. باید به طور دقیق تمامی جزئیات موردنیاز برای درک موضوع مطرح بشه.
4- در لحظه عصبانیت و بلاتکلیفی هیچوقت از کسی سوال نپرسید، اول به آرامش برسید بعد. (بند یک رو به خودتون یاد آوری کنید.)
5- تمرینات رو خودتون حل کنید، دیگران مسئول حل کردن تمرین شما نیستن. اسمش رو گذاشتن تمرین که یاد بگیرین... خیال کردین اون کسی که انتظار دارین جواب بده خودش چطوری یاد گرفته؟ با حل کردن تمرین
جمع آوری اطلاعات (قبل از سوال پرسیدن)
چهار نوع سوال وجود داره، سوالاتی هستن که با «بله» / «خیر» به نتیجه میرسن؛ سوالاتی هستن که باید در موردشون تحقیق بشه [مثل باگهای جدید سخت افزاری و یا نرم افزاری]. سوالاتی هستن که در جوابشون یک سوال پرسیده میشه و مهمتر از همه سوالاتی هستن که باید کنار گذاشته بشن. [کالی!!!]
موارد زیر رو انجام بدین:
- جستجو توی اینترنت.
- جستجو توی انجمن مربوط به موضوع شما.
- خوندن مستندات مربوط به برنامه/زبان/ابزار مورد بحث.
- اگر مربوط به برنامه نویسی هست، نوشتن یک قطعه کد. (حتی اگه اجرا نمیشه، اصلا لازم نیست اجرا بشه فقط یه نقطه شروعه)
تمامی لینکها و مستنداتی که پیدا کردین رو موقع سوال پرسیدن مطرح کنید.
+ ای آقا من اگه حوصله این چیزا رو داشتم که از تو نمی پرسیدم
- من چرا باید حوصله جواب دادن به تو رو داشته باشم که اینقدر تنبلی؟
سوال اگه جذاب نباشه، اگه به اندازه کافی پر محتوا نباشه ازش به خوبی استقبال نمیشه.
چون من میخوام با جواب دادن به سوال شما، خودم هم یه چیزی یاد بگیرم. پیام هرچقدر پربار تر باشه آدمهای بیشتری به شما و سوال شما علاقه نشون میدن. اعتبار این شکلی به دست میاد؛ با درست سوال پرسیدن و نشون دادن اینکه شما شخص لایقی هستین. تنبل یا فرصت طلب نیستین و صرفا در این لحظه خاص به مشکلی برخوردین که توانایی حل کردنش رو به تنهایی ندارین.
موقع سوال پرسیدن
جای مناسب سوال بپرسید، اگر انجمن هست توی دسته بندی مربوط به خودش. اگر مطمئن نیستین که موضوع به چه دسته بندیای مربوطه کافیه توی ذهنتون بهش سه تا کلمه کلیدی ربط بدید هر کدوم که بیشتر به دسته بندیها نزدیک بود اونجا سوال رو مطرح کنید.
اگر گروه تلگرامی هست حتما قبل از سوال پرسیدن قوانین گروه رو بخونید. تا یکی به پیامتون جواب داد فوری وارد چت خصوصی نشید، اصلا تا حد امکان از این قضیه پرهیز کنید؛ گروه رو ساختن تا بقیه هم یه چیزی یاد بگیرن.
بریده بریده پیام نفرستین، همه رو توی یک الی دو پیام متوالی بفرستین (پیام قبلی رو reply کنید تا ادامه اون گم نشه). هر داده ای که میتونه به سوال شما ربط پیدا کنه رو توی پیام بنویسید. چیزایی مثل:
- نوع سیستم عامل و نسخهای که استفاده میکنید
- آدرس مطلب یا مطالبی که درباره این مشکل پیدا کردین (*)
- اگر مشکل درباره یک برنامه هست، نحوه نصب اون برنامه رو ذکر کنید (از مخزن گرفتین؟ از فلان سایت گرفتین؟ و ...)
* حتما، لینک یا کلمات کلیدی که در رابطه با این مشکل پیدا کردین رو توی پیام ذکر کنید به خاطر اینکه بقیه میفهمن اون موارد رو امتحان کردین در نتیجه جواب تکراری نمیدن. بعلاوه ممکنه شما درحین تحقیقات درست متوجه چیزی نشده باشین و الان یکی میتونه براتون بر اساس همون منابع بیشتر توضیح بده.
سعی کردم این بحث رو زیاد کشش ندم تا کسایی که حوصله ندارن بتونن یه نگاهی بندازن. کسانی که این موارد رو میدونن و رعایت میکنن نیازی به خوندن این مطلب ندارن.
در پایان اینکه همه اداب و رسوم معقول که توی یک جامعه واقعی رعایت میشه توی فضای مجازی هم میتونه رعایت بشه. چون اون رو نمیبینید و اون هم شما رو نمیبینه دلیل نمیشه که انسانیت رو فراموش کنید.
مطلبی دیگر از این انتشارات
بررسی اوبونتو ۲۱.۰۴
مطلبی دیگر از این انتشارات
نگاهی به امروز و فردای WebAssembly
مطلبی دیگر از این انتشارات
بررسی اوبونتو ۱۹.۱۰ و حل برخی مشکلاتش