تفاوت بین توسعه دهنده، برنامه نویس و مهندس نرم افزار
اصولا برنامه نویس و توسعه دهنده نباید تفاوت زیادی داشته باشند و اندک تفاوتی هم که حس میشود، به دلیل عادات فیلد کاری تکنولوژی در طبقهبندی وظایف کاری این عزیزان است.
معمولا کامپیوتری های درگیر کد را در سه دسته طبقه بندی میکنند که البته حرفی از بخش دوستان سخت افزاری نزدیم و تمام صحبت ها و توصیف ها معطوف به دوستانی است که در گیر توسعه نرم افزار و سیستمهای کاربری هستند.
- پروگرمر یا برنامه نویس / Programmer
- دولوپر یا توسعه دهنده / Developer
- مهندس نرم افزار / Software Engineer
دسته اول مهندسین نرم افزار
این عزیزان با استناد به قوانین و الگوریتم های «مهندسی» مسئله را به ریزترین حالت ممکن میشکافند تا یک راه حل عملی و منطقی برای حل اون پیدا کنند. فیلد فعالیتِ فردی به عنوان مهندس نرمافزار ممکن است به صورت تحلیلگر سیستم، تستر سیستم، طراح سیستم و یا مدیر سیستم های نرم افزاری تعریف شود. در واقع این افراد در حالت ایدهآل خیلی درگیر کد نمیشوند مگر در صورت لزوم.
به طور کلی مهندسین نرم افزار معمولا افرادی در سمت مدیریت یا ارشد دپارتمان هستند که با چالش های سیستم رو به رو شده و آن را با برنامه ریزی به صورت اصولی رفع میکنند.
دسته دوم پروگرمر ها یا برنامه نویس ها
محدود کردن این دسته بی انصافی محض است ولی طبق عادات کسب و کارها در استخدام، برنامه نویسها افرادی هستند که دانش کاملی از زبان های برنامه نویسی دارند. آنها درگیر فرایندهای طراحی، مدیریت و تست پروژه ها نمیشوند و فقط کد را بر اساس نیاز های سازمان تحویل میدهند.
پروگرمر ها که به مهندسین نرم افزار نزدیک هستند، منطق و تحلیل الگوریتمی دارند. آنها بهترین سیستم را طراحی و با انتخاب بهترین زبان برنامه نویسی آن را به کمک توسعه دهندگان پیاده سازی میکنند. شاید تنها محدودیتی که در کار برنامه نویس ها بتوان گذاشت، اشتیاق و ترجیح آنها به کد و برنامه نویسی است.
طبق نیاز سازمان و آنچه تحلیلگر سیستم و برنامه نویس ارشد سازمان تعیین میکند، برنامه نویس کدی اصولی، تمیز و ساختار یافته را تحویل میدهد و به دلیل «محدودیت زمانی» درگیر فرایند های دیگر نمیشود.
هرچیزی که به یک تولید دیجیتال به واسطهی برنامه نویسی، ختم شه یک محصول برنامه نویسی شناخته میشه و فرد مسئول یک برنامه نویس هست.
دسته سوم دولوپر ها یا توسعه دهنده ها
کد نویسی، اسمبل کردن یک نرم افزار، دیباگ، طراحی، توسعه و پیاده سازی نهایی، همه در شاخهی کاری یک توسعه دهنده قرار دارند.
توسعه دهنده شاید معروف ترین و « محبوب ترین» عنوان شغلی برای کسانی که در فیلد نرم افزار موبایل و وب پروگرمینگ میکنند، است.
توسعه دهنده همان کُدر (کد نویس / Coder) یا برنامه نویس است؟
جدا از بحث عادت استفاده و جا افتادن بیشتر لفظ دولوپر برای این فیلد کاری، توسعه دهنده ها وظایف بیشتری نسبت به برنامه نویس ها دارند. آنها علاوه بر برنامه نویسی وظایفی مانند طراحی سیستم، داکیومنتیشن اجزا سیستم، تحلیل سیستم، و تست، دیباگ و بهینه سازی را هم انجام میدهند.
حرف آخر
دسته بندی های زیادی برای مشتاقان و فعالان در فیلد کامپیوتر تعریف شده است که در این نوشته فقط ۳ دسته کلی تر در زیرشاخهی نرم افزار را معرفی کردیم.
این سه دسته از هم جدا نیستند و هر سه دانش کامل و جامعی نسبت به امور کامپیوتری دارند.
چیزی که آنها را از هم جدا میکند نحوه برخوردشان با مسئله و نحوه حل آن است.
نوشته ای که خواندید مقدمه ای بر دستهی « کپی رایتر فنی» از بلاگ نوژن است که به دل نوشته های تیم فنی ، با طعم آموزش، دغدغههای اهل تکنولوژی، خرده دلخوریهای سیستمی، نقد و بررسی اختصاص دارد.