Software is typically not designed for the way we (users) understand how things should work or how we work.
Rather it is designed for the way we (programmers) understand how things work.