سنیور کیه؟ سنیور کسیه که:
مدتیه که هم بحثش اینجا داغه هم زیاد میبینم کسایی که میگن #سنیور هستن اما نیستن!
بین ۲نفر با یه سطح از #دانش_فنی ، ممکنه یه نفرشون سنیور باشه و یکیشون نباشه! داشتم برای خودم مینوشتم که به نظر من کیا سنیورن؟ و بعد یه سرچ کردم ببینم بقیه بزرگان حوزه #نرم_افزار و #مدیریت باهام هم عقیده هستن یا نه؟ که دیدم ظاهرا تفاهم خوبی داریم 🙂
شاید لازم نباشه که بگم دانش فنی قطعا شرط لازمه ولی شرط کافی نیست
حل مسئله براش یه بازیه: مارتین فاولر میگه یه سنیور باید بتونه مشکلات پیچیده رو قشنگ تحلیل کنه و راهحلهایی بده که نه تنها جواب بده، بلکه بعداً هم دردسر درست نکنه.
یادگیری براش آب خوردنه: اندرو هانت و دیوید توماس تو کتاب "The Pragmatic Programmer" تاکید میکنن که یه سنیور همیشه در حال یادگیریه و با سرعت میتونه تکنولوژیهای جدید رو بگیره و تو کارش پیاده کنه.
اصطلاحا میگن باید learning curve پایین باشه
به "نمیشه" اعتقادی نداره: باب مارتین میگه یه سنیور به جای اینکه بگه "نمیشه"، باید بیاد بگه "چقدر هزینه داره" و راههای مختلف رو ارائه بده، حتی اگه گرون دربیاد.
کدی که میزنه مثل جواهر میدرخشه (و تست شده است): کنت بک، پدر TDD، میگه که تست کردن کد از مهمترین بخشهای کاره. یه سنیور باید کدی بزنه که به طور کامل #تست شده و هیچ خطایی توش نباشه.
یه عده معتقدن که تست کار سنیور نیست!
ای خدا
حرفاش پایه و اساس داره، نه از روی حدس و گمان: استیو مککانل تو کتاب "Code Complete" میگه تصمیمات یه سنیور باید بر اساس #تجربه و #داده باشه، نه از روی حدس. این باعث میشه که هم تیمیها و هم مشتریها بهش اعتماد کنن.
استراتژی رو توی خونش داره: وارن برگر توی کتاب "A More Beautiful Question" میگه یه سنیور باید تصویر کلی رو ببینه و با تفکر استراتژیک تصمیمات بلندمدت بگیره.
دنبال مقصر نمیگرده، دنبال راهحله: کن بلانچارد تو کتاب "The One Minute Manager" میگه یه سنیور به جای اینکه بگرده ببینه کی اشتباه کرده، دنبال راهحل میگرده. این طوری فرهنگ همکاری و اعتماد تو تیم قوی میشه.
قابل اعتماده: لینوس توروالدز، خالق #لینوکس ، میگه که اعتماد یکی از مهمترین ویژگیهای یه سنیوره. سنیور باید بتونه با کیفیت کار و رفتار حرفهایش اعتماد دیگران رو جلب کنه.
زمان رو خوب مدیریت میکنه: استیون کاوی، نویسنده "7 عادت افراد بسیار مؤثر"، میگه: "اولویتها رو اولویتبندی کنید." یه سنیور باید بتونه زمانش رو خوب مدیریت کنه و کارای مهمتر رو تشخیص بده تا پروژهها به موقع و با کیفیت تحویل داده بشن.
انعطافپذیره: جیمز گوسلینگ، خالق #جاوا ، میگه: "تغییرات دائمی هستن و نرمافزار باید باهاشون سازگار باشه." یه سنیور باید همیشه آماده تغییر باشه و با شرایط جدید کنار بیاد.
تفکر انتقادی داره و تحلیلگره: ریچارد استالمن، بنیانگذار #نرمافزار_آزاد ، میگه: "هر تصمیمی تو نرمافزار باید با دقت و تحلیل کامل گرفته بشه." یه سنیور باید بتونه مسائل رو تحلیل کنه و بهترین تصمیمات رو بگیره.
همیشه دنبال کیفیت و بهتر شدنه: ادوارد دمینگ، پیشگام مدیریت کیفیت، میگه: "کیفیت نتیجه تلاش مداوم و بهبوده." یه سنیور همیشه دنبال اینه که کیفیت کد و فرآیندها رو بالا ببره و به #تیم کمک کنه تا بهترین خودشون باشن.
دید کلی به پروژه داره: اریک ریموند، یکی از نویسندگان "The Cathedral and the Bazaar"، میگه: "نگاه از بالا به پروژه بهتون کمک میکنه بفهمین هر تصمیم چطور بر کل سیستم تأثیر میذاره." یه سنیور باید دید کلی داشته باشه تا تصمیمات #استراتژیک بگیره و پروژه رو به #موفقیت برسونه.
من سنیور رو بالاتر از تسلط و تجربه در یک سیستم میبینم، تجربه فرد در یک سیستم تسلط میاره ولی اون فرد را سنیور نمیکنه!
معتقدم فرد سنیور رفتارش حتی در بدو ورود به یک سیستم جدید هم متفاوته
و حتی میتونه اگه سیستمی وجود نداره اون سیستم رو براساس تفکر سیستمی بسازه
سنیور تواناییهاش به قول برنامهنویسها abstract تره 😅
اینم اضافه کنیم که سنیور از این نمیترسه دانشی که یاد گرفته رو با دیگران به اشتراک بزاره، هوای تازه کارها رو داره و نمیزاره طرف از مسیری که شروع کرده نا امید بشه