- ۰ نظر
- ۱۸ تیر ۹۴ ، ۱۰:۲۵
ادامه از بخش اول:
- پشته تکنولوژی که سیستم بر آن بنا نهاده شده است
پشته تکنولوژی مشخص کننده ترکیب و کیفیت تیم مورد نیاز است که البته در قالب یک پرسش ساده میتوان به آن رسید.
- مستندات (نوع و میزان)
ورود به یک پروزه نرم افزاری نیمه تمام نیازمند گذاراندان یک دوره شناخت از سیستم است. بهترین منبع شناخت تیم قبلی تولید است که در صورت عدم حضور باید مستندات مناسبی برای شناخت ارائه کنند. بدیهی است که در صورت نبود مستندات کافی کار برای تیمی که آن را ادامه بدهد بسیار دشوار و البته برای کارفرما پر از هزینه های پنهان خواهد بود. (در پست دیگیری به برخی از دشواریها اشاره شده است)
- کیفیت کدهای تولید شده
یکی از دیگر از دستاوردهای پروژه که می تواند این شرایط را تسهیل کند، وجود کد تمیز و با کیفیت است که با قواعد طراحی مبتنی بر دامنه تولید شده باشد که مهندسی معکوس سیستم را بسیار هموار تر خواهد کرد.
- چالشهای سازمانی مربوط به سیستم
در برخی شرایط اصلی ترین دلیل زمین ماندن پروژه های نرم افزاری را می توان در چالشهای سازمانی دانست که در صورت حل نشدن آنها هر تیم دیگری نیز که ورود بکند، زمین گیر خواهد شد. به عنوان مثال عدم بلوغ سازمانی، درگیریهای داخلی سازمان، وجود حلقه های فساد درون سازمان که مانع از اجرای هر نوع فرایند شفاف سازی بشود و ... . دستیابی به این اطلاعات البته بسیار دشوارتر از حد تصور است که پرداختن به آن در این مقال نمی گنجد.
به طور خلاصه تجرب های را که می توان در این جا منتقل کرد به طور خلاصه در قالب چند توصیه ارائه می شود:
قبل از ورود به ادامه یک پروژه ی نیمه تمام:
- با چند نفر از کاربران صحبت کنید.
- با تیم آن پروژه جلسه داشته باشید.
- با عناصر فنی آن سازمان مثل مسئول شبکه و ... صحبت کنید.
- با مدیران اصلی مرتبط با این محصول حتماً مشاوره کنید.
- حتما کدهای آن پروژه را به مدت زمان مناسبی بازبینی کنید.
- سعی کنید با افراد واحدهای مختلف سازمان که از قبل با آنها ارتباط داشته اید صحبت کنید و از آنها هر چه اطلاعات توانستید در بیاورید.
- در بستن قرارداد این نوع کارها دقت لازم را مبذول دارید چون هزینه این کار بیشتر از کارهای معمولی است!!
چندی پیش برای همکاری در یک پروژه نرم افزاری دعوت به همکاری شدیم. شرایط ویژه ای بر نرم افزار حاکم بود. تیم قبلی کار را رها کرده و سیستم نیمه تمام را قرار بود ما ادامه بدهیم.
ابتدا شروع به جمع آوری اطلاعات از شرایط پروژه کردم. البته با توجه به زمان کم نتوانستم در مدت کوتاهی که فرصت داشتم در این امر موفقیتی بدست بیاورم. لذا اطلاعات منتقل شده را مبنای کار قرار داده و وارد پروژه شدم.
به عنوان مدیر، مبتنی بر اطلاعاتی که داشتم تصمیمات اولیه را گرفتم و کار شروع شد. در یک ماهه اول فهمیدم که اطلاعاتی که دارم مناسب این تصمیم گیری نبوده و لذا ترکیب تیمی که چیده بودم را کارا و مناسب ندیدم و مجبور به تغیر تیم شدم.
اطلاعات ماه اول همکاری نشان از حجم زیاد کار و توقعات زیاد و انباشته شده ای داشت که این کار ما را سخت تر می کرد.
سیستم بدون مستندات تحویل ما شده بود.
توان تحلیل سیستم تیم قبلی قابل دفاع نبود، هر چند که توان کدنویسی آنها برجستگی هایی داشت.
به معنای واقعی کاربران از عملکرد سیستم راضی نبودند و در برخی از وجوه سیستم به اهداف خود دست پیدا نکرده بود.
تیم نیاز به صرف زمان برای شناخت داشت در حالیکه کارفرما توقع داشت بدون فوت وقت مشغول انجام کار عملی شویم و فرصت را برای شناخت و ... از دست ندهیم.
هزینه های کار نرخ رشد بالایی داشت و این با میزان کار خروجی اصلا مطابقت نداشت.
شرایط فوق انگیزه ای شد برای اینکه در چون چرای این اتفاق قدری تامل کرده و اقدام به نوشتن این پست کرده و در این زمینه انتقال تجربه کنم.
اگر با تصمیم گیری برای ورود به یک پروژه نیمه تمام مواجه شدیم چه اطلاعاتی باید داشته باشیم و چگونه آنها را بدست بیاوریم؟
- ذی نفعان و میزان رضایت آنها
منظور از ذی نفعان فقط کاربران نیست، بلکه کسانی است که به نوعی منافع یا مضار آنها به سیستم مرتبط است و البته عملکرد سیستم به نوعی با آنها در ارتباط است. این گروه ها و افراد کسانی هستند که به نوعی در آینده با تیم نرم افزاری نیز مرتبط می شوند. عملکرد آنها را رصد میکنند و به نقاط قوت و ضعف آنها توجه میکنند.
- معماری سیستم
آیا سامانه تحت وب مورد دسترسی قرار میگیرد یا در شبکه محلی؟ واحدهای اصلی نرم افزار که نقشه ی کلی سیستم را تشکیل میدهند چه هستند؟ توزیع واحدهای مختلف و شیوه ارتباط آنها با هم چگونه است؟ جمع آوری این اطلاعات در شناخت سیستم میتواند مفید باشد. مهمترین منبع برای این اطلاعات افراد فنی درگیر با سیستم هستند.
- مدل مفهومی
شاید بتوان مدل مفهومی را مهمترین بخش کار دانست که شاید نتوان در گام اول به آن رسید. من این را معادل ستون گذاری در نقشه معماری یک ساختمان می بینم. چرا که مشخصات ستونهای قرارداده شده در این ساختمان بسیاری از مسائل مربوط به آن را مشخص می کند. با مدل مفهومی نادرست و معیوب بسیاری از کارها را در ادامه توسعه سیستم نمی توان انجام داد و شاید تخریب بنا حکم قابل قبول تری نسبت به ادامه ساخت باشد.
ادامه مطالب در بخش دوم همین عنوان آمده است...
رایورز - شرکت آمازون سرویس جدیدی با نام AWS Educate معرفی کرد تا از این طریق بتواند سرعت آموزش و یادگیری فناوری پردازش ابری در کلاسهای درس را افزایش دهد.
به گزارش رایورز به نقل از زد.دی.نت، این شرکت در بیانیه خود توضیح داد که قابلیت جدید برای اساتید و دانشجویانی کاربرد دارد که قصد دارند در حوزه خدمات ابری فعالیت کنند و نحوه استفاده از امکانات ارائه شده در این زمینه را بیاموزند.
سیستمهای پردازش ابری به سرعت در حال گسترش هستند و چشماندازهای جدید پیشروی فضاهای کاری مدرن ارائه کردهاند.
خدمات ابری میتوانند در زمینه ذخیرهسازی اطلاعات، بازیابی دادهها پس از وقوع خرابی سیستم، تحلیل داده و... مورد استفاده قرار بگیرند و برخی منابع سازمانی از جمله زیرساختهای-بهعنوان-خدمات(IaaS) را برونسپاری کنند.
اما به هر حال باید توجه داشت این قابلیتها تنها در شرایطی مورد استفاده قرار میگیرد که یک متخصص خدمات ابری در سازمان حضور داشته باشد و مهارت کافی برای بهکارگیری این خدمات را آموخته باشد.
بر این اساس شرکت آمازون با عرضه AWS Educate تصمیم گرفته است آموزش خدمات ابری به افراد علاقهمند را سرعت بخشد و یادگیری خدمات ابری را آسانتر کند.
سیستم AWS Educate یک برنامه جامع محسوب میشود که فناوریهای ابری را به کلاسهای درس میآورد و به دانشجویان امکان میدهد پیش از آنکه وارد محیط کاری شوند، به صورت عملی استفاده از ابزارهای مختلف را تجربه کنند.
رایورز - گزارش جدید منتشر شده نشان میدهد که هماکنون بیش از ۳.۹ میلیون آمریکایی به صورت مستقیم در زمینه خدمات پردازش ابری مشغول به کار هستند و از بین آنها حدود ۴۰۰ هزار نفر در بخش IT سازمانها فعالیت میکنند.
به گزارش رایورز به نقل از فوربز، میانگین دستمزد سالانه کارشناسان IT که در زمینه خدمات پردازش ابری فعالیت میکنند ۹۰ هزار دلار است که این رقم میتواند تا سالی ۱۱۷ دلار نیز افزایش یابد.
بررسیها نشان داده است که هماکنون ۱۸ میلیون ۲۳۹ هزار متخصص در حوزه خدمات پردازش ابری در سراسر جهان مشغول به فعالیت هستند که بیش از ۴۰ درصد آنها در کشور چین بهسر میبرند.
مرکز WANTED Analytics که به صورت تخصصی در زمینه ابزارهای تحلیلی و خدمات سازمانی فعالیت میکند، بیش از یک میلیارد موقعیت شغلی در ۱۵۰ کشور جهان را مورد بررسی قرار داد تا این گزارش را به انتشار برساند.
این مرکز توضیح داد که در دسامبر ۲۰۱۴ بهازای هر موقعیت شغلی در حوزه خدمات پردازش ابری ۹ کاندید وجود داشته است و البته هرچه موقعیتهای شغلی در این زمینه تخصصیتر شده است، کارفرمایان مشکل بیشتری برای پیدا کردن متخصصان داشتهاند.
این بررسی نشان داده است که یک موقعیت شغلی در حوزه خدمات پردازش ابری به طور میانگین به مدت ۴۴ روز در سازمان باز نگه داشته میشود تا کارمند جدید برای آن پیدا شود.
با انتقال فعالیتهای رایانشی یک سازمان به محیط ابر، وابستگی کاری به عملکرد صحیح ابر به وجود می آید. به این ترتیب در صورت مشکلات در ارائه سرویس ابر، سازمان راهکار جایگزینی نخواهد داشت. البته در سیستمهای سنتی هم بعضا مشکلاتی از جمله همزمانی قطعی برق و خرابی برق اضطراری، ویروسی شدن کل شبکه و یا موارد مشابه روبرو بوده اند. اما این موارد در این سیستمها به ندرت پیش می آید.
با مهاچرت به ابر و وابستگی به گستره وسیعتر، قطعی سرویس ریسک مهمی خواهد بود. برای ابرهای عمومی به ویژه سرویسهای معتبر مانند آمازون، گوگل، مایکرو سافت و ُSalesforce.com موارد قطعی سرویس ثبت شد ه است و جدول زیر تعدادی از این وقایع در سال 2009 که برای این چهار شرکت ثبت شده است را نشان می دهد.
مدت زمان |
تاریخ |
نوع سرویس |
7 ساعت |
11 ژانویه |
Amazon EC2 |
2.5 ساعت |
24 فوریه |
Google Gmail |
بیش از 22 ساعت |
9 مارس |
Google Gmail |
2 ساعت |
14 می |
Google Network |
6 ساعت |
2 جولای |
Google App Engine |
5 ساعت |
12 مارس |
Microsoft Hotmail |
22 ساعت |
13مارس |
Microsoft Azure |
6 روز + از بین رفتن کل اطلاعات تماس مشتریان |
4 اکتبر |
Microsoft Sidekick |
1 ساعت |
6 ژانویه |
Salesforce.com |
شرکت مدل سازان نرم افزار (واقع در استان قم) با هدف تکمیل کادر فنی خود از صاحبان مهارتهای ذیل دعوت به همکاری می نماید:
برنامه نویسی وب
برنامه نویسی اندروید
علاقه مندان می توانند رزومه خود را به آدرس masna.staff@chmail.ir ارسال کنند.
معرفی کنفرانس IBridge 2015
چندی پیش که مدیر تیم پژوهشی شناسایی فرصتهای سرمایه گذاری فناوری اطلاعات در استان بودم یکی از دوستان چندین فیلم برایم فرستاد که مربوط به کنفرانس Bridge 2014 بود. این کنفرانس در آمریکا و با موضوع کارآفرینی در ایران برگزار شده بود. اینکه در آمریکا ایرانیان داخل و خارح دور هم جمع شوند و به موضوع کارآفرینی تکنولوژی های روزآمد بپردازند برایم بسیار جالب بود. لذا برخی از فیلمهای آن را چندین بار مشاهده کردم و مطالب مفیدی به من منتقل شد.
در سال جاری میلادی (خرداد سال 94) مجددا این کنفرانس آنهم در آلمان برگزار می شود و عنوان آن
" فرصتها و چالشها برای کار آفرینی دانش بنیان در ایران"
می باشد.
بدون این که از انگیزه برگزار کنندگان و ماهیت آنها مطلع باشم و بخواهم آن را رد یا تایید کنم، به همه علاقه مندان دنبال کردن این رویداد را توصیه میکنم. لازم به ذکر است سمینارهای این رویداد به صورت زنده نیر و از طریق اینترنت نیز قابل استفاده است.
نقش آموزش تخصصی در صنعت نرم افزار
حصول هر نتیجه ای و انجام هر کاری، منوط به فراهم شدن مقدماتی خاص میباشد. شاید بتوان گفت این یک سنتی است که در جای جای خلقت و در حکمتهای الهی نیز نهفته شده است. بارش باران بدون پدیدآمدن ابر میسر نمیشود و شب تا سپری شدن روز جلوه گر نمی گردد.
پیشرفت یک صنعت نیز از این قاعده مستثنی نیست. هر صنعتی در هر نقطه ی عالم که رشد چشمگیری می کند با فراهم آمدن مقدماتی همراه است. برای صنعت نرمافزار کشور عزیزمان ایران نیز از این منظر میتوان نقشه راهی ترسیم کرد به طوری که در آن پیش نیازهای ارتقای این صنعت برشمرده شده و تقدم و تاخر آنها بر یکدیگر مشخص شود.
دو پیش نیاز بسیار مهم که در این جا میخواهم به آنها اشاره کنم، سرمایه گذاری و آموزش است. پر واضح است که هر فعالیت اقتصادی باید با سرمایه گذاری همراه باشد و صنعت نرم افزار نیز از این قاعده مستثنی نیست. علاوه بر آن در صنعتی که مبتنی بر دانش بشری است بدون داشتن نیروی آموزش دیده کار به بیراهه میرود و سرمایه گذار را بدون هیچ منفعتی به وادی ورشکستگی می کشاند.
تجربه نگارنده این پست که سرمایه گذاری کوچکی را در صنعت نرم افزار آن هم در یک استان نه چندان معروف در این زمینه شروع کرده است، برجسته بودن مشکل آموزش را بیشتر ثابت میکند. به نظر حقیر، قبل از هر چیز باید به اندازه ی سرمایه گذاری که صورت می گیرد به پرورش نیرو همت گماشت. به عبارتی کسانی که در حال حاضر به حیطه کار در این صنعت مشغولند مجدد باید دوره های آموزشی تخصصی ببینند تا نتایج سرمایه گذاری های جاری بیشتر بروز و ظهور کند.
به طور خلاصه یکی از نیازهای اصلی صنعت نرم افزار کشور راه اندازی واحدهای آموزش کاربردی تخصصی است که حلقه ی مفقوده ی آموزش دانشگاه تا صنعت را پر کرده و علاوه بر اعتبار بخشی مجدد به دانشگاه رونق صنعت را نیز به دنبال داشته باشد.