Or what I’ve decided to call my haphazard style of designing software. You start at both the beginning and end and sort of flip between them until something happens.

It starts, like always, with an idea

I’ll have an idea of what I want to do. Some inkling of what I want to accomplish. I think the issue is that these ideas are often more nebulous than I realize. “NFC tracking Lego parts drawers” sounds pretty good until you actually start finding out what it will take to do that. I think I get into the “the POPULAR_APP of MY_ISSUE” mindset more than I’d care to admit.

But from there, I start plotting out the various data structures and methods I think I’m going to need. I might start writing code at this point, but more often than not, I’m still debating myself on various data types. But then everything starts to daunt. I’m just looking down the long road to completion and I can’t see how to get from here to there.

So we shake

It’s often after a bit that I just kind of give up and start working from the top. Just kind of stop designing the whole app and start with one bit. Make the landing page. It doesn’t even have to work. The buttons call functions that do nothing at the moment. Just assume that later me will fill all that in. And it’s often while I do this, I start seeing what I’ll need to call to get where I want. Basically, what would I do if I were on the other side of that airlock. But unlike Ford Prefect, I can be on the other side.

Both sides now

And basically that’s how it’ll go. Front to back, back to front. Create some screens/pages/UI, call some APIs/libraries that don’t exist, write some APIs/libraries, add some more potentially needed back end, get stuck, more screens, etc. Front, back, front, back until the development just sort of ends.

By toast