ضمیمه B
دعوتی برای شاگردی (A Call for Apprenticeship
نویسنده: دیو هوور (Dave Hoover)
نکته:
این متن ابتدا در وبلاگ شخصی من در ۲۲ آگوست ۲۰۰۷ منتشر شد. این دعوتنامه برای کسانی است که قدرت جذب شاگرد یا ایجاد برنامههای شاگردی را دارند. حتی اگر فعلاً چنین قدرتی ندارید، امیدوارم وقتی از دوران شاگردی عبور میکنید، این سخنان در ذهنتان بماند.
در کنفرانس Agile 2007، در ۳۰ دقیقهی پایانی سخنرانی «عمو باب» دربارهی استادکاری و حرفهگرایی شرکت کردم. وقتی باب از استادکاری سخن میگوید، معمولاً به جزئیات فنی کار میپردازد — مثل روشها و ابزارها — اما در یکی از اسلایدهایش به موضوع شاگردی اشاره کرد. او با شور و حرارت توضیح داد که بیشتر دانشگاهها فارغالتحصیلان را برای ارائهی نرمافزار باکیفیت از همان روز اول آماده نمیکنند (چه رسد به کسانی که از رشتههای دیگر وارد دنیای توسعهی نرمافزار میشوند و حتی همان آموزش ناکافی علوم کامپیوتر را هم ندیدهاند).
او تأکید کرد که باید این جوانان و تازهکاران را شاگردی کنیم — یعنی در محیطهایی یادگیری مؤثر فراهم کنیم که چند شاگرد در کنار چند کارآزموده کار کنند و آنها نیز زیر نظر یک استاد واقعی رشد یابند. حرفهایش برایم مثل موسیقی بود... تا اینکه از حاضران خواست دستشان را بالا ببرند اگر در چنین محیطی کار میکنند.
من با افتخار دستم را بالا بردم، اما وقتی اطرافم را نگاه کردم و دیدم فقط خودم دستم بالا است، دلم فروریخت.
در ادامهی کنفرانس، از اینکه استودیوی نرمافزاری Obtiva چنین محیط منحصربهفردی دارد احساس غرور میکردم، اما همزمان غمگین و ناامید از اینکه صنعت ما تقریباً هیچ فرصت شاگردی برای تازهواردان فراهم نمیکند. بیشترین ناامیدی من از شرکتهای کوچک ۱ تا ۲۰ نفره است که پر از توسعهدهندگان فوقتجربه و جهانیاند اما هیچ شاگردی نمیپذیرند. من درک میکنم که ترجیح میدهید فقط افراد باسابقهی پنج سال به بالا را استخدام کنید، اما به باور من با این کار به رشد صنعت آسیب میزنید.
فارغالتحصیلان و تازهواردان برای اولین شغل خود به سراغ شرکتهایی میروند که نیروی سطح پایه استخدام میکنند. همینجاست که استعدادهای بزرگ از دست میروند، چون افراد بااستعداد در سازمانهای کند، بوروکراتیک و متوسط خسته و بیانگیزه میشوند. تصور کنید اگر ناتانیل تالبوتِ جوان، بهجای اینکه شاگرد اول شرکت RoleModel Software شود، فقط یک شغل سطح پایین پیدا میکرد — احتمالاً امروز دنیای روبی بدون کتابخانهی test/unit بود.
شاگردی یعنی فراتر از استخدام افراد مبتدی؛ یعنی پیوند شاگرد با یک کارآزموده. این الزاماً به معنی برنامهنویسی دوتایی دائمی نیست، بلکه به این معناست که شاگرد در کنار فردی با تجربه قرار دارد که پیشرفت او را زیر نظر میگیرد و همیشه در دسترس او برای راهنمایی است.
در ضمن، شاگرد لزوماً تازهکار نیست — برخی از شاگردان ما یک تا دو سال سابقهی کاری داشتند، برخی در میانهی تحصیل دانشگاهی بودند، برخی تازه فارغالتحصیل شده بودند و حتی یکی از آنها پس از سالها دوباره وارد دنیای فناوری اطلاعات شد. وجه مشترک همهی آنها این بود که حاضر بودند موقعیت پایینتر را بپذیرند تا فرصت یادگیریشان حداکثر شود، نه اینکه صرفاً دنبال درآمد بالاتر باشند. و به تجربه دریافتهام که اگر شاگرد استعداد و نگرش درست داشته باشد، موفقیت مالیاش خودبهخود از موفقیت یادگیریاش پیروی خواهد کرد.
خواهش میکنم ایجاد برنامهی شاگردی در سازمان خود را در نظر بگیرید. باور دارم که شاگردی، بهترین امید صنعت ما برای حل بحران کمبود استعداد است.
من به دانشگاهی عالی رفتم و نظریههای زیادی یاد گرفتم (آن زمان نظریه کمتر بود!)، اما چیزی که آن تجربه را واقعاً درخشان کرد، شاگردیای بود که گذراندم. یکی از دانشجویان تحصیلات تکمیلی مرا زیر بال خود گرفت. چیزی را مستقیماً آموزش نمیداد، اما با رفتار و روش کارش به من آموخت که یک برنامهنویس بزرگ چگونه میاندیشد. ماهها کار کردن کنار او، دانشی عملی در طراحی، کدنویسی و رفع اشکال به من داد که هیچ درسی نمیتوانست منتقل کند.
بعدها در استارتاپی در لندن شاگردی دیگری داشتم. رئیس جدیدم به من نشان داد که توسعهی نرمافزار بهاندازهی فناوری، به انسانها هم مربوط است. او کمک کرد تا بُعد تجاری کار را درک کنم و فهمیدم که توسعهی عالی، رابطهی انسانی را بر پایهی توان فنی بنا میکند.
من از این دو شاگردی متفاوت، بهمراتب برنامهنویس بهتری شدم. بر اساس تجربهی شخصیام، ایمان دارم که کار کردن در کنار استادان بهترین راه برای یادگیری یک حرفه است.
— دیو توماس در پیشگفتار کتاب Software Craftsmanship نوشتهی پیت مکبـرین