نحوهی تقسیمکار و مدیریت پروژه در گروه طراحان راهبردی شریف
پس از فاز تحلیل و طراحی پروژه جهت پیادهسازی سامانههای سپاسایران و خادمان به این صورت عمل شد.
ابتدا نرمافزارها و چهارچوبهای مورد استفاده یکسان شدند،
زبان برنامهنویسی Back-end پروژه: Python نسخهی 3.4
چهارچوب مورد استفاده در Back-end پروژه: Django نسخهی 1.8.0
چهارچوبهای مورد استفاده در front-end پروژه: Semantic UI نسخهی 2 و JQuery نسخهی 1.11.0
ابزار کدنویسی: Pycharm Professional نسخهی 4.5 با مجوز JetBrains Student
پایگاه دادهی local جهت تست: Sqlite 3
پایگاه دادهی سمت سرویس دهنده Portgres SQL آخرین نسخه
برای میزبانی از سرویس دهندهی heroku استفاده شد و در طول این مدت سایت سامانهی سپاسایران در نشانی sepasiran.herokuapp.com قابل دسترسی عمومی است.
برای هماهنگی کدها از سامانهی مدیریت نسخهی git استفاده شد. یک جلسه جهت آموزش استفاده از git برگزار شد که صورت جلسهی آن را از اینجا میتوانید مطالعه بفرمایید. مخزن git روی سایت bitbucket میزبانی شد و دسترسی به یکی از دستیاران آموزشی (آقای صباغیان) جهت مشاهدهی روند توسعهی کد داده شد. دسترسی به آقایان نوری و عسکری صرفا به دلیل محدودیتهای سایت bitbucket برای تعداد نفراتی که به پروژهها دسترسی دارند داده نشد. هر دو سامانهی سپاسایران و خادمان (اندروید) روی bitbucket توسعه داده میشوند.
مدل استفاده شده در git در بخش اول پروژه مدل branch and merge بود. به این صورت که شاخهی master همواره حاوی آخرین نسخهی سالم و پایدار سامانه است و در هر لحظه که لازم باشد میتوان آخرین نسخهی master را استفاده کرد. برای اضافه شدن هر قابلیت جدید به پروژه یک شاخه از master به اسم توسعهدهنده/ویژگی (مثلا ramtin/search) ایجاد میشد و پس از پایان و رفع باگها آن شاخه با شاخهی master ترکیب (merge) میشد.
در بخش دوم مدل استفاده از git به یک مدل سادهتر تغییر پیدا کرد. مدل جدید به این صورت است که شاخهی master همچنان همان ویژگیها را دارد اما همهی توسعه دهندگان روی یک شاخه به نام dev کار میکنند و هرزمان که dev به حالت پایداری رسید با شاخهی master ترکیب (merge) میشود. برای ترکیب کامیتها در شاخهی dev بجای merge از rebase استفاده میشود تا تاریخچهی کد خطی و قابل فهم بماند.
برای ریزکردن کارها از سامانهی Issue Tracker استفاده میشود، هر باگ/بهبود/ویژگیجدید/کار (مانند مستندسازی) به صورت یک issue در سامانه تعریف میشود و با مشخص کردن اولویت و توضیحات به یکی یا تمام اعضای گروه سپرده میشود. روی هر issue قابلیت مباحثه وجود دارد. پس از انجام شدن هر کار آن وضعیت issue از open به resolved تغییر پیدا میکند.
در پیادهسازی پروژه سعی شد از روش چابک scrum استفاده شود. به دلیل مقدور نبودن stand-up meeting هرشب در ایمیل تمام افراد کارهایی که در هر روز انجام دادند را برای بقیهی اعضای گروه ارسال میکنند. به این صورت همهی اعضا هم از روند پیشرفت پروژه و تغییرات issueها مطلع میشوند و هم ایجاد انگیزه و افزایش سرعت در انجام کارها برای اعضا به ارمغان میآید.
این تلاشهای اعضای گروه که با نظم و همکاری مثال زدنی انجام شد شاید به دلیل خصوصی بودن سامانههای جنبی مانند bitbucket، isuue trakcer, email و میزبان سایت به چشم مدرس و دستیاران آموزشی دیده نشود، لذا با درج این مطلب در سایت گروه خواستیم ابتدا از زحمات اعضا قدردانی شود و سپس اطلاع رسانیای برای مدرسین درس نسبت به استفادهی درست از مطالب درسی و روشهای خارج درس که به روند تولید سامانهها کمک میکنند باشد.
- ۹۴/۰۵/۲۲