چرا برنامه نویس ها چند شغله هستند؟

این موضوع را که بیشتر برنامه نویس ها چند شغله هستند نمی توان انکار کرد. در واقع این موضوع که اکثر ایرانی ها چند شغله هستند را نمی شود انکار کرد. حتی اگر کسی بتواند با شگردهای خلاقانه این موضوع را پنهان کند.

شاید بعضی مواردی که در این مطلب مطالعه خواهید کرد در مورد مشاغل غیر از برنامه نویسی نیز صحت داشته باشد.

چرا برنامه نویس ها چند شغله می شوند؟

۱) عدم امنیت شغلی

این مطلب را بارها و بارها از کارفرمایان مختلف شنیده ام که نیاز به نیرویی دارند که شش دانگ حواسش به کار شرکت باشد. درگیر کارهای حاشیه ای نشود. به طور خلاصه کاملا در اختیار مجموعه باشد. ولی در اکثر این کارفرمایان تعهدی که مورد نیاز این امر است را ندیده ام. تعهد کارمند و کارفرما امری دو جانبه است. شما نمی توانید انتظار داشته باشید کسی بدون امنیت شغلی مناسب تماما در اختیار شما باشد. به طور مثال اگر تزلزل پروژه ای را که در آن فعالیت می کند مشاهده کرد و به این نتیجه رسید که عدم موفقیت پروژه منجر به قطع همکاری خواهد شد قطعا به دنبال گزینه های جایگزین خواهد گشت.

۲) پرداختی نامناسب

همه ما می دانیم که زندگی مخارج فراوانی دارد. اعم از پیشبینی شده و پیشبینی نشده. هر انسانی به مقدار مشخصی خواهد توانست قناعت پیشه کند و زندگی خود را متناسب با درامد خود مدیریت کند. ولی بین مخارج و درامد فاصله زیادی ایجاد می شود به ناچار از هر طریقی که شده فرد باید این فاصله را کم کند. (نا گفته نماند که پرداختی نا مناسب الزاما پرداختی کم نیست، پرداخت حقوق نا مرتب نیز می تواند مصداقی از پرداختی نامناسب باشد) هر فردی راه حل خاص خودش را خواهد داشت و یکی از راه حل های برنامه نویس ها مشارکت در کارهای پروژه ای و پاره وقت است.

۳) یادگیری

برنامه نویسی شغل پویایی است. نیاز به یادگیری مستمر یکی از نیازهای اصلی هر برنامه نویسی است. وقتی در شرکت یا مجموعه ای این نیاز به نحوی برطرف نشود برنامه نویس ها معمولا مشغول پروژه های جانبی خواهند شد تا این نقص را جبران کنند.

۴) کسب تجربه

وقتی شما با مشکل فنی یا غیر فنی ای بارها و بارها بر می خورید طبیعتا مهارت حل مسائل مرتبط در شما ایجاد خواهد شد. این موضوع با دانش فنی فرق اساسی دارد.

۵) پیشرفت

به طور مثال شما قادر به انجام معماری نرم افزار هستید. بین شما و کسی که کار معماری نرم افزار انجام داده تفاوت وجود دارد. خیلی وقتها امکان این که کسی کاری بالاتر از جایگاه فعلی خود را انجام دهد در سازمان فعلی او وجود ندارد. به این دلیل اقدام به شرکت در پروژه ها یا انجام کارهای پاره وقت می کند.

مواردی ذکر شده برگرفته از تجربه شخصی بنده و مشاهده دوستان و همکاران خودم در طی چند سال اخیر است. قطعا موارد بالا همه دلایلی نیستند که ممکن است فرد را به چند شغلی هدایت کند.

موارد ذکر شده از نظر اهمیت مرتب شده بودند. به طوری که موارد بالاتر از نظر بنده اهمیت بیشتری داشته اند.

پرکاری و بدهی فنی

blog.castsoftware.com

technical-debt

چه برنامه نویسی یک برنامه نویس مفید است؟ ممکن است برنامه نویس های پرکاری را دیده باشید، که همیشه در حال جنب و جوش اند. همیشه در حال فعالیت. اما چه مقدار از این فعالیت مفید است؟ یکی از فاکتورهای مهم مفید بودن یک فعالیت برنامه نویسی مقدار بدهی فنی ای است که به جای می گذارد. در واقع هر چه مقدار بدهی فنی برنامه نویس بیشتر باشد، کار او کمتر مفید واقع خواهد شد.

بدهی فنی نمونه ها و مصادیق فراوانی دارد. در زیر چند مورد از انها را مشاهده می کنید.

  • کلاسهای (class) بسیار بزرگ با مسئولیت های فراوان. (بیشتر سیستم توسط چند کلاس بزرگ مدیریت می شوند)
  • یک stored procedure برای بسیاری از کارها.
  • Copy paste کردن کد! (فاجعه)
  • عدم استفاده مجدد مناسب از کلاسها
  • عدم refactor کردن کدها جهدت استفاده مجدد و نوشتن تکه کدهای جدید برای حل مسائل جدید
  • عدم بروزرسانی سیستم های مشتریان و نیاز به نگهداری سیستم های قدیمی در مشتریان خاص

