Software engineering and mockups

Today, I didn’t do much, other than showing someone one of my previous apps, and also making plans for my next project. I am going to make a static website generator to make it easy to make a blog or landing page site without knowing much about coding. It will be made with Python and Qt, which I am still learning. But I’m a big believer in experiential learning, so this will help.

Something I learned in an SIUE class about Swift/iOS was the concept of making mockups for your program before you actually start coding it. Just like how you make a structure/skeleton for a paper and do research before jumping right into writing it, you have to do something similar for coding. In an undergrad Java class I took, we learned about UML. However, UML is still very formal, and something I like to do now is make mockups in Keynote, which is like the macOS equivalent to Powerpoint. Or you could use Photoshop or GIMP, or some sort of diagram or shape software. It doesn’t really matter which specific thing you use, but especially if you’re doing a program with a GUI, you need to come up with ideas for what it will look like. And if there are conditions or extra screens, you can express that with flow charts, or extra slides in a Keynote presentation to show what different things look like, such as when someone clicks on a button, or what an error message will be like.

This mockup process makes the coding easier because you know exactly what you want to make. Software engineering is more than just coding, it’s also planning, time management, communication, design, and version control. There’s more to software development that typing in an IDE.