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


اگر فرهنگ لغات رو باز کنیم و معنی کلمات زیر رو  ببینیم :

Programmer= One who programs

و

Developer= One that develope

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

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

در واقع برنامه نویس شخصی هست که هیچ کاری نمیکنه بجز اینکه کد بنویسه و همچنین باگها رو برطرف بکنه.برنامه نویس هیچوقت مشخصه نیازمندیها و توانایی های نرم افزار رو تعیین نمیکنه . برنامه نویس هیچگاه سیستم خودکار تست نرم افزار نمی نویسه.(Automated Test Case) برنامه نویس هیچ نقشی در به روز نگهداشتن نرم افزار متناسب با نیاز روز نداره ، بعبارت دیگه اون هیچ کاری به شناسایی نیازهای روز یک فن آوری یا یک مشکل نداره.برنامه نویس هیچ کمکی به مشتریان برای حل مشکلاتشون نمیکنه.برنامه نویس هیچگاه مستندسازی نرم افزار رو چه مستندات فنی اولیه (UML) و چه مستندات نهایی شامل راهنمای کاربران ، راهنمای نصب ، راهنمای رفع اشکالات و…. رو انجام نمیده.برنامه نویس هیچ کمکی به تست نرم افزار نمیکنه.اون حتی کدهایی رو که خودش نوشته بندرت دوباره مرور می کنه و در عوض عادت داره کدهای جدید بنویسه.

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

در واقع چند تفاوت اساسی بین شرکتهای نرم افزاری بر اساس بزرگی اونها وجود داره:

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

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

در واقع یک توسعه دهنده ، شاید همه کارهایی رو که گفتیم انجام نده ، اما به همه اونها مسلطه.و تسلط اون باعث میشه تا در روند تولید نرم افزار بتونه مشارکت خوبی با اعضای تیم داشته باشه و با آگاهی کاملی که داره علیرغم وظیفه تعریف شده وی در تیم ، از کار سایر اعضاء بخوبی مطلعه و میتونه هم ایده بگیره و هم ایده بده .

موفق باشید.

Advertisements

2 پاسخ به “تفاوت برنامه نویس و توسعه دهنده

  1. – نخست: من واژه «برنامه ساز» رابرای developer بیشتر می پسندم. گویا تر و پذیرفتنی تر است.

    – شاید نوشته قدیمی من «در شرکتتان برنامه‌ساز نیاز دارید، نه برنامه‌نویس» بتواند برای درک بهتر تفاوت میان این دو کمی راهگشا باشد.
    http://bos.opatan.com/92/developers-not-programmers/

  2. شاید بهتر بود کمی با لطافت بیشتری با برنامه نویس برخورد می کردید. 😀
    ولی تو شرایط فعلی که همه چیز داره دانش محور می شه احتمالا به زودی از این برنامه نویس های صرف کمتر ببینیم.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن /  تغییر دادن )

عکس گوگل

شما در حال بیان دیدگاه با حساب کاربری Google خود هستید. بیرون رفتن /  تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن /  تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن /  تغییر دادن )

درحال اتصال به %s