توی یک سال گذشته یکی از تجربه هایی که حاصل شد درباره ی باگ های شناخته شده ی نرمافزاره، که نوشتنش اینجا حداقل برای یادآوری به خودم خوبه.
مهر سال ۹۸ بود که قرار شد وب سایت شرکت رو راه اندازی کنیم. از اونجایی که از php فراری و توهم زدن هر پروژه ای از صفر ما رو در بر گرفته بود شروع کردیم کار رو با CSharp انجام دادن. نیازمندی اولیه معرفی شرکت و اعضاش و یک بخش اخبار و مقالات بود.
مثل هر پروژه دیگه ای در نگاه اول چیز خیلی ساده ای بود دیگه، یه تیبل میذاری و پست توش ذخیره میکنی اونور هم نمایش میدی. بقیه اش هم که فقط فرانته. با همین پیش زمینه شروع کردیم و نیازمندی های زیر در حین کار بوجود اومد:
- اتصال ادمین پنل به SSO
- آپلود یک/چند عکس برای پست
- WYSIWUG
- آپلود ویدیو برای پست
- دو/چند زبانه بودن وبسایت
- پست های جدا برای زبان های مختلف
- ترجمه یک پست، در زبان دیگه
- نمایش بعضی پست ها با یه الگوریتم خاص توی صفحه اصلی
- افزودن لینک آپارات و نمایش اون مثل بقیه عکس ها/ویدیو ها
اینها فقط فیچر های بزرگ قابل بیان بود، کلی ریزه کاری هم اضافه شد. خب این وسط، هر فیچر در زمان کمی درخواست میشد و پیاده سازی میشد، و نتیجه ای که داشت این بود که کد کار میکرد و تیمِ کسب و کار راضی بود. اما از نظر پیاده سازی بعضی مشکلات وجود داشت، یا یه چیزی رو میگفتیم اگر اینطور باشه درست تره، که چون اولویتی نداشت انجامش نمیدادیم. پس کلی مشکل شناخته شده توی سیستم بود (هست). گذشت و من که مسئول نگهداری از این نرمافزار بودم پروژه دیگه رو شروع کردم چون از نظر تیم سایت تکمیل بود و از نظر خودم اولویت پروژه جدید بیشتر از مشکلات سایت بود. الان هر چند هفته یکی از اون مشکلات خودش رو نشون میده و مجبور میشیم برگردیم و حلش کنیم. اما تفاوت چیه؟ که تمرکز ما از پروژه جدید به هم میخوره، حوصله انجام کار قدیمی رو نداریم، و بعد از انجامش حوصله برگشتن به پروژه جدید رو نداریم.
میخوام بگم که، اگر خیلی از اون مشکلات رو بجای توی ذهنم توی ترلو مینوشتم و همه میدیدیم که سایت چنین مشکلاتی رو داره، و حالا میخوایم اینها رو رها کنیم و بریم روی پروژه جدید، شاید جدی تر گرفته میشد، شاید از نظر یک نفر دیگه اولویتش بیشتر از پروژه جدید بود، و دچار این تلنبار نمیشدیم. چیزی که هست اینه که بهرحال مشکلاتی که برنامه نویس میدونه توی پروژه اش وجود داره باید حل بشه، حالا یا در برابر کار جدید مقاومت میکنه و اول اون مشکلات رو حل میکنه، یا در آینده مجبور به context switching میشه.
انتخابش با خودمونه. و من امروز یاد گرفتم بهتره کدوم رو انتخاب کنم.
- دوشنبه ۲۱ مهر ۹۹