وقتی بدهی فنی در فرایند انجام کاری بوجود می آید چه اتفاقی می افتد؟ به احتمال زیاد بدهی های فنی جمع شده از فعالیت های قبل روی هم انباشته شده و به زودی حتی فرصتی برای ارائه امکانات جدید باقی نخواهد ماند. با تنگ شدن زمان، فعالیت ها و امکانات در حال توسعه نیز با بی سلیقگی انجام شده و بدهی های بیشتری را بر جای خواهند گذاشت. این دور باطلی است که در نهایت منجر به شکست پروژه نرم افزاری خواهد شد.

آخرین نفر مسئول است

مسئله مهمتر و خطرناکتر در مورد بدهی فنی این است که پرداخت بدهی ها الزما به عهده کسی نخواهد بود که آنها را به بار آورده است. ممکن است نفرات قبلی تیم خرابکاری هایی کرده باشند که شما به عنوان آخرین کسی که روی پروژه کار کرده اید مجبور به پاسخگویی در قبال آنها باشید. هیچ چیز دردناکتر از این نخواهد بود که جوابگوی اشتباهاتی باشید که در ایجاد آنها نقشی نداشته اید!

پرکار هستید؟ پس دقت کنید

اگر برنامه نویس پرکاری هستید حتما به این مورد توجه کنید که تنگی وقت و پرکاری منجر به ایجاد بدهی های فراوان برای تیم شما نشوند. به طور خاص وقتی در حال ارائه تخمین زمانی برای کارهای سفارش داده شده هستید موضوع رفع بدهی های فنی را در نظر بگیرید. نیازی نیست که مدیریت پروژه یا مدیریت محصول در جریان ریز کارهای انجام شده در فعالیت های مختلف باشند.

مطالب مرتبط:

آیا سابقه کاری در درآمد برنامه نویسی نقش مهمی دارد؟

هفت تله فکری در راه اندازی یک استارتاپ

استارتاپ

همه در حال جنب و جوش اند. رشد روز افزون استارتاپ ها غیر قابل انکار است. جوی که در جامعه ایجاد شده بسیار هیجان انگیز است. احتمالا شما هم دوست دارید استارتاپی داشته باشید.

در هنگان بررسی و تحقیق اولیه در مورد کسب و کار جدید ممکن است در تله هایی گرفتار شویم.  در ادامه به بررسی چند نمونه از این مشکلات خواهم پرداخت. در ابتدا بهتر است تعریفی از مفهوم استارتاپ ارائه دهم.

یکی از دقیق ترین تعاریف یک استارتاپ این است:

استارتاپ یک سازمان موقت است که با هدف یافتن یک مدل کسب و کار تکرارپذیر و مقیاس پذیر بوجود آمده است. (از خوشفکری)

البته ناگفته نماند بعضی از موارد پیش رو با توجه کردن به مفهوم و تعریف اصلی یک استارتاپ به خودی خود حل شوند.

۱) پولدار می شوم

با توجه به تعریف بالا به این نتیجه می توان رسید که احتمالا به این زودی ها پولدار نخواهید شد. ایجاد یک استارتاپ تنها اول راه است. ممکن است سالها وقت صرف کنید که به نقطه بازدهی برسید. حتی ممکن است در این بازه زمانی سرمایه اولیه شخصی خود را نیز هزینه کنید. اگر در این بازه تحت حمایت سازمان یا فردی قرار بگیرید یکی از خوشبخت ها خواهید بود.

۲) رئیس خواهم شد

ممکن است بعضی از افرادی که تصمیم به ایجاد یک استارتاپ می کنند، با سودای مدیر شدن و رئیس بودن و به اصطلاح صاحب کار بودن این تصمیم را گرفته باشند. توجه داشته باشید که مدیریت هدف نیست. با این که این نوع تفکر را خیلی کم دیده ام ولی در فرهنگ ما شاید همچین دیدگاهی نسبت به ایجاد کسب و کار جدید وجود داشته باشد. افرادی که با این هدف قدم به این مسیر می گذارند باید در نظر داشته باشند که ممکن است تا مدت ها پس از اجرایی شدن استارتاپ مورد نظرشان هم کسی در سازمان وجود نداشته باشد که نیاز به ریاست وجود داشته باشد! اساسا ذات استارتاپ رهبری را می طلبد تا ریاست. رهبری خصلت کلیدی است که اکثر کارآفرینان آن را دارا می باشند.

۳) با استفاده از ارتباطات فعلی خودم موفق خواهم شد

متاسفانه دو مفهوم رانت خواری و استارتاپ در نظر خیلی از افراد یکسان تلقی می شوند. البته مفهوم رانت خواری بسیار وسیع است و زمینه های زیادی را پوشش می دهد. اگر تعریف یک استارتاپ را در مدل بالا مورد توجه قرار دهید احتمالا به تفاوت های دو مفهوم خواهید رسید. فردی که با استفاده از وسایل مختلف به طور مثال به صورت نسبتا انحصاری در بازار نرم افزار فعالیت می کند قاعدتا استارتاپ راه اندازی نکرده است. یا فردی که با توجه به روابط خاص توانایی انعقاد قرارداد یا اجرای مواردی را دارد نیز همین گونه خواهد بود. حتی در نظر من این گونه افراد کار آفرین نیز نیستند. مدل توسعه یک استارتاپ با مدل توسعه سازمان هایی از این دست بسیار متفاوت است.  اگر پا به صنعتی می گذارید که رقبای فعال در آن از روش های نا سالم در حال فعالیت هستند با روش های مدیریت استارت اپی احتمال شکست شما بسیار زیاد است!

به خواندن ادامه دهید