Seven steps for bridging the gap between human experience and software engineering — To create software, you have to create a data model To create a data model, you have to know the relationship of things To know the relationship of things, you have to know their meaning To know the meaning, you have to know the words To know the words, you have to know the first principles To know the first principles, you have to understand the domain