The process of Software Engineering also begins with general concepts. We often begin with an analysis phase where we outline the requirements of the software as well as the architecture that will support the software when it is launched. (Azure, AWS etc). Sometimes our projects are reside solely on a device. We start with a high level block diagram of the software system.