The Future for Shine

Greetings! I’ve mentioned it enough, it’s time to write this post!

Here, I will detail the thoughts I’ve been having about Shine’s progress, the direction I intend on going, and even give some timeframes for when certain milestones will be met! I’m going to divide this into three parts:

  1. My big pause and Shine’s progress
  2. The future for Shine’s beta period
  3. The fabled 1.0 release!

This is going to be lengthy, so be prepared!

My big pause and Shine’s progress

So you may have noticed that there was a big gap between the release of beta 0.5.1, in February, and beta 0.5.2, in May (by comparison, beta 0.5.3 came out earlier this month, less than 3 weeks later). During that gap, I haven’t even written anything and I probably didn’t even publicly talk much about Shine either. So what gives?

In actuality, beta 0.5.2 was pretty close to being ready by early April, if not earlier. However, there was a combination of reasons why Shine never came out at that time, although they honestly all tie into each other.

Working on Shine isn’t my day job. I do this (and work on other projects) when I get home from my actual job. And the job I had had up until April was, honestly, starting to make me less and less happy. I’d come home tired and upset with everything, and when I finally decided to quit the job, I had to put all my focus into getting a new one.

However, despite Shine not being my day job, it still felt like a job. I would feel like I was being unproductive on the evenings that I wasn’t working on either Shine or another of my projects. Part of the reason was because of my push to get Shine out by a certain timeframe, and part of it was the lingering effects of me being in college, where even when I was relaxing at home, I still always had work to do. In college, it felt like there truly was no such thing as free time, and it still carried over even after I left it.

In the end, it did lead to me burning out a bit with my work on Shine, and on programming in general. But on top of that, it also made me start thinking about my progress with Shine and how I really want to go about working on it.

The truth of the matter is, like I said, this isn’t my day job. At the end of the day, no one’s depending upon me to complete Shine. There’s no paycheck every 2 weeks for it, there’s no one telling me when I need to complete it by (except for, of course, myself). There isn’t even a guarantee that this product I’m making will even become useful to anyone.

The production plan for Shine up until that point was thus:

  • 1.0 release in summer 2018 with only the most essential features
  • 1.1 and 1.2 releases in late 2018 and early 2019 adding more features
  • 2.0 release in late 2019/early 2020 with all the features I actually wanted in Shine

This essentially meant that the 1.0 release that I’d be putting out this summer, would be one that I wouldn’t even be all that proud of. In fact, my mind had more wandered to the 2.0 release, because that was where everything I had imagined for this program would actually finally appear. Sure, it meant that a stable version would be actually out of the door, but it didn’t fulfill what I had wanted out of this program.

In all honesty, even now, I can still hit that milestone – this planned 1.0 – before the end of summer. The biggest feature missing right now is the Nova system, which will power everything else not yet in the program. But I had a different idea.

If this 2.0 release was everything I wanted it to be, why not actually have that be the actual 1.0 release for Shine? Put everything I wanted into it, and have a release I was proud of, at the cost of a stable version of Shine coming out a year-ish later.

This was what I was debating during this long break, and I finally made my decision:

Shine 1.0 will be releasing in late 2019 with all the features I wanted included since the beginning.

The future for Shine’s beta period

This new plan came with another major part to it: I’ll be releasing beta versions of Shine all the way up to that 1.0 release. We’ve already seen this happen with the releases of 0.5.2 and 0.5.3 in the past 40 days.

The reasoning for this is twofold:

  1. Late 2019 is a full year past the original summer 2018 goal, and I still wanted people to be able to try Shine out and give them something even if it wasn’t the full 1.0 release
  2. I’ve already released the 0.5.1 beta, and so I may as well continue releasing more (especially considering that 0.5.1 had some notable problems).

So the beta releases will continue. The next one planned is version 0.6, a major milestone in Shine’s development. Version 0.6 will include the Nova system, which is a data system that allows Shine to cache your events and data about them, for the purposes of searching and adding recurring event support (among other things).

Currently, the Shine program talks directly (and uses data directly from) online providers and local files, meaning everything Shine does requires connecting back to the Internet (or that file) to request more info or send info. It’s a process that wastes time and resources, especially when a lot of the data Shine asks for is the same thing over and over again (i.e. what events are there for the month of June?). The Nova system will act as the middleman, servicing redundant requests and adding extra info as Shine asks for it.

Beyond 0.6, there will be more milestones and beta releases all the way up to 1.0. My hopeful goal is to have 1 to 2 beta releases per month, and along the way I’ll be writing my weekly progress posts as well.

Here is my planned milestone schedule for Shine’s beta period:

  • 0.6 – July 2018 – Nova system, iCalendar support
  • 0.7 – Late 2018 – Tasks, internet-focused features
  • 0.8 – Early 2019 – UI overhaul, Agenda/Timeline views
  • 0.9 – Mid-2019 – finalization, preparations for final release

And then finally…

The fabled 1.0 release!

As mentioned above, Shine 1.0 is scheduled to release in late 2019.

To be fair, “late” could mean even as early as September 2019, or as late as the end of December 2019. It all comes down to how easily and quickly things can be moved along. I won’t be giving any specific dates until we get a lot closer, but it’s highly unlikely that it’ll slip to anywhere past 2019.

I know I’ve had an issue with past projects in regards to slipping deadlines, and frankly, from the outside, Shine probably looks the same. But Shine continues to prove to be different from any of my other projects thus far: I’ve spent a lot of time planning this program, including a full year of design and on-paper work before even writing a line of code. A lot of thought has been put into how Shine is coming together, and Shine is more solid and organized than any of my previous projects.

When Shine 1.0 will be released, it will actually be branded as Shine 2020. Shine 1.0/Shine 2020 will not be the final version of Shine, and I plan to make future releases and updates beyond that milestone with some frequency, addressing post-1.0 bugs and adding new features. What all exactly these will entail and how often they’ll come is still something being thought over.

For now, the big focus is on the beta releases that are continuing to be worked on and come out, and the buildup to version 1.0. There’s a lot of steps between here and there, but not nearly as many as there between when I started on Shine and now. I’m excited with the progress thus far, and I hope you’ll stick around to see how it all comes together!

I’ll be writing weekly progress posts and also posting to Twitter as I go along, so as I have more news to share, I’ll have places to post them.

Until next time,

Jayke

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.