09120368440

تشکیل تیم برنامه نویسی، آنچه باید بدانید و انجام دهید

اگر به عنوان یک توسعه دهنده نرم افزار یک تیم داشته باشی انتظار داری کارها در تیم برنامه نویسی تو چطور پیش برود ؟

 مثلاً، افراد متخصص و خلاق را در تیم داری که به خوبی با هم همکاری می‌کند.  هر کس کار خود را منظم و در زمان مشخص تحویل می دهد. اینطور تو هم به راحتی آن‌ ها را مدیریت می‌کنی و در اسرع وقت نرم افزار را به مشتری تحویل می دهی.

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

 فراموش نکن که انسان ها با هم تفاوت دارند. اخلاق های متفاوت، اختلاف نظرها و اختلاف سلیقه ها کمی مدیریت تیم های نرم افزاری را پیچیده می کند.

 

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

 

چطور یک تیم برنامه نویسی تشکیل بدهم ؟

مسیر اجرای یک پروژه نرم افزاری می تواند نقشه راه برای تشکیل تیم برنامه نویسی را به تو نشان دهد. پس بهتر است برای یک بار هم که شده سناریو پروژه برنامه نویسی گرفتن را با هم بررسی کنیم. 

 کارفرما یا مشتری طی یک مصاحبه نیاز خود را بیان می کند. شخص برنامه نویس یا مدیر پروژه با توجه به شرایط و امکاناتی که دارد تصمیم می گیرد که آیا پذیرفتن این پروژه به نفع تیم هست یا نه .پس شخص اول هر تیم نرم افزاری که مسئول برقراری ارتباط با مشتری و تشخیص مصلحت تیم هست “مدیر پروژه نرم افزاری” است.

در صورتی که با ساخت این نرم افزار موافقت شود نوبت به تقسیم کارها بین اعضای تشکیل دهنده تیم نرم افزاری می رسد. کارها چه هستند ؟؟

  • تحلیل نرم افزار
  • پیاده سازی کدها بر اساس تحلیل
  • طراحی دیتابیس
  • طراحی واسط کاربری
  • تست نرم افزار

پس با شناخت مسیر اجرای یک پروژه نرم افزار تجاری اکنون می دانی که تیم برنامه نویسی ات چه بخش هایی دارد و به چه افرادی نیاز داری. البته تعداد افراد تیم توسعه دهنده نرم افزار به بزرگی و نوع پلت فرم پروژه بستگی دارد.

 

چرخه حیات توسعه نرم افزار

تحلیل نرم افزار چیست ؟

آنالیز نرم افزار یعنی تشخیص ماهیت سیستم، سیستم چه کاری انجام می دهد ؟ آن کار را چطور انجام می دهد؟ 

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

هدف از تشخیص کسب و کار مشتری این است که تحلیگر نرم افزار برای ساخت نرم افزار به یک بینش در مورد اجزای نرم افزار برسد و  به زیر و بم سیستم کاری مشتری آگاه شود.

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

 

 تحلیلگر نرم افزار چه مهارت هایی باید داشته
باشد ؟

برای اینکه ببینیم یک تحلیلگر نرم افزار تجاری  لازم است چه فوت و فن هایی  را بداند، سناریو تحلیل نرم افزار را مرور می کنیم. 

شخصی که مدیریت تیم برنامه نویسی را برعهده دارد برای گرفتن پروژه نرم افزاری وارد مذاکره با مشتری خواهد شد. در این مذاکره مهم ترین وظیفه ای که انجام می دهد تشخیص نیازهای مشتری است. تشخیص آنچه مشتری انتظار دارد در نرم افزارش ببیند به وسیله سوال های هدفمند و دیدن سیستم کاری از نزدیک انجام میشود.

 

تحلیل نرم افزار با استفاده از نمودار UML و Activity Diagram

 

سوال پرسیدن و مشاهده به مدیریت پروژه برنامه نویسی کمک می کند تا در قدم اول بداند:

نرم افزار چه شکلی خواهد بود؟ آیا تحت وب پیاده سازی شود بهتر است یا تحت موبایل؟ شاید پیاده سازی نرم افزار تحت دسکتاپ کافی باشد.

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

مذاکره و برقراری ارتباط با مشتری برای تحلیل پروژه نرم افزاری

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

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

 

برنامه نویس، شخصی که کدها را پیاده سازی می کند چه مهارت هایی دارد ؟

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

هر برنامه نویس با توجه به بخشی که به او سپرده شده باید بداند که به جز زبان برنامه نویسی چه چیزهای دیگری لازم دارد. مثلا اگر لازم باشد اهراز هویت در یک سیستم انجام شود با توجه به زبان برنامه نویسی مورد  استفاده از یک فریمورک یا متد خاص استفاده می کتد. 

 

مهارتهایی که برنامه نویس ها در یک تیم برنامه نویسی باید داشته باشند

 

پیاده سازی بانک اطلاعاتی که بر اساس تحلیل انجام می شود را می توانی در همین مرحله در نظر بگیری.

یکی از عواملی که تخصص اعضای گروه برنامه نویسی را مشخص می کند نوع پلتفرمی است که مدیر پروژه برنامه نویسی آن را تعیین می کند.

مثلا برای پروژه های برنامه نویسی تحت وب و موبایل حضور شخص یا شخصهایی که برنامه نویسی Back-end و Front-end را بدانند لازم است. اما برای برنامه نویسی تحت ویندوز در واقع یک Back-end کار می تواند کارها را انجام دهد و نیازی به برنامه نویس Front-end نیست.

علاوه بر این شی گرایی و دانش معماری نرم افزار و مکانیزم طبیعی ذهن و شناخت یک زبان برنامه نویسی لازم
است.

