چیزی که هیچ کس در مورد طراحی نرم افزار به من نگفت

*برای خواندن مقالات بیشتر از این قبیل به وبلاگ من مراجعه کنید
*
سالها پیش بود که به من وظیفه داده شد تا خودم یک سیستم متوسط طراحی کنم. من واقعاً هیجان زده بودم زیرا زمان آن رسیده بود که به دنیا نشان دهم که چقدر طراح نرم افزار فوق العاده ای هستم.
قبل از آن، من فقط سیستم هایی را می دیدم که توسط دیگران طراحی شده بودند و تعجب می کردم که چرا آنها این همه چیز را از دست داده اند؟
اما وقتی خودم شروع به طراحی سیستم کردم، متوجه شدم که ساختن حتی چیزهای ساده چقدر دشوار است. این همه وابستگی، اینهمه محدودیت، اینهمه فشار!
من در مورد طراحی خودم احساس گناه می کنم اگرچه خوب کار می کند. چون من نقاط ضعف سیستمم را می شناسم. من می دانم که برای نهایی کردن طراحی باید از چند چیز خوب رد شدم.
اما اخیراً کتابی از آن را خواندم استیو مک کانل جایی که حقایق طراحی رو بیان کرد و بعد از خوندن آرامش روحی من برقرار شد 😛
بنابراین امروز 5 حقیقت در مورد طراحی را به اشتراک میگذارم که همه ما باید قبل از طراحی مجدد هر چیزی در ذهن داشته باشیم.
1. هیچ چیز تمیزی در مورد طراحی نرم افزار وجود ندارد
طراحی نرم افزار یک فرآیند بسیار شلخته و کثیف است. محصول نهایی خوب و صیقلی است، اما فرآیند تقریباً به اندازه نتیجه نهایی مرتب نیست.
محصول تمیز است اما فرآیند کثیف است.
طراحی شلخته است زیرا باید به کوچه های کور زیادی برخورد کرد. شما باید اشتباه کنید. شما چیزها را اشتباه می گیرید. در واقع، این نقطه طراحی است.
2. همه چیز درباره تجارت و اولویت هاست
چیزی به نام a وجود ندارد طراحی کامل. طراحی برای یک دلیل خاص خوب است.
یک سیستم ایده آل فضای صفر را اشغال می کند، تاخیر صفر دارد، هزینه ای برای نگهداری ندارد و میلیون ها مشتری را به طور همزمان پشتیبانی می کند.
اما در واقعیت، ما باید معاوضه کنیم. گاهی اوقات به عنوان یک طراح باید معماری کمی ضعیف را انتخاب کنید زیرا محدودیت زمانی دارید.
زمان توسعه و پشتیبانی از ویژگی ها اغلب می تواند باعث شود که در طراحی خود تجدید نظر کنید.
3. طراحی و تخیل اغلب با هم برخورد می کنند
طراحی در مورد ایجاد امکانات و گاهی محدود کردن امکانات است.
اگر زمان بینهایتی داشتیم، سیستمی میسازیم که از هر ویژگی ممکن قابل تصوری پشتیبانی میکرد. اما متاسفانه ما از نظر زمان و منابع محدود هستیم.
به عنوان یک طراح، باید آنچه را که نمی خواهید به جای آنچه می خواهید انتخاب کنید.
بنابراین، این واقعیت را بپذیرید که نمی توانید همه کارها را انجام دهید و فداکاری های خود را عاقلانه انتخاب کنید.
4. طراحی چندگانه می تواند در همان زمان درست باشد
اگر به 3 فرد مجزا برای طراحی یک ویژگی اختصاص دهید، هر یک از آنها 3 طرح کاملا متفاوت را ارائه می کنند. اما همه آنها می توانند در یک زمان صحیح باشند.
هیچ گلوله نقره ای در طراحی نرم افزار وجود ندارد.
گاهی اوقات ما به عنوان یک انسان با طراحی خود مغرور می شویم و هر چیز دیگری را که با ایده ما از انجام کارها مطابقت ندارد رد می کنیم.
بنابراین هنگام کار در یک محیط مشارکتی باید در مورد ایده های دیگران باز باشید.
5. توپ نورد است
یکی از راه های منظم برای خلاصه کردن همه اینها طراحی در حال ظهور است. این یک روند مداوم است. مثل یک توپ غلتان است که در طول مسیر چیزهای خوب و بد را جمع می کند.
تا زمانی که طرح را در زندگی واقعی پیاده سازی نکنیم، نمی توانیم خیلی چیزها را درست انجام دهیم. گاهی اوقات باید قسمت هایی از طرح را تغییر دهیم. گاهی اوقات باید آن را دوباره بنویسیم.
طراحی ناقص اشکالی ندارد.
شما فقط باید این واقعیت را بپذیرید که آنچه طراحی کرده اید می تواند کاملاً مزخرف باشد و هیچ شرمی در پذیرش یک چیز بهتر وجود ندارد. این یک حقیقت واحد در مورد طراحی نرم افزار است.
نتیجه
این بخشی از افکار من در مورد طراحی نرم افزار است. امیدوارم برای شما مفید باشد.
کد نویسی مبارک! :دی
از طریق لینکدین یا وب سایت شخصی من با من در تماس باشید.