توسعه نرمافزار معمولاً با هدف همسوسازی مشخصات با پیادهسازی انجام میشود.
به همین دلیل، سیستمها برای برآورده کردن مشخصات طراحی میشوند و سپس بر اساس آن طرحها پیادهسازی میگردند. متعاقباً، تستکردن تأیید میکند که پیادهسازی با مشخصات مطابقت دارد؛ اگر اختلافی وجود داشته باشد، پیادهسازی اصلاح میشود و اگر مشخصات مبهم باشند، شفافسازی میگردند.
این رویکرد را میتوان «مهندسی مبتنی بر مشخصات و پیادهسازی» نامید.
در مقابل، امروزه هنگام بحث درباره نرمافزار، بر تجربه کاربری به طور فزایندهای تأکید میشود.
علاوه بر این، این رفتار نرمافزار است، نه صرف پیادهسازی آن، که در واقع تجربه کاربری را شکل میدهد.
بنابراین، خارج از چارچوب مشخصات و پیادهسازی، «تجربه» و «رفتار» وجود دارند.
در نتیجه، معتقدم ارزش آن را دارد که مفهوم «مهندسی تجربه و رفتار» را که مبتنی بر تجربه و رفتار است، بررسی کنیم.
نرمافزار سیال
«مهندسی تجربه و رفتار» با روشهای سنتی توسعه نرمافزار، رویکردی غیرعملی است.
این به این دلیل است که این رویکرد نیازمند بهبود تجربه کاربری بدون مرزهای سختگیرانه یا تقسیمبندیهای عملکردی در مشخصات است. حتی ممکن است مواردی پیش بیاید که درخواست تصادفی کاربر برای بهبود تجربه، مستلزم کنار گذاشتن تمام نرمافزارهای توسعهیافته قبلی باشد.
از سوی دیگر، در عصری که اتوماسیون توسعه نرمافزار مبتنی بر عامل با هوش مصنوعی مولد رایج است، بازسازی کامل سیستمهای نرمافزاری قابل قبول میشود.
علاوه بر این، در چنین عصری، قابل تصور است که وارد دوران «نرمافزار سیال» شویم؛ جایی که توسعهدهندگان، نرمافزاری مجهز به چتبات مهندس هوش مصنوعی منتشر میکنند و به کاربران اجازه میدهند رابط کاربری را متناسب با ترجیحات فردی خود تغییر دهند.
«نرمافزار سیال» به نرمافزاری اشاره دارد که انعطافپذیرتر از نرمافزارهای معمول است و دقیقاً با هر کاربر سازگار میشود.
با فرا رسیدن این دوران توسعه خودکار و «نرمافزار سیال»، پارادایم مهندسی مشخصات و پیادهسازی منسوخ خواهد شد.
در عوض، ما به پارادایم «مهندسی تجربه و رفتار» روی خواهیم آورد.
رفتار چیست؟
به بیان ساده، رفتار، حالتی است که در طول زمان تغییر میکند.
و تست رفتار چیزی نیست جز تست همین حالت متغیر با زمان.
علاوه بر این، تست رفتار به معنای تأیید همسویی با مشخصاتی که نحوه انتقال حالتها را تعریف میکنند، نیست. بلکه رفتار بر اساس کیفیت تجربه کاربری تست میشود.
البته، اگر خطاهایی وجود داشته باشد که باعث شود سیستم عملیاتی ناخواسته توسط کاربر یا توسعهدهنده انجام دهد، این امر به طور قابل توجهی از تجربه کاربری میکاهد. بنابراین، تست رفتار همچنین شامل تأیید انطباق و اعتبار عملکردی است.
بنابراین، پس از برآورده شدن این الزامات عملکردی پایه، رفتار از منظر تجربه کاربری برای کیفیت بالای آن مورد آزمایش قرار میگیرد.
تجربه نهایی
برای انسانها، تجربه کاربری نهایی، کنترل بدن در وضعیت سلامتی کامل است.
به این فکر کنید: هر روز، ما بدنی با وزن دهها کیلوگرم — سیستمی پیچیده و مملو از محدودیتها و قیود — را کنترل میکنیم تا در فعالیتهای هدفمند شرکت کنیم.
اگر بخواهیم چنین سیستمی سنگین، پیچیده و بسیار محدود را برای انجام فعالیتهای دلخواه کنترل کنیم، تجربه معمولاً بسیار نامطلوب خواهد بود.
با این حال، تا زمانی که بیمار نباشیم، این بدن سنگین، پیچیده و محدود را به آسانی حرکت میدهیم، گویی هیچ وزنی ندارد. آن را بدون تردید، مانند یک مکانیسم بسیار ساده، به کار میاندازیم و به ندرت متوجه محدودیتها یا قیود آن میشویم، گویی اصلاً وجود ندارند.
این تجربه نهایی است.
با پیگیری رفتارهای باکیفیت بالا، این امکان وجود دارد که تجربهای همتراز با کنترل بدن خود ارائه دهیم.
به عبارت دیگر، حتی اگر یک سیستم در پردازش کند، در عملکرد پیچیده، و در معرض بسیاری از محدودیتها و قیود باشد، میتواند به «نرمافزار سیال» تبدیل شود که کاملاً بدون استرس است.
نتیجهگیری
«نرمافزار سیال» نهایی، تجربهای شبیه به تجربه بدن خودمان را ارائه خواهد داد.
چنین «نرمافزار سیالی» برای ما، همانند بخشی از وجود فیزیکیمان خواهد شد.
هر بار که «نرمافزار سیال» نهایی از نظر تعداد افزایش یافته یا قابلیتهایش بهبود یابد، حس خواهیم کرد که گویی بدنمان در حال گسترش است.