ژوئن 23, 2012

کارگاه مکانیزه کردن خط تولید نرم افزار

بسیاری از تیم های تولید و پشتیبانی نرم افزار از مشکلاتی چون تاخیر در تحویل نرم افزار، نارضایتی مشتری از کیفیت نرم افزار، ابهام در میزان پیشرفت پروژه و مسائلی از این دست رنج می برند.

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

این کارگاه آموزشی برای چالش های زیر راه حل مناسبی را ارائه می نماید :

1-     تولید نرم افزار با تاخیر صورت می گیرد و  گاهی اوقات ارزش خود را از دست می دهد.

2-     نرم افزار دارای باگ های زیادی است و با رفع آنها باگ های جدیدی ظاهر می گردند.

3-     تحویل نرم افزار و آپدیت های آن دستی است و تاریخچه آنها قابل گزارش گیری نیست.

4-     ویژگی های درخواست شده، پیاده سازی شده، تست شده و تحویل شده به صورت مدون ثبت و پی گیری نمی شوند.

5-     وضعیت عملکرد اعضای تیم شفاف نیست و مشخص نیست که هر عضو چه کاری را طی چه مدت انجام داده است.

6-     برخی از اعضای تیم دور کار هستند و امکان ادغام منظم کدهای آنها در نرم افزار دشوار است.

7-     از سیستم کنترل سورس کد استفاده نمی کنند یا اگر استفاده می کنند به صورت توزیع شده نیست.

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

برای کسب مشاوره رایگان از مدرس دوره، مهندس جعفرزاده فرم زیر را تکمیل نمایید یا به تلگرام @BasirJD پیام دهید.

اجرای خط تولید نرم افزار

تصاویر زیر خط تولید نرم افزار با ابزارهای JetBrains را نشان می دهد.

product-line-section-1product-line-section-2

ارزش های این کارگاه برای شما چیست؟

در ادامه مهمترین آورده ها و ارزش های این کارگاه را برای مجموعه شما بیان می­کنم.

1- شفاف سازی میزان پیشرفت پروژه

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

2- شفاف سازی وظایف و عملکرد اعضای تیم

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

3- مکانیزه سازی از نقطه پس از کد نویسی تا نقطه تحویل به مشتری

یکی از ویژگی های ناب این کارگاه، فرآیند خودکار سازی Build ، Integrate ، Test  و Deliver است. به این ترتیب پس از هر تغییر در سورس کد نرم افزار، کدهای تغییر یافته با کدهای سایر اعضای تیم Integrate شده و پروژه Build می شود. در صورت بیلد ناموفق این رویداد به شما ایمیل می شود تا پی گیری نمایید. در صورت بیلد موفق نسخه تستی از نرم افزار ساخته شده و در اختیار تیم تست قرار داده می شود. در صورت تایید تیم تست، به صورت خودکار نسخه نهایی آماده شده و در سرور اصلی مشتری قرار می گیرند.

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

شما با سناریوهای مختلفی از جمله وب سایت، نرم افزار تحت ویندوز با تکنولوژی های گوناگون از VB6 گرفته تا Java و ASP.Net می توانید این خودکار سازی را انجام دهید.

4- شرکت دادن مشتری به فرآیند تولید با سیستم تحت وب مدیریت ایشو ها

شما می توانید برای نماینده مشتری یا همان صاحب محصول یک حساب در Issue Tracker ایجاد کنید و تمامی درخواست های وی را از این طریق دریافت نمایید. حتی اولویت بندی درخواست ها توسط وی با Drag & Drop امکان پذیر است.

5- داشتن سابقه و قابلیت برگشت همه چیز از کوچکترین تغییر در سورس کد تا تحویل آپدیت به مشتری

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

6- مناسب برای همه نوع تیم ها از کوچک و بزرگ

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

7- مناسب برای هر نوع تکنولوژی تولید از اپ های آندروید تحت Java تا سامانه های اطلاعاتی با ASP.Net

با توجه به ابزارهای انتخابی برای Issue Tracker ، CI Server  ، VCS و غیره، این ابزارهای قابلیت هماهنگی با هر نوع تکنولوژی را دارند و منحصر به مایکروسافت نیستند.

نحوه برگزاری کارگاه

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

البته به صورت پیش فرض این کارگاه طبق زمان بندی زیر طی دو روز متوالی برگزار می گردد.

روز اول

1

معرفی کارگاه، سرفصل ها و نحوه برگزاری آن

08:00

08:30

2

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

08:30

09:30

3

استراحت

9:30

10:00

4

مقدمه ای بر اسکرام

10:00

11:30

5

معرفی پروژه نمونه مدیریت موسسات و توصیف گردشکار آن

11:30

12:00

6

استراحت

12:00

13:00

7

انتساب نقش های Product Owner، Team Member  و Scrum Master به شرکت کنندگان
شناسایی نیازمندی های صاحب محصول و تشکیل Product Backlog
تعریف اسپرینت اول و تشکیل Sprint Backlog

13:00

14:30

استراحت

14:30

15:00

8

نصب نرم افزار Issue Tracker و آموزش استفاده از آن

15:00

16:00

9

ایجاد حساب کاربری برای شرکت کنندگان و انتقال Product Backlog  و Sprint Backlog به آن

16:00

17:00

روز دوم

10

شکستن یک User Story به چندین تسک و ثبت آن در Issue Tracker

08:00

09:30

11

استراحت

9:30

10:00

12

معرفی Continuous Integration و ابزارهای آن

10:00

11:00

13

نصب VCS برای مدیریت سورس کد و ایجاد یک انباره برای پروژه نمونه مدیریت موسسات

11:00

12:00

14

استراحت

12:00

13:00

15

نصب CI Server و ایجاد یک پروژه و کانفیک برای Build

13:00

14:30

16

استراحت

14:30

15:00

17

ایجاد ارتباط بین CI Server و Issue Tracker برای نظارت جامع بر پروژه

15:00

16:00

18

رفع اشکال و مرور کارگاه

16:00

17:00

مطالب تکمیلی

1

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

2

استفاده از Git برای مدیریت نسخ سورس کد

3

نحوه Publish کردن پروژه Web Application

4

استفاده از Dependency Injection برای تولید نرم افزارهای Loosely Coupled

5

معرفی فریم ورک برای ساخت Single Page Web Application

6

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

پیش نیازهای کارگاه

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

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

یک کامپیوتر سرور با قدرت مناسب و اتصال به اینترنت و شبکه داخلی را به عنوان سرور تجمیع قرار می دهیم. این کامپیوتر باید دارای یک IP Valid در اینترنت و یک IP Static در شبکه داخلی داشته باشد. شامل ملزومات این سرور عبارتند از :

1-     Windows Server

2-     SQL Server

3-     .Net Framework

4-     IIS

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

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

1-      Windows 10

2-     Visual Studio

3-     SQL Server

ثبت نام

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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.