محمد نصیری
هکر کلاه سفید ، کارشناس امنیت اطلاعات و ارتباطات

تفاوت برنامه نویس و توسعه دهنده چیست؟ به زبان بسیار ساده

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

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

تفاوت برنامه نویس و دولوپر در چیست؟

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

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

مقایسه برنامه نویس و توسعه دهنده

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

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

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

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

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

  1. برنامه نویس ها و توسعه دهندگان نرم افزارهای کامپیوتری هر دو وظیفه نوشتن ، تست کردن و Debug کردن کدها را برعهده دارند
  2. توسعه دهندگان نرم افزار مهارت هایی به نسبت بسیار بیشتر از یک برنامه نویس کامپیوتر دارند که حتی محدود به کامپیوتر نمی شود
  3. توسعه دهندگان نرم افزار کارهای بسیار زیادی انجام می دهند از جمله تجزیه و تحلیل ، طراحی ، پیاده سازی ، نگهداری ، مستند سازی و سایر مشکلات مربوط به آن ... را می توانیم ذکر کنیم
  4. برنامه نویس ها نیز مهارت های ویژه ای برای خودشان دارند که نوشتن ، تست کردن و Debug کردن نرم افزارها از جمله آنها است ، از یک برنامه نویس بیشتر از این نباید انتظار داشت
  5. سطح کاری یک توسعه دهنده نرم افزار بسیار بالاتر از یک برنامه نویس است و طبیعتا یک توسعه دهنده قبلا در لایه برنامه نویس باید فعالیت کرده باشد و تجربه برنامه نویسی داشته باشد

محمد نصیری
محمد نصیری

هکر کلاه سفید ، کارشناس امنیت اطلاعات و ارتباطات

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

27 اردیبهشت 1397 این مطلب را ارسال کرده

نظرات