Abstraction of App Development

Periodically, we redefine roles and their descriptions in the world of software development. In my first job, we were all programmers except for Dennis who sat in a private office at the end of the hall and, unfailingly, wore a suit and tie. His title was Systems Analyst.

Over the last twenty years, we've moved to a new set of terminology with regards to development. On the job title front, we now have Software Architects who look at the overall design of a system and who consider alternate approaches and implementations -- sometimes even down to the choice of implementation frameworks, languages, and databases. This is a big-picture approach to system planning, and, among its virtues is the fact that a good software architect can present the choices and options to users in a way that ordinary people can understand. (That is to say, ordinary people who understand the business process and objectives.)

Meanwhile, we have similarly taken a step back to view the big picture when it comes to using software. We've worried for years about user interfaces (UI) -- the look and feel of the interaction between user and computer. The step back lets us look at the entire user experience (UX) which includes the interface as well as how people perceive the entire project, how they feel about it, and even the branding and marketing of the project.

The fact that we're stepping back to get a broader view of development and implementation is a positive sign for the next steps in our adventures with computers and new types of devices.