مسیر حرفه ای شدن برای برنامه نویسان

در این مقاله از نظر یک برنامه نویس حرفه ای مسیری که باید برنامه نویسان برای موفقیت طی کنند بازگو می شود .این مقاله از زبان یک برنامه نویس حرفه ای و طراح تجاری نرم افزار به نام John.Bennet.Jr با  چندین سال سابقه کار بیان می شود .

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

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

نظری که رئیس داشت (کسی که با من مصاحبه می کرد )این  بود که مهارت هایی که در کسب و کار داشته است در پیشرفت پروژه ها و واحد هایی که بر آنها ریاست می کرد بسیار تاثیر گذار بوده است .او می گفت آموزش مهارت های فنی به هر فرد کار خیلی سختی نیست .یعنی همواره می تواند اشخاصی را پیدا کند که مهارت های فنی پروژه را به آنها آموزش دهد ولی یافتن شخصی که هوش و توانایی لازم برای هدایت کل پروژه IT به سمت موفقیت را داشته باشد کار آسانی نیست .

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

بر اساس تحقیقی که کردم متوجه شدم نظر او از این ایده که در سال 2012 منتشر شد نشات می گیرد.ایده ای که در سال 2012 به وجود آمد این بود که مهارت تحلیل و ایجاد نرم افزار مانند یک کالایی است که روز به روز بر ارزش آن افزوده می شود .

رئیس شرکت می گفت رقابت با شرکت های توسعه نرم افزار روسی و هندی که به سرعت و با هزینه های کم تولید نرم افزار می کنند .بسیار مشکل است .آنها می توانند کاری که من انجام می دهم را در کسری از ثانیه انجام دهند .

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

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

ایجاد تغییر

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

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

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

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

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

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

در جستجوی شغل

موقعیت های ارشد فنی

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

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

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

کسب و کار و تحلیلگران سیستم

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

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

مدیریت پروژه

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

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

مدیریت

هدف نهایی  برای بسیاری از ITکاران حرفه ای رسیدن به پست مدیریت است.کتاب مربوط به مسائل شغلی توضیح می دهد که "انتظار می رود که استخدام مدیران سیستم های کامپیوتری و اطلاعاتی ،رشد سریع تری نسبت به متوسط رشد همه مشاغل درسال 2014 داشته باشد." این فرصت های شغلی به شدت مناسب با متقاضیانی با تجربه کار مربوط به کامپیوترمی باشد که اغلب نیازمند مدرک پیشرفته مانند MBA است. و البته، هر موقعیت مدیریتی برای IT نیازمند روابط عمومی قوی است.

مهارت هایی برای توسعه

اکنون شما همه آنچه را که در IT نیاز است واینکه آینده IT به چه سمتی میرود را می دانید. اما چگونه میتوان روی این اطلاعات سرمایه گذاری کرد؟

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

ما تا کنون درباره دو روش برای ارتقا مهارتهای کنونی شما صحبت کرده ایم(دانش لازم در کسب و کار و دانش پیشرفته فنی). اما دو ناحیه مهم دیگر هم هستند: ارتباطات و رهبری

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


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


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


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