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

۱- برنامه نویس کدهایی رو تولید میکنه که فکر میکنه کدها عاری از هر نوع خطا و باگی است . ۲- محصول تست میشه و ۲۰ تا باگ پیدا میشه . ۳- برنامه نویس ۱۰ تا از اون خطاها رو حل میکنه و برای بخش تست نرم افزار هم توضیح میده که اون ۱۰ تای دیگه واقعا باگ نیستند . ۴- بخش تست در هنگام تست محصول ۵ تا باگ دوباره از اون ۱۰ تایی که حل شده بود پیدا میکنه و علاوه بر اون ۱۵ تا باگ جدید دیگه . ۵- مرحله ۳و۴ سه بار تکرار میشه . ۶-بخش...
Continue reading...

4 اصل برای موفقیت در مدیریت پروژه

در این نوشته قصد ندارم مثل بقیه برای مدیر پروژه ها نسخه بپیچم و از مشاهده عناوینی مانند 10 کلید موفقیت ,  13 راه خوشبختی ,  47.5 دقیقه تا بهکامی و … حسی خوشایندی به من دست نمی دهد . ولی چه کنم که عنوان دیگری برای این پست پیدا نکردم . 4 اصل برای موفقیت در مدیریت پروژه عبارتست از : ارتباط سازمان دهی حل مشکلات / تصمیم گیری ایجاد تیم های خوب ارتباط ارتباط فقط شامل صحبت کردن ساده با اعضای تیم  و یا ارائه چند اسلاید به مشتری نیست . ارتباط در مورد انتقال دانش ,  به...
Continue reading...

آمار جالبی از گسترش نرم افزار

شرکت تحقیقاتی Standish Group آماری چند سال قبل بیرون داده بود در این آمار چندین هزار پروژه مورد بررسی قرار گرفته بودند. در این آمارگیری  میزان زیادی از سرمایه گذاری انجام شده تلف شده است و بسیاری از پروژه ها شکست خورده اند  . نکته جالب اینجاست که در هیچکدام یک از این پروژه ها از Agile استفاده نشده است . برای 175000 پروژه IT مبلغ 250 میلیارد دلار صرف شد . به طور میانگین 2.3 میلیون دلار برای هر پروژه. 31% این پروژه های قبل از اتمام شکست خود و تعطیل شد. هزینه 52% این پروژه ها 189% بیشتر...
Continue reading...

وضعیت 90% پروژه

در بعضی از پروژه ها  و در اغلب پروژهای نرم افزاری در ایران پیش می آیدکه نرم افزار مثلا در مدت 3 ماه به وضعیت 90% می رسد  و چون پروژه در وضعیت 90% است برنامه نویس ها شروع به انجام دادن ریزه کاری هایی که از قبل مانده بود می کنند (مانند تکمیل چینش کنترها بر روی فرم ها )  ولی 10% باقی مانده بیش از 3 ماه به طول می انجامد !  چرا ؟ محصول 90% باعث به عقب افتادن Release محصول می شود و بالطبع نارضایتی مشتری و هزینه های اضافی را برای تیم توسعه دربرداشته خواهد...
Continue reading...

آیا Agile در پروژه های بزرگ جواب خواهد داد ؟

یکی از اساسی ترین بحث هایی که در محافل Agile مطرح می شود این است که آیا Agile  قابلیت کار در پروژهای بزرگ را دارد ؟ بعضی ها می گویند نه و اعتقاد دارند که که Agile فقط یک راه حل کوچک و فنی می باشد . عدم وجود برنامه ریزی از قبل تعیین شده باعث به وجود آمدن موانع در راه پروژه می شود . و بعضی دیگر می گویند بلی و اذعان دارند که فرآیند قابل گسترش می باشد اما این عمل طول می کشد. و اشتباه از کسانی است که نمی توانند این عمل را درست انجام...
Continue reading...

چگونه کدهای تست نشده را رفاکتور نماییم؟

معمولا در مرحله Bug-fixing یا رفع خطاها فرصتهای مغتنمی برای رفاکتور کردن کدهای تست نشده به وجود می‌آید . به عبارت دیگر شما کدهایی دارید که مشکل دار هستند و این فرصت را دارید تا با ساختاری بهتر کدها را بازسازی نمایید . بعنوان یک قاعده کلی ، به ازای هر کسی که یک مشکل (Problem) را به شما اطلاع می دهد بین 10 تا 100 نفر دیگر وجود دارد که با همین مشکل مواجه شده است ولی به شما اطلاع نداده است . زمانی که می خواهید به مسائل بالای کیفیت دست پیدا کنید در واقع می خواهید کدهای...
Continue reading...

اسکرام ساده شده

در طی مقالاتی که بنده در مورد Scrum به رشته تحریر درآوردم , اشکالی که وارد می باشد این است که کل مقالات به صورت بریده های روزنامه می باشد که خواننده نمی تواند جمع بندی بکند . در این پست قصد دارم کل اسکرام را به صورت کامل و با بیان ساده تشریح نمایم . امید بر انجام این مهم است . قسمت اول – توضیحات تکمیلی اسکرام چیست ؟ در روش‌های قدیمی و معمول ساخت نرم‌افزار، طراحان نرم‌افزار معمولاً  ابتدا فرض می‌کنند که تمامی نیازهای کاربران سیستم را درک کرده‌اند. اما همیشه نیازهای کاربران سیستم در ابتدا مشخص...
Continue reading...

Refactoring tools in Visual Studio

چگونه از ابزاری که به منظور Refactor  در Visual Studio موجود است استفاده نماییم؟ Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a ‘refactoring’) does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it’s less likely to go wrong. The system is also kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring. منبع : Refactoring...
Continue reading...