در آخرین بخش از سری مقاله های برنامه نویس خوب در این قسمت بعد از اینکه فهمیدیم:
برنامه نویس مسئولیت پذیرش خوبه!
برنامه نویس سرمایه گذارش خوبه!
حالا رسیدیم به ایستگاه آخر و قرار است بفهمیم که برنامه نویس اجتماعیش خوبه!. همه ی این بخش های ارائه شده، برگردانی آزاد از فصل اول کتاب The Pragmatic Programmers است.
در این بخش قرار است یادبگیریم که فقط محتوا مهم نیست و در کنار آن نحوه ی بسته بندی و ارائه ی آن هم موارد بسیار مهمی هستند. داشتن بهترین ایده ها، بهترین کدها، یا عملگراترین تفکرها در نهایت عقیم هستند. مگر اینکه بتوانید با افراد دیگر ارتباط برقرار کنید. بدون ارتباط های موثر با دیگران، بهترین ایده ها هم راه به جایی نمی برند و حمایت نمی شوند.
ما به عنوان برنامه نویس، ساعت ها در جلسات به صحبت های دیگران گوش می دهیم و با آنها صحبت می کنیم. با کاربران نهایی محصول مصاحبه می کنیم تا نیازهای آنها را درک کنیم. برای کدهایی که می نویسیم، مستندهایی آماده می کنیم که توسط این مستندها قرار است با برنامه نویس هایی که در آینده کدها را می خوانند، ارتباط برقرار کرده و فکرهای مان را به آنها انتقال بدهیم. با نوشتن یادداشت هایی، چیزهایی که احتیاج داریم را درخواست می دهیم و یا وضعیت کار یا خودمان را گزارش می دهیم، حتی می توانیم با این یادداشت ها ایده ها و رویکردهای جدیدی را پیشنهاد بدهیم. و البته در تیم هایمان با دیگر همکارهایمان کار می کنیم تا به اهدافمان برسیم. همانطور که می بینید، زمان زیادی از روزمان صرف برقراری ارتباط می شود، در نتیجه باید این توانایی مان را تقویت کنیم.
زبانی که با آن حرف می زنید را مانند یک زبان برنامه نویسی بدانید و قوانین برنامه نویسی تمیز و اصولی را در آن هم رعایت کنید.
ما برای اینکه توانایی برقراری ارتباط مان را تقویت کنیم راه هایی را به شما ارائه داده و هرکدام از آنها را تشریح می کنیم:
مخاطب خود را بشناسید.
صحبت کردن یک چیز است و انتقال منظورمان به شنونده و مخاطب چیز دیگریست. برای اینکه شما بتوانید در این کار موفق باشید باید نیازها، علایق و توانایی های مخاطب خود را درک کنید.
فرض کنید شما قرار است سیستم جدیدی را به یک مجموعه ارائه بدهید. شما باید براساس اینکه مخاطب شما در آن جلسه، کاربران نهایی محصول هستند یا بخش بازاریابی شرکت یا مدیران توسعه و زیرساخت شرکت یا برنامه نویسان آن، ارائه ای متفاوت داشته باشید تا آنها را برای خرید و استفاده از محصولتان هیجان زده کنید.
در حین ارائه تان هم به اطلاعاتی که از قبل در مورد آنها داشته اید اکتفا نکنید و در لحظه دانش خودتان را از مخاطب های تان برروز کنید. فراموش نکنید که:
معنای ارتباط شما، پاسخی است که دریافت می کنید.
پس در حین زمان ارائه تان به زبان بدن و حالت چهره ی مخاطب های تان دقت کنید و براساس آن، مسیری که در ارائه طی می کنید را اصلاح کنید.
بدانید چه چیزی می گویید.
نویسنده های داستان ها، قبل از شروع نگارش داستان یک بار تمام کاراکترهای داستان را طراحی می کنند و کل داستان و اتفاقاتی که قرار است رخ بدهد را طرح ریزی می کنند و می دانند در کجای داستان شان لازم است برای مثال بلایی سر شخصیت مرد جوان داستان شان بیاید. ما هم باید قبل از اینکه مستندی را طراحی کنیم یا برای جلسه ای آماده شویم، با توجه به شناختی که از مخاطبمان بدست آورده ایم، باید ایده ها، استراتژی ها و نکاتی که می خواهیم به مخاطب مان منتقل کنیم را یادداشت کرده و بررسی کنیم که آیا این راه ارتباطی و این نوع مطرح کردن آن پیام مورد نظرمان را به مخاطب موردنظرمان منتقل می کند یا خیر؟
زمان مناسب را انتخاب کنید.
فرض کنید مدیر شما از یک جلسه ی طولانی بیرون آمده است و به او خبر می دهند که یکی از عزیزانش در بیمارستان بستری شده است و بیرون، باران می بارد و ترافیک سنگینی از جلوی درب شرکت تا بیمارستان ایجاد شده است. آیا الان فرصت مناسبی هست که از مدیرتان بخواهید RAM سیستم شما را ارتقا بدهد؟ قطعا خیر. توجه داشته باشید که زمان و محتوای ارتباطی که برقرار می کنید، باید باهم تناسب داشته باشد.
بهترین سوالی که درباره ی این موضوع می توانید از خودتان بپرسید این است که "آیا الان زمان خوبی برای صحبت کردن است؟"
سبک مناسب را انتخاب کنید.
سبک ارائه ی خود را متناسب با مخاطب تان تنظیم کنید. برخی از افراد نیازمند جلسه ی حضوری و پر از نمودار و اعداد و ارقام هستند و برخی دیگر ترجیح می دهند در یک چت طولانی با شما ارتباط برقرار کنند. اینکه سطح آشنایی مخاطب شما با موضوعی که قرار است به او ارائه بدهید، جقدر است هم نکته ی خیلی مهمی خواهد بود.
دقت داشته باشید که شما نیمی از این ارتباط هستید و نیمه ی دیگر آن مخاطب شماست پس در انتخاب سبک مناسب برای ارائه، به او هم خیلی توجه کنید.
ظاهر مناسب و زیبایی را انتخاب کنید.
ایده های شما ارزشمند و مهم هستند، پس سزاوار این هستند که یک وسیله نقلیه ی زیبا، آنها را به مخاطب های شما برسانند.
بسیاری از برنامه نویس ها و حتی مدیران، فقط روی محتوا تمرکز می کنند. این یکی از خطاهای بسیار بزرگ است. شما می توانید خوشمزه ترین غذاها را با زحمت بسیار زیادی درست کنید ولی در یک ظرف کثیف و به صورت نا مناسبی سرو کنید. طبیعی است که برای مخاطب، لذت بردن از آن غذا کار بسیار دشواری است.
در صحبت کردن سعی کنید از کلمات زیبا استفاده کنید و در مستندهایی که ارائه می دهید، سعی کنید اصول نگارش (فنی یا غیرفنی) را رعایت کرده و با صفحه بندی مناسب و زیبا، لذت استفاده از محتوا را به مخاطب تان هدیه بدهید.
مخاطب را درگیر کنید.
می توان با درگیر کردن مخاطب در تهیه ی سند و یا موضوع صحبتی که قرار است با هم داشته باشیم، بخش هایی از محتوا را که برای او اهمیت بیشتری دارد و بیشتر مورد توجه او قرار می گیرد را به او ارائه داد. این کار را می توان با ارائه ی پیش نویس و یا هماهنگی های غیر رسمی و یا رسمی قبل از جلسات اصلی انجام داد.
بشنوید تا شنیده شوید.
اگر می خواهید مردم به شما گوش بدهند، باید به آنها گوش بدهید. حتی اگر فکر می کنید در مورد موضوعی تمامی اطلاعات را دارید، بازهم به حرف های دیگران گوش بدهید، در غیر اینصورت آنها هم به حرف های شما گوش نمی دهند.
با پرسیدن سوال یا حتی تشویق دیگران به بازگو کردن صحبت های شما با کلمات و زبان خودشان، جلسه های تان را به گفتگوهایی تبدیل کنید که همه در آن مشارکت داشته باشد. با این روش ممکن است چیزهای زیادی هم شما از دیگران بیاموزید.
پاسخ دیگران را بدهید.
اگر از کسی سوال بپرسید و او جواب شما را ندهد، احساس می کنید آن فرد بی ادب است. با توجه به مشغله ی زیادی که طی روز برای تان پیش می آید ممکن است فراموش کنید به یک ایمیل یا پیامی که برایتان رسیده است، پاسخ بدهید. این رفتار ممکن است باعث شود ارتباط شما با دیگران خراب شده و یا از تاثیرگذاری مناسب برخوردار نشود.
حتی اگر پاسخ شما به یک پیام این باشد که "بعدا با شما تماس می گیرم"، خیلی بهتر از این است که آن پیام را بدون پاسخ رها کنید.
مستند را خوب بنویسید.
آخرین موضوعی که درمورد ارتباط خوب به آن می پردازیم، مستند نویسی است. متاسفانه برنامه نویس ها خیلی به این مستند نویسی اهمیت نمی دهند و امیدوارند در پایان پروژه، مدیران فراموش کنند مستندهای پروژه را تحویل بگیرند.
برنامه نویس های خوب برای دونوع مستند اهمیت زیادی قائل هستند. اول اینکه روی خود کد برنامه با نوشتن Comment های مناسبی، تکه کدهای خاص خودشان را توصیف کنند تا بقیه بتوانند به راحتی آن تکه کد را درک کرده و از آن بهره ببرند. و دومین مستند سازی برنامه، نکته ها و توضیح هایی هست که نمی شود روی خود کد برنامه و با استفاده از Comment آنها را توضیح داد. مثلا فرض کنید شما مسئله ای را حل کرده اید و برای حل آن از روشی استفاده کرده و اید و سه روش دیگر برای حل آن مسئله را استفاده نکرده اید. در این مستندها شما باید دلیل انتخاب و رد این روش ها را بیان کنید.
البته اصلا انتظار نمی رود که تمام توابع و کلاس ها و عملیات های انجام شده در کد برنامه مستند شود.
امیدوارم از این سری مقاله های برنامه نویس خوب خوشتان آمده باشد و چیزهای جالبی را یادگرفته باشید و با استفاده کردن از آموخته هایتان به برنامه نویس های بهتری تبدیل شوید. در آخر پیشنهاد می کنم کتاب The Pragmatic Programmers را بخوانید و از آن لذت ببرید.