;
coinex

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

نرم افزار های موبایل در همه جا موجود هستند بطوریکه اکثر مردم فکر می کنند که ساخت این نرم افزار ها یک روند ساده و سر راست دارد. اما اگر به گذشتۀ پیشرفت آنها نگاهی بیاندازیم اغلب تاریخ دردناکی از هزینه های سر ریز، کد و سرمایه باد کرده و تاخیر در پیشرفت، دارند.

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

این بدان معنی نیست که مهندسان تنها کسانی هستند که روند ایجاد نرم افزار را درک می کنند بلکه معمولا یک عدم اتصال عمده بین فاز طراحی نرم افزار ها (به عنوان مثال، مفهوم و طراحی) و پیاده سازی لازم برای یک کد واقعی (به عنوان مثال، توسعه) وجود دارد.

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

نگاه کردن به چشم اندازی که کد نمی تواند کامل شود

هنگامی که ما در مورد طراحی نرم افزار موبایل صحبت می کنیم، به طور کلی اشاره به نرم افزاری داریم که در فتوشاپ و یا یک پلت فرم نمونه سازی مانند inVision و یا Pixate – ابزار قدرتمندی است که نگاه و احساس را با نرم افزار نهایی، منتقل می کند – نمایش داده می شود. با این حال، این پلت فرم هیچ ارتباط مستقیم با کد های زیرین ندارد و تنها می تواند یک نسخه بسیار آرمانی از محصول نهایی را نشان دهد که ممکن است در نهایت امکان پذیر هم نباشد.

اما معمولا چارچوب اصلی هر شرکت برای یک نرم افزار، یک طراحی بصری قانع کننده برای آن است. (تقابل با طراحی مبتنی بر وب، که در آن کد نهایی HTML / CSS معمولا می تواند در زمان واقعی نمونه سازی شود.)

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

پارادکس تخصیص منابع طراحی

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

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

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

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

خطر طراحی بدون داده های واقعی

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

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

ساخت نرم افزارها، نه نمونه های اولیه

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

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

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

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

.

منبع: techcrunch


عصر تکنولوژی، تکرا

ارسال برای دوستان در: واتساپ | تلگرام |






ارسال نظر