News: Status Update
Thursday, October 17, 2013
I ended my last project related post stating that I might take a break. And that's just what I've done! This year I've ground away time and effort across 3 projects, ZNI, Z-Band, and ZN3. 4 if you count that I scrapped a version of ZN3 restarted it. So it shouldn't be a big surprise that I needed this break.
I've recently decided though that I'm at least a little interested in resuming work on ZN3, and that I'd test the waters and see just how interested I can get. I came to find though that I left it off at a difficult point. Generally when I resume a shelved project, I start with minor things to ease myself into it. But with ZN3 I have a huge task I have to tackle. A completely new feature not seen before in my previous projects, and a LOT of considerations and decisions to be made in relation to it. (I won't reveal the feature just now. I don't like to do that until at least the feature is mostly done.) This has caused me to realize my need for more organized planning.
With past projects, planning was easy. ZNI mimics the design of zbattle with some ZN2/ZN1 knowledge mixed in, ZN2 refines the design of ZN1 with additional emu support, ZN1, well was a mess, but I was still learning basics back then. Other projects of mine through out the years were either simple, had another program to be based off of, or in the case of Z-Band was developed little by little over years. ZN3 however has a different feel, despite on the surface having previous projects for me to base it off of. I'm really trying not to get locked into any previous design elements. And I'm trying to bring as much new as I can to it's design. But still I also have several other previous Z-Net that can be seen as of having compiled data for me to learn from. So it's helpful to analyze every aspect of them and how to use that analysis when moving forward with ZN3.
The analysis of that data as a whole is something I haven't done before. Even just considering ZNI, that's a lot to think about. Thus far I've been moving forward with vague ideas, and a gist of what I've learned from ZNI and ZN2. And I can no longer do that. I've decided I need to start outlining my thoughts on ZN3's design in print. Like in a text file. That's something I've done for years with a single feature at a time as I've deemed necessary. It's very helpful. But now I think I need to do it for the whole project. I need to write something thorough and something I can read to easily understand choices I've made, years later when looking at the project. I've looked at aspects of ZNI and wondered why I chose to do something the way I had, and while the answer may be in my brain it's a waste of time spent trying to remember it. The design document is kind of like why you comment code. Be kind and helpful to you're future self and others who may work on the project.
And that's what I'm doing now. Writing my design doc, analyzing design elements from previous projects, and trying to figure out the best choices to move forward considering all the data I can get. This is kind of boring, but much needed. At the moment I have puzzles on my plate to solve. Hopefully I can soon thoroughly consider all the related details, make some decisions, and start moving forward with actual coding work.