برنامه نویس هستید یا توسعه دهنده؟ بسیاری از افراد اشتباه می کنند!

برنامه نویس هستید یا توسعه دهنده؟ بسیاری از افراد اشتباه می کنند!

اگر از مردم بپرسید "ابر" چیست؟ هزاران جواب متفاوت خواهید گرفت.
اگراز افراد متفاوت زیادی بپرسید "برنامه نویس کامپیوتر" کیست؟ پاسخ های زیادی دریافت می کنید که نشان دهنده تفاوت Coder، Programmer و software developer است. از ما بپرسید تفاوت این 3 مفهوم چیست، در ادامه می بینیم.
ما افرادی که برنامه می نویسند را به 3 دسته تقسیم کردیم:



Coder





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



Programmer





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



Software Developer





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



از Coder تا Software Developer



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


در سماتک غیر از دوره های زیادی که در مورد برنامه نویسی طراحی شده و اجرا می گردد، 2 دوره به طور خاص مرتبط با موضوعات عنوان شده است:
دوره تحلیل نیازمندی های نرم افزار که از نامش پیداست که شامل چه مباحثی است و کارگاه Beautiful design and code workshop که در آن روش صحیح تفکر و تصمیم گیری به برنامه نویسان آموخته می شود تا تبدیل به یک توسعه دهنده نرم افزار شود.



تاریخ درج: 1395/11/20