گرچه در برنامه نویسی مهارت های زیادی وجود دارد که ممکن است در اجرای یک پروژه از آنها استفاده کنی. اما نیازی نیست برای تشکیل تیم برنامه نویسی است  به دنبال شخصی باشی که همه این مهارت ها را داشته باشد. چون عملا امکان پذیر نیست.

 

طراح واسط کاربری در تیم برنامه نویسی 

UI یا User Interface  از دیگر بخش هایی است که تیم توسعه نرم افزار باید آن را انجام بدهد. و در واقع بخشی است که در موفقیت یا شکست نرم افزار نقش بسیار موثری دارد.

شخص front-end کار می تواند با آگاهی به علم طراحی UI و UX نقش طراح واسط کاربری را هم ایفا کند. در هر صورت طراحی UI و UX باید دارای مهارت های خاصی باشد.

مثلا بتواند با یک نرم افزار گرافیکی مانند Adobe XD، Photoshop یا Sketch کار کند.

ظاهر یک برنامه با استفاده از کاغذ و قلم یا نرم افزارهای گرافیکی به تصویر کشیده می شود . سپس برنامه نویس آن ها را پیاده سازی می کند.

و بقول استیو جابز واسط کاربری به کاربر نشان می دهد که یک نرم افزار چطور کار می کند.

تست نرم افزار چیست؟

تست نرم افزار با هدف بررسی بخش های مختلف نرم افزار انجام می شود. این بررسی باعث می شود تا بخش هایی که ممکن است در زمان طراحی و پیاده سازی نرم افزار از دست اعضای تیم در رفته باشد را پیدا کنی و اصلاح کنی.

تست نرم افزار به تیم برنامه نویسی کمک می کند تا بر روی کار خودشان بازنگری داشته باشند. اعضای تیم می توانند با استفاده از تست نرم افزار کیفیت نرم افزار را بررسی کد. 

 

شناخت اعضای تیم برنامه نویسی بر اساس تیپ شخصیتی

خب اکنون که کارهایی که در هر بخش صورت می گیرد و مهارت های فرد انجام دهنده آن را می دانیم به سراغ
انتخاب اعضای تیم  براساس تیپ شخصیتی آنها  می رویم. بر اساس تیپ شخصیتی آنها در قسمتی قرار می دهیم که از پس انجام آن برآیند.

 

یک مدیر پروژه نرم افراری باید چه ویژگی های اخلاقی داشته باشد

 

یکی از کارهای مدیر تیم نرم افزاری این است که بتواند فرد مناسب برای هر کدام از کارهای نام برده را پیدا کند. اما پیش از آنکه در مورد توانایی های افراد مناسب با هر بخش از تیم برنامه نویسی صحبت کنیم باید ببینیم مدیر پروژه نرم افزاری چه خصوصیات اخلاقی باید داشته باشد.

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

این ویژگی ها موجب می شود که تیم برنامه نویسی در هنگام اجرای یک پروژه برنامه نویسی بسیار موفق باشد.

 

خصوصیات افرادی که تحلیل، برنامه نویسی
و تست نرم افزار را انجام می دهند

 

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

به دلیل اینکه در برنامه نویسی دیباگ و جست و جو نیز از مهارت های اساسی بشمار می آیند، صبور بودن نیز یکی دیگر از ویژگی های اخلاقی مهم است که برنامه نویس ها باید داشته باشند. 

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

 

خصوصیات افرادی که واسط کاربری را طراحی می کنند

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

در کنار جزئی نگر و آنالیزگر بودن، یک UI دیزاینر می تواند با کاربران خود یکدل و همدل باشد.

در قسمت وظایف یک مدیر تیم برنامه نویسی در مهارت های یک مدیر صحبت شد. اگر یک مدیر علاوه بر تشخیص مهارت های تخصصی یک فرد بتواند تیپ شخصیتی افراد را تشخیص بدهد، آنوقت یک تیم نرم افزاری قوی شکل می گیرد.

 

مدیریت اجرای پروژه نرم افزاری 

 

جلو رفتن پروژه برنامه نویسی و تکمیل شدن فازهای مختلف آن هم بخش دیگری از وظایف مسئول تیم برنامه است. فازبندی را پس از تحلیل انجام می دهد به طوری که هر فاز دارای مجموعه از Task ها است که در یک مدت زمان مشخص انجام می شوند.

البته این مدیریت  تقسیم کارها بین اعضای تیم برنامه نویسی باید به گونه ای انجام شود که این افراد بتوانند Task های خود را ببینند. اعضای تیم توسعه نرم افزار بر اساس Task های خود جلو می روند.

پس از تقسیم Task ها بین افراد تیم ، در طول مدت زمان اجرای پروژه مدیر پروژه مسئولیت چک کردن کار هر یک از اعضای تیم را برعهده دارد و تا پایان پروژه آن ها را همراهی خواهد کرد.

متد فازبندی پروژه که اسکرام نامیده می شود باعث می شود که نرم افزار در زمان کوتاه تری انجام  شود و قسمتی از پروژه از دست نرود. این کار همچنین موجب agile بودن تیم برنامه نویسی می شود تا زمانی ادامه می یابد که تمام فازهای نرم افزار بطور کامل انجام شوند.  

 

اسکرام مدیریت پروژه نرم افزاری

 

نتیجه گیری

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

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

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

 

تیم برنامه نویسی

 

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برنامه نویسی یا کد بازی ؟

بیش از 10000 نفر در خانواده آکادمی برنامه نویسی مدحج عضو شده اند و بجای کدبازی، میخواهند ماهیانه سفارش پروژه بگیرند و درآمد داشته باشند.
دوست داری وارد خانواده ما شوی ؟

.