Side project of a side project

I’ve been working away building the Costs to Expect Service for a while and we are starting to make some real progress, before I started work on the next app for the service I wanted to test a couple of small ideas, enter my Yahtzee game scorer.

I released v1.00.0 of the scorer on the 3rd of August, the initial usable version was released on the 21st July. I worked on it for an hour here and there and quite quickly got it to a point where I deemed it featured enough to get a v1 label, it isn’t done but when is anything?

Building the scorer was freeing, I quickly tested some ideas and designs without having to worry about conforming to the design on the main Costs to Expect App. I discovered a couple of bugs within the API and also created new routes on the API to deal with requirements unique to the Yahtzee app, I suspect if I had ‘added’ the scorer to the existing App I wouldn’t have come up with the same design.

Looking at the API from a different perspective has been worthwhile, it forced us to rethink, rather than have a monolith App that is capable of everything, we decided to break everything up. The API is the core of the service and we are now going to have smaller focused Apps that can more easily be designed for there intended purpose.

The current App is going to be slimmed down to expenses only, a budgeting app is in the works and Pro versions of both will come along some time next year.

There are going to be more side projects of side projects, we have a few in the works. They have to take a back-seat for now as I need to get on with building the Budgeting app and I’ve a freelance project or two coming up that will steal some of my focus.

Returning to Costs to Expect, finally!

My own projects have taken a back seat whilst I’ve been busy working on a freelance project which scaled well beyond the initial scope, that project is almost over and I suspect I’m going to be free for a little while to work on my own projects again. I can start pushing towards the soft release of the Costs to Expect API and App.

The API

The API has been feature ready for a while, its issues are unnecessary complexity. When I started adding new “item-types” I opted for a little too much abstraction. I’ve been designing the budgeting system (on paper) for a while, it is not going to work in the same way as the existing “item-types” so I’ve been busy removing all the abstractions and in general refactoring the shit out of the API.

I didn’t look at the API code for a year, that time gave me a fresh perspective, I’m simplifying the majority of the “item-type” code, there is no need for everything to extend from a base class if there is going to very little overlap in functionality.

In addition to the refactoring I’m moving our tests local, rather than relying on a Postman collection I’m moving all the tests to PHPUnit. I can replicate every test in the Postman collection locally as well as test things that could never be caught by only looking at responses. I expect I will keep the Postman collection around because there are tests that a simpler to do with it but having everything local is going to be a major benefit and of course necessary for the official release.

I have 11 stories left in my tracker, the API will then hit our soft release milestone. This milestone has been a long time coming, I still can’t quite believe we are this close.

The App

The App needs more work, there are 24 stores in my tracker, my wife and I are yet to pick the App apart, so, more stories will get added. App development tasks are simpler, the API does the heavy lifting, the majority of the work on the App is presentation.

The App is closed source, the API is open source, we handle each slightly differently, with the App we are focused on the features and not so much the overall design, assuming it works, with the API, the design takes a front seat as it has to potentially be maintainable by more than just us. The reality is, I develop everything so I’m not really switching styles, we just might approach the backlog in a different way.

Official release

Once the App and API both hit their soft release milestones, I’ll cry, no really, this has been such a long time coming, I’ve been planning the budgeting and forecasting system, forever.

There might be a slight detour whilst I develop another App rather than get on with the Budgeting and Forecasting. As mad as that sounds given how long it has taken to get here, it can be thought of as an experiment/proof of concept. The budgeting and forecasting will not behave as per anything else in the App so I need to test the API and my front-end skills.

The next four months are going to be full-on, all we can do is see where we are in September and go from there.