مشاهده خبر بازگشت به لیست اخبار

چگونه با پیچیدگی کدها در نرم افزار شرکت، رفتار کنیم.(2)

نوشته شده توسط: فروزان
در تاریخ:

How to Handle Code Complexity in a Software Company

 

چگونه با پیچیدگی کدها در نرم افزار شرکت رفتار کنیم.

بخش دوم

4-    حالا زمان اولویت بندی است، اولین کار این است که به مشکلی توجه کنیم که بیشترین تاثیر را بر روی توسعه دهندگان دارد. آنها مسائلی هستند که بالاترین اولویت را دارند. معمولا این بخش از اولویت بندی توسط کسی انجام می شود که دیدگاه گسترده ای از تمام توسعه دهندگان تیم و شرکت دارد.در اغلب موارد، این شخص مدیر است.

گفته می شود، گاهی اوقات مشکلات ترتیب دارند که باید طبق آن برطرف شوند که مستقیما به سختی آن مربوط نیست. به عنوام مثال مسئله X باید قبل از مسئله Y حل شود تا مسئله Y قابل حل باش، یا حل مشکل A، حل مشکل B را آسان کند. به این معنی است که ابتدا باید مشکل A و مشکل X درست شوند حتی اگر به سختی مشکلاتی که بلاک هستند، نباشند. اغلب یک زنجیره ای از مسائل مانند این وجود دارد و ترفند به این شکل است که مشکلات را در انتهای استک (stack) پیدا کنیم. رسیدگی کردن به این بخش از اولویت بندی نادرست، که یکی از رایج ترین و عمده ترین اشتباهات در طراحی نرم افزا می باشد. ممکن است این موضوع مانند یک جزئیات کوچک به نظر برسد اما بحرانی برای موفقیت و تلاش در حل پیچیدگی هاست. ماهیت یک طراحی خوب نرم افزار در تمام شرایط باعث شکل گرفتن اقدامات مناسب، در ترتیب درست شود. اجبار توسعه دهندگان در حل مسائل خارج از ترتیب (بدون در نظر گرفتن اینکه کدام مشکل زمینه حل مشکل های دیگر است) موجب ایجاد پیچیدگی کد می شود.

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

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

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

 

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

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

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

6-    حالا که تمام باگ ها را ثبت شده دارید، باید بفهمید چه زمانی آنها را برطرف کنید. به طور کلی، عمل صحیح این است، اطمینان حاصل کنید که توسعه دهندگان برخی از مشکلات مربوط به کیفیت کد را که شما در طول کار آنها را ثبت کردید، برطرف کنند.

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

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

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

 


هیچ دیدگاهی تاکنون برای این خبر ثبت نشده است.

اولین نفر باشید!
دیدگاه خود را ثبت کنید: