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

فن برنامه‌نویسی به نسبت جوان است و سابقه زیادی در تاریخ ندارد. به همین دلیل با سرعت نسبتاً زیادی ابزارهای سخت‌افزاری و نرم‌افزاری جدید به بازارمی آیند تا عامه مردم آن‌ها را تهیه کنند و از آن‌طرف قضیه برنامه‌نویسان برای آن دستگاه‌ها نرم‌افزارهای نو را با روش‌های جدید بنویسند و به بازار عرضه کنند. سرعت این دگرگونی‌ها باعث می‌شود که فنّاوری‌های روز خیلی به‌سرعت از مد بروند و روش‌های کار با آن‌ها هم به‌سرعت فراموش شود. در این احوال، در سال ۱۹۷۵ کتابی برای مدیریت برنامه‌نویسی نوشته‌شده که هنوز بعد از ۴۰ سال کاربرد دارد و خیلی از اصول آن برای مدیریت کار برنامه‌نویسی هنوز اعتبار دارد و کاملاً صادق است. این کتاب را فردریک بروکز نوشته و نام آن مقالاتی در باب مهندسی نرم‌افزار: اسطوره نفر ساعت است. آنچه در ادامه می‌آید خلاصه‌ای از این کتاب است که پاره‌ای مطالب به آن افزوده‌شده است.

حل مسئله

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

استخدام برنامه‌نویس

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

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

ارتباطات

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

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

کار گروهی و گرد هم آوردن گروه‌ها

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

تحویل پروژه و محصولات

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

فرآیند پیشرفت کار

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

مدیریت شخصی

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