소프트웨어 개발은 일반적으로 사양과 구현을 일치시키는 것을 목표로 합니다.
이러한 이유로, 우리는 사양을 충족하도록 소프트웨어를 설계하고, 그 설계를 기반으로 구현합니다. 그런 다음, 테스트를 사용하여 구현이 사양을 충족하는지 확인하고, 불일치가 있으면 구현을 수정하거나 사양이 모호하면 명확히 합니다.
이를 사양 및 구현 기반 엔지니어링이라고 부를 수 있습니다.
이와 대조적으로, 오늘날 소프트웨어에 대해 논의할 때 사용자 경험이 점점 더 중요해지고 있습니다.
더욱이, 실제로 사용자 경험을 형성하는 것은 소프트웨어의 구현이 아니라 소프트웨어의 '행동'(behavior)입니다.
그러므로 사양과 구현의 틀을 벗어나면, 경험과 행동이 존재합니다.
결과적으로, 경험과 행동을 기반으로 하는 익스피리언스 & 비헤이비어 엔지니어링 개념을 탐구해 볼 가치가 있다고 생각합니다.
리퀴드웨어
익스피리언스 & 비헤이비어 엔지니어링은 전통적인 소프트웨어 개발 방식으로는 비현실적인 접근 방식입니다.
이는 사양에 엄격한 경계나 기능 구분을 두지 않고 사용자 경험을 개선해야 하기 때문입니다. 사용자의 사소한 경험 개선 요청이 이전에 개발된 모든 소프트웨어를 폐기해야만 실현될 수 있는 경우도 발생할 수 있습니다.
반면에, 생성형 AI를 활용한 에이전트 기반 소프트웨어 개발 자동화가 보편화되는 시대가 오면, 전체 소프트웨어 시스템을 다시 구축하는 것도 허용될 것입니다.
더욱이, 그러한 시대에는 출시된 소프트웨어에 AI 엔지니어 챗봇을 탑재함으로써, 사용자 개개인의 선호도에 맞춰 UI를 수정할 수 있는 "리퀴드웨어(liquidware)" 시대가 도래할 것으로 생각됩니다.
리퀴드웨어는 전통적인 소프트웨어보다 훨씬 유연하여 각 개별 사용자에게 완벽하게 들어맞는 것을 의미합니다.
이러한 자동 개발 및 리퀴드웨어 시대가 도래하면, 사양 및 구현이라는 엔지니어링 패러다임은 시대에 뒤떨어질 것입니다.
대신, 우리는 익스피리언스 & 비헤이비어 엔지니어링이라는 패러다임으로 전환하게 될 것입니다.
비헤이비어란 무엇인가?
간단히 말해, 비헤이비어는 시간의 흐름에 따라 변화하는 상태입니다.
그리고 비헤이비어를 테스트한다는 것은 다름 아닌 이러한 시간 가변 상태를 테스트하는 것입니다.
더 나아가, 비헤이비어 테스트는 상태가 어떻게 전환되는지를 정의하는 사양과의 일치를 확인하는 것이 아닙니다. 대신, 비헤이비어는 사용자 경험의 품질을 기준으로 테스트됩니다.
물론, 사용자나 개발자가 의도하지 않은 동작을 시스템이 수행하게 하는 버그가 있다면, 이것 또한 사용자 경험을 크게 저해합니다. 따라서 비헤이비어 테스트에는 기능 적합성 및 기능 유효성 검증도 포함됩니다.
이러한 기본적인 기능 요구사항을 충족한 후에는 사용자 경험의 관점에서 고품질 비헤이비어를 테스트하는 데 초점이 맞춰집니다.
궁극적인 경험
인간에게 궁극적인 사용자 경험은 건강할 때 자신의 신체를 제어하는 것입니다.
생각해 보세요: 우리는 매일 수십 킬로그램에 달하는 무겁고 복잡하며 제약이 많은 신체를 제어하여 목적에 맞는 활동을 수행합니다.
만약 그렇게 무겁고 복잡하며 제약이 많은 시스템을 제어하여 원하는 활동을 수행하려고 한다면, 일반적으로 경험은 상당히 좋지 않을 것입니다.
하지만 우리가 몸이 좋지 않은 상태가 아니라면, 이 무겁고 복잡하며 제약이 많은 신체를 마치 무게가 없는 것처럼 가볍게 움직이고, 간단한 메커니즘처럼 손쉽게 조작하며, 제약과 한계를 마치 존재하지 않는 것처럼 전혀 개의치 않습니다.
이것이 궁극적인 경험입니다.
고품질의 행동을 추구함으로써 자신의 신체를 제어하는 것과 동등한 수준의 경험을 제공하는 것이 가능해질 수 있습니다.
다시 말해, 시스템이 처리 속도가 느리고 기능이 복잡하며 많은 제약과 한계를 가지고 있더라도, 완전히 스트레스 없는 리퀴드웨어 경험이 실현될 수 있습니다.
결론
궁극의 리퀴드웨어는 우리 자신의 몸과 유사한 경험을 제공할 것입니다.
그러한 리퀴드웨어는 우리에게 몸과 같은 존재가 될 것입니다.
궁극의 리퀴드웨어가 확산되거나 기능이 향상될 때마다, 마치 우리 자신의 몸이 확장되는 것처럼 느껴질 것입니다.