سیب فارسی

شب و روزنوشته های من | داستان سیبی که هر روز به زمین می خورد!

چگونه یک پروژه نرم افزاری خوب را، نابود کنیم

21 ژانویه 16

چگونه یک پروژه نرم افزاری خوب را، نابود کنیم؟

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

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

مقدمه یک: تجربه ای که می خوام باهاتون به اشتراک بذارم بیشتر مربوط به شرکتهای دولتی حوزه آی تی است ولی کمابیش این موارد رو هم در شرکت های خصوصی دیدم.

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

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

اولین مورد وجود نیروهای فنی ضعیف با در برخی موارد (که من باهاش زیاد مواجه شدم) نیروهای غیر فنی هستش. توجه کنید که بنده روی وجود نیروهای غیرفنی تاکید دارم، نه عدم وجود نیروهای فنی. ضمن اینکه بنده نیروهای جوان یا حتی با هر سن و در حال آموزشی که در آینده تبدیل به نیروهای فنی خوب می شوند را نه نیروی غیر فنی می دانم و نه نیروی فنی ضعیف، منظور بنده از نیروی فنی ضعیف یا کسانی هستد که تحصیل کرده حوزه آی تی نیستند و به ناگاه و با سفارش مدیری یا با شانس و… وارد حوزه آی تی می شوند، که عموما تجربه کوتاه کاری دارند یا حتی در سطح توسعه دهندگانش اصلا تجربه کاری هم ندارند، دسته دیگری از این نیروهای غیر فنی، متخصصینی هستند که در حوزه کاری یک پروژه خاص فاقد تجربه فنی می باشند به عنوان مثال اگر بنا هست در پروژه ای در حوزه وب کار شود نیرویی وارد پروژه می شود که علیرغم تجربه خوب در حوزه نرم افزار های desktop در سطح وب فاقد تجربه است. این نیروهای غیر فنی در هر سطحی موجب آفت پروژه هستند چه در سطح developerو چه در سطح آرشیتکت و دیزاینر.

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

در سطح developer نیز جدا از موارد بالا که برای این دسته نیز صادق است، بنده با مورد جدید و نوینی مواجه شده ام که البته این مورد را تنها در شرکت های دولتی دیده ام، آن هم اینکه بعضا نیرهای غیر فنی، بی تجربه و با رشته های تحصیلی غیر فنی و غیر علوم کامپیوتر و آی تی وارد شرکت ها می شوند(این دسته بند پ قوی دارند و معمولا در بدو ورود سلام پدرشان را به مدیر پروژه یا شرکت مورد اشاره می رسانند!) آفتی که من از این دوستان دیدم سوای از خروجی های بد و عدم توانایی در رشد فنی و یادگیری حوزه کاری شان(بماند که همیشه مورد تحسین قرار خواهند گرفت و کارهای غلطشان نیز مورد سجده مدیر پروژه قرار می گیرد! به هر حال نباید مدیرشان چاق سلامتی پدرشان را فراموش کند!) این مورد است که گاه یک یا دو نیرو فنی و متخصص پروژه باید دائما از کارهای اصلی خود و وظایف مربوط به خود بزنند و در کار خود عقب بمانند تا task های این عزیز کردگان مدیر را انجام دهند. که در هر دو سطح مورد بررسی هزینه های جبران ناپذیری را به پروژه وارد می شود.

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