Dlayer progress continues

Progress on Dlayer is continuing, Phase 4 is now complete, Phase 5 is a single feature phase and should be complete in the next two weeks. Although it is a single feature phase the review process will be a little more complex than some of the previous phases, once complete I will be having an internal preview with the other team members.

I have outlined development goals for another 5 phases, assuming these don’t change too much after the review at Phase 10 Dlayer will have the capability to build a simple website (very simple website), it won’t be very user friendly but it will work.

We have decided that we are going to put back the alpha preview, the current plan is to show the system to the public when it is capable of building my website, G3D Development. When I say my website I mean the general site, not the blog, rebuilding the features of WordPress isn’t in our current plan.

Dlayer Phase 3 Complete

Phase 3 is complete, nice and quick.

The first three phases have been groundwork, this is where the fun begins, hopefully things continue to go smoothly.

This phase is going to take a little longer than the last two because I will be working on the interface.

Dlayer Phase 2 Complete

Phase 2 of development is now complete, phase 3 will be starting tomorrow.

After each phase there is a full review section during which I test, document and refactor and code, the goal being that we never feel the need to rework too much code at a later date.

I have scheduled an internal preview after phase 5, we will then decide where we are going next, this will dictate when we be showing a public preview

The Constant Struggle

It seems that recently wherever I work I am constantly struggling with my morale compass and how much work to do.

Before explaining I feel the need to state that even though I have struggled with some development decisions in the past my contracts and freelance work have never suffered, if anything has suffered it has been my development projects for G3D Development.

A little while ago things got a little complicated with my contract at Ladbrokes.

At Ladbrokes I am working on a reasonably complex cms / web app using the Yii framework, the system allows you to create websites using predefined widgets / blocks. You design a layout and then build up the pages of the web site, all the data for the individual widgets is stored in the database which will make the system incredibly flexible once the cms is created.

I’ve mentioned Dlayer on this site, in fact it is the main reason I have this website, anyway from a high level it has a similar goal, only from a high level though, in Dlayer everything is dynamic, much more on that in future posts, I don’t want to release too much information at the moment.

Within Dlayer there will obviously be some type of content system, this is where we have a problem.

Dlayer was originally conceived almost three years ago, I’ve been planning it for the last two years and have several pages of notes/scribbles/sketches on some of the core systems that make up Dlayer. One of the smaller sections is the content system.

Initially when I tasked with the project at Ladbrokes I was incredibly happy, what are the chances of being asked to build a system you have been planning for two years but haven’t yet had time to create.

A week or two into the project I discovered I had a problem, if I create the system for Ladbrokes I can’t then re-use the system later in Dlayer, doesn’t work with me morally and then of course there is also the fact that under contract anything I create is not mine.

Now code is a funny thing, although I can’t use the code as it technically I could easily recreate the system in my own time changing just enough to make sure it was different. That however doesn’t work morally with me either; I was also a little concerned that years down the line someone could think I had ‘borrowed’ code to create Dlayer.

After instantly dismissing the above two options (about 0.5 seconds) I was only really left with one choice, ensure that the systems for Ladbrokes and Dlayer aren’t the same either by deliberately hobbling one system or altering the core requirements.

Neither of these felt right but even so I spent a few evenings going through my plans for the Ladbrokes system to see if I could alter the core architecture.

Whilst attempting to differentiate the two systems I discovered to my amazement that they needed to be different. After thinking about the required features and planning for future additions I found that I needed to alter the core principle around identifying and assigning widgets.

I got on with redesigning the core system which later led on to me altering other parts of the system, the end result being that the Ladbrokes system couldn’t be any more dissimilar to the plans for the Dlayer widget / content system.

Now you could argue that I ‘found’ a reason to change the core and thus make them different, that is something I thought about, after a while I dismissed it because the end result is that the system I have / am creating for Ladbrokes is now much more flexible then it would have been. Conversely you could argue that the original plans for my widget system are broken and won’t work. I thought about this as well and again dismissed it, I’ve spent several hours going through the plans for Dlayer and although I have made minor changes to the plan it is still essentially as it originally was.

In the end I decided it was down to something else. The idea for the Dlayer widget / content system has been floating around in my head for around two years, as soon as I came across a project that was 90%+ similar the idea jumped forward and pushed everything else back, I then redesigned my previously planned system.

In the end this worked out for the best but there have been other times where no matter what you do the two systems are going be to very similar, either down to it being a simple concept or down to both systems being created by the same person.

I’ve been at this for around ten years, although this has happened tens of times it has never hit me quite like it did this time, I think that was because it was similar to a very personal project and not just an app or website I was / am creating, hopefully I won’t have this conflict again before Dlayer is complete.