راهنمای کاربردی برای مدیریت توسعه نرم افزار
متخصص موضوع
یک کارشناس موضوعی (SME) شخصی است که در یک موضوع یا حوزه خاصی تسلط دارد. این اصطلاح هنگام ایجاد و توسعه مطالب در مورد یک موضوع خاص استفاده می شود. در توسعه نرم افزار، افراد هنگام نوشتن مقالات، مستندات یا کتابچه های راهنما با کارشناسان موضوع مشورت می کنند. آنها همچنین برای ایجاد تست استخدام می شوند و با نویسندگان فنی جفت می شوند تا اطلاعات را به مخاطب هدف تبدیل کنند.
SME ها همچنین هنگام توسعه مواد آموزشی یا تیم های آموزشی ضروری هستند. برخی از موضوعات و ابزارهایی وجود دارد که فقط تعداد کمی از مردم آن را درک می کنند و SME ها را بسیار مورد توجه قرار می دهد. در مهندسی و نرم افزار، زمانی که یک تیم در حال طراحی مفاهیم جدید یا بررسی عملکرد یک سیستم یا فرآیند هستند، با آنها مشورت می شود.
به همین دلیل است که SMEها اغلب به عنوان مشاور در دانش حوزه خود به عنوان پاسخ دهندگان حرفه ای به سؤالات و نشان دادن بهترین رویه ها و شیوه ها کار می کنند. هنگام توسعه ابزارهای جدید، SMEها به توسعه دهندگان نرم افزار می گویند که نرم افزار چه کاری باید انجام دهد و نیازهای آنها. هنگام توسعه نرمافزار برای یک بخش، چه تجارت، نویسندگی یا علم موشک، داشتن دیدگاه آگاهترین کاربر نهایی (SME) میتواند بازی را تغییر دهد.
SME چیست؟
SME = کارشناس موضوع
مشاوران، مربیان و کارشناسان
پایگاه دانش و تجربه گسترده
آنها به عنوان راهنما در توسعه و نوشتن فنی کار می کنند
توسعه دهنده تمام پشته
توسعه دهندگان فول استک آن دسته از توسعه دهندگانی هستند که در مورد کل پشته توسعه دانش و تجربه دارند. این یعنی چی؟ آنها میتوانند هم نرمافزار کلاینت و هم سرور را توسعه دهند که معمولاً با نامهای front end و back end شناخته میشوند.
این بدان معناست که توسعهدهندگان فول استک بر HTML و CSS تسلط دارند و در عین حال مرورگرها، سرورها و پایگاههای داده را با زبانهای برنامهنویسی اضافی مانند Javascript، PHP، Node، Python، SQL و غیره مدیریت میکنند.
این اصطلاح احتمالاً از اوایل دهه نود سرچشمه گرفته است، زمانی که سایت ها اغلب به طور کامل توسط یک توسعه دهنده به نام وب مستر طراحی، مدیریت و ساخته می شدند. با گذشت زمان و پیچیده تر شدن همه چیز، وب مسترها به توسعه دهندگان تمام پشته تبدیل شدند و ایده ایده آل ساختن وب سایت کامل توسط یک شخص را به گذشته تبدیل کردند، حتی اگر برخی هنوز بر آن اصرار داشته باشند. برای اینکه در این حوزه بهترین شوید می توانید در بهترین کلاس های برنامه نویسی شرکت کنید.
پس چرا آنها فول استک در نظر گرفته می شوند؟ عمدتاً به این دلیل که آنها دانش هر دو قسمت پشتی و جلویی را به صورت سازمان یافته نشان می دهند. امروزه چندین پشته محبوب می تواند ترکیب مفیدی برای توسعه دهندگان باشد. برای نام بردن چند مورد از W3schools، یک سایت محبوب آموزش توسعه دهندگان:
- پشته LAMP: جاوا اسکریپت – لینوکس – آپاچی – MySQL – PHP
- پشته LEMP: جاوا اسکریپت – لینوکس – Nginx – MySQL – PHP
- پشته MEAN: جاوا اسکریپت – MongoDB – Express – AngularJS – Node.js
- پشته جنگو: جاوا اسکریپت – پایتون – جنگو – MySQL
- Ruby on Rails: JavaScript – Ruby – SQLite – Rails
از یک توسعهدهنده با چنین پایگاه دانشی انتظار میرود که بر تمام فناوریهای یک پروژه تسلط داشته باشد و آنها را به یک راهحل برای همه تبدیل کند. حتی اگر این توسعهدهندگان بتوانند بهعنوان رعد و برق نمونهسازی اولیه کنند، به هر یک از اعضای تیم کمک کنند، و بهعنوان سوئیچ چراغ بین قسمت جلو و عقب چرخانده شوند، این رویکرد محدودیتهایی دارد. پایتون یکی از بهترین زبان های توسعه دهنده است.
گاهی اوقات، توسعه دهندگان تمام پشته تبدیل به چند وظیفه ای بدون توقف می شوند که قادر به تمرکز روی یک کار واحد نیستند. با پیشرفت فناوری و افزایش تعداد ابزارها، موقعیت های توسعه دهندگان فول استک به طور فزاینده ای پیچیده می شود. ممکن است تنها راهحل برای یک استارتآپ یا فریلنسر، مدیریت یک پروژه واحد باشد، اما در مورد یک شرکت بزرگ بهترین گزینه نیست. می دانید، تقسیم کار و پسری به نام اسمیت.
TL;DR ما به تازگی از توسعه دهنده فول استک رونمایی کردیم، تک شاخ که همه در شرکت خود می خواهند. بیایید یک جمع بندی سریع انجام دهیم تا نقش ها و مسئولیت های آنها را ببینیم.
- پایگاه دانش توسعه گسترده
- آشنا به توسعه فرانت اند و بک اند
- مدیریت کامل چرخه عمر نرم افزار
- ارتقا و تنظیم دقیق نرم افزار
- بازخورد جامع و جامع بدهید
- تفکر انتقادی و ذهنیت رشد
مقایسه نقش ها و باورهای غلط
در این بخش، برخی از تصورات غلط رایج در میان مدیریت توسعه نرمافزار را با مقایسه برخی از نقشها بررسی میکنیم. نقشهایی مانند مدیر ارشد فناوری و رهبری فناوری یا مدیر پروژه و محصول اغلب با هم مخلوط میشوند که منجر به چندین مشکل ارتباطی و مسئولیتی میشود.
به یاد داشته باشید که این راهنما دائما در حال تغییر و به روز رسانی است. اگر شک دارید یا اگر می خواهید یک بررسی مقایسه ای نقش داشته باشید، به من اطلاع دهید. حالا اجازه دهید وارد آن شویم!
CTO در مقابل رهبر فنی
ما قبلاً در مورد وظایف و مسئولیت های CTO و رهبران فناوری بحث کرده ایم. اگر آن را رد کردید، حتما آنها را در بالا بررسی کنید. من حتی یک دکتر tl;
چیزی که این نقش ها را با هم مخلوط می کند این است که هر دو به مهارت های مدیریتی و رهبری در یک تیم توسعه یا کسب و کار نیاز دارند. هر دوی آنها به مهارت های مردمی، دید پرنده و تخصص فنی نیاز دارند. اما ما در مورد تفاوت در مقیاس صحبت می کنیم. هر نقش ترکیب و دامنه متفاوتی از مهارت های مشابه را به خود اختصاص می دهد که می تواند بر اساس فرهنگ تیمی و سازمانی شکل بگیرد.
معمولاً تنها یک CTO مسئول کل حوزه فناوری در یک شرکت است. از سوی دیگر، یک شرکت ممکن است با توجه به تعداد تیم های توسعه مجزای خود، سرنخ های فنی زیادی داشته باشد. موردی در مورد کسب و کار کوچک یا استارت آپ وجود دارد که در آن CTO، رهبر فناوری، توسعه دهنده اصلی و حتی ممکن است کل تیم توسعه دهنده یک فرد واحد باشد.
خوب بود مرسی از زحماتتون
ممنون از مطالب خوبتون. لطفا در مورد تکنیک های توسعه و طراحی نرم افزار هم صحبت کنید.