Categories
Spring Web Development

The Spring Engine Website

History has a habit of repeating itself.

A long time ago, I spent a good deal of energy trying to improve the Spring Engine website. I built a Developer site running Joomla for the engine developers, produced stylesheet upgrades, built a brand new website based on Dokuwiki, and then on WordPress, and a new design to great fanfare and debate. The only thing that stuck was the logo artwork, which was adopted by the community and became defacto standard as it was iterated upon by others.

Eventually, my website design was derailed when a forum member named Roflcopter turned up and provided an incomplete design for a homepage. Fnordia, without discussion, implemented a poorly built table based implementation of this design in the early hours of one morning and deployed several hours later. Weeks of work were replaced with the rushed work of a server admin done on a whim, taking everyone by surprise. Faced with this I gave up on my efforts to improve the site. The community cannot work with due process in the open when all work could be for nothing at the mercy of a server admin.

If Fnordia were a professional client he would have been fired and charged for breach of contract, and been avoided by the local community with a reputation as a poor client. Fnordia however wasn’t a commercial client, and there was little I could do to recover or undo the hours I’d contributed and volunteered. So I moved on and worked on my own things. He meant well, and I’ve no ill feelings, but I won’t pretend it wasn’t a kick in the teeth at the time.

The Impact

Fnordias actions started an eventual decline in my involvement in the community. My AI updates became fewer and further between, and projects I’d started never saw the light of day. I abandoned attempts to produce a game in frustration, and gave up on making maps that weren’t abysmal in favour of projects elsewhere.

I rebuilt SpringInfo for Forboding, implemented a lot of automation, and set up most of the social networking profiles for the engine with it. SpringInfo hasn’t seen as much love as it should have done in the past though, and because of the depression in Spring web development, my attempts to foster interest fell on deaf ears. SpringInfo Blogs had almost no response when proposed, despite a generous offer of unlimited free bandwidth/space, and automation freely given that would normally have cost hundreds of dollars to implement.

The Present

Just because I’ve abandoned efforts of a site redesign, doesn’t mean others have too. The roflcopter design, ignoring its flaws, is by now aged. The site has had the same design for years, and little has changed. Some believe this should change. Forboding Angel, better known as the content developer behind EvolutionRTS, took it upon himself to volunteer time and effort towards building something new. Unlike myself however, he was prepared to put considerably more time and effort in, and took a hyper conservative pragmatic approach.

My designs tried to upgrade all aspects of the site, but fell short of realistic concerns, such as my suggestion of Dokuwiki. Foboding however took what he thought was a safer route. He didn’t replace the wiki, and he didn’t abandon PHPBB. He kept them as is with initially almost no changes. He produced a WordPress site for the non-Wiki/non-Forum sections of the website that looked identical to the roflcopter design.

This new site would behave similarly to how the existing site does, but with a vastly improved implementation, and opening the door for real practical choices and possibilities in the future. By using a widely adopted open-source CMS but keeping the components people worry about, he provided the best of both world in a community that has several high profile WordPress developers.

On request, he made changes to the forum and wiki, including changes to the roflcopter design. The forum was completely restyled from scratch, made responsive to remove the need for the controversial Tapatalk, and tweaked to resemble the existing forum. The wiki was heavily modified to feature a responsive design, with a mobile editor.

Safeguarding

My own website efforts were hampered by politics. People felt they had to have their say, and if the site was perfect they couldn’t contribute. So they would point out issues. Some of these were valid and I attempted to remedy them. Some people were simply opposed to change of any kind. This meant engine developers would never deploy my work as that would involve taking sides. Instead they avoided the situation and remained silent, buried their heads in the sand in hopes they could pretend it never happened and get back to what they found interesting.

So instead, Forboding worked behind the scenes. He contacted some key pivotal people, Abma, Flozi, and through those, a small minimal number of people became involved, with some observing such as myself. Things were kept small and on a need to know basis to avoid unnecessary drama and politics, and ensure that things got done. The fear being that if the project was made public on the forums, it would not survive regardless of its merits.

Progress

Thanks to this, the site progressed and was deployed to test.springrts.com, and was done using a Git branch here. Those who frequent the forums will perhaps realise how large a slice of humble pie this is for the self professed anti-git activist that was Forboding Angel.

Time came to deployment, Abma attempted at one point, but because of a lack of experience working with WordPress, he failed to anticipate issues relating to URLs stored in the database that required replacement and rolled back.

Things stagnated as the site remained in a state ready to deploy but no action was taken. Abma made requests for changes, things were delayed, arguments occurred over trivialities such as wether the WordPress tables should be in the same database as the forum or not, etc, compromises were made but no progress. At the time of writing, the WordPress branch of the spring website repository was last modified 16 days ago. I’m told the relevant parties were busy offline.

History Repeats Itself

Several days ago, this happened:

Screen Shot 2014-04-19 at 18.54.11

Jk, had made several commits that day and announced a major style upgrade on the forums without prior consultation. Perhaps he was unaware of the work Forboding Angel had done? Unlikely, but I asked anyway, and got this response:

Screen Shot 2014-04-19 at 18.57.08

JKs design was deployed to test.springrts.com, and Forbodings test site was discarded, database and all:

Screen Shot 2014-04-19 at 18.39.20

Luckily, his git repo branches remain in multiple locations, so the code itself is not lost. When I asked about the deployment of the WordPress branch, Abma deflected the issue:

Screen Shot 2014-04-19 at 18.59.41

I had hoped Abma could explain what had happened prior to JK’s commits but he has not been forthcoming. Speaking with other community members involved I discovered JK knew about the process long before he made those commits after being made aware of the project by accident ( in much the same way Abma leaked its existence to myself ).

jK bypassed Abma to deploy his changes to the test site, losing the WordPress database in the process. Procedure wasn’t followed meaning a backup wasn’t taken and the changes weren’t deployed correctly to demonstrate jKs changes.

Suffice to say Forboding Angel is not happy. I remember when this was done to me, and things were set back. Fnordias actions killed off all web design and development on the project for a significant period. It stated that any attempt to contribute no matter how great or brilliant could be thrown away on a whim one morning.

Screen Shot 2014-04-19 at 19.01.04

The Costs

Jks design added several things. Firstly he took the additions I’d made to allow the site to stretch, and dialled up the default width to 1000px+. He then made some styling changes to add in red bevelled panels on the forum headings and the main page.

Taken alone, these are improvements to the site, some questionable design decisions, but nothing to dismiss. There are issues with it however, for examples his red bevelled styling of the welcome to spring panel is a call to action that cannot be actioned, and inconsistent with the logo branding as specified. It uses text shadowing as a crutch and has poor wording, that remains hardcoded in static html.

Forbodings improvements included these capabilities but in a more adaptable form. More importantly, his version opened the possibility up to new themes and ways of testing out the site without replacing it entirely. For example, any of the thousands of WordPress themes could be tried, superior SpringInfo integration with images and videos, carousels, sliders, brand new spring specific designs, and a great number of plugins and other features, visual editors to replace hardcoded strings on Github, etc. With Forbodings work, it would have been easy to experiment and test out ideas such as this:

Screen Shot 2013-12-19 at 17.58.11

It took me 10 minutes to produce that, and I can see a lot of things that could be done to improve it, and there are a huge number of things that would be possible. What about the cost to Forboding? He spent time and energy on this that amounts to around $3000 of paid time. Since starting the project he’s moved to a new job, with an even higher hourly rate.

Taking my own hourly rate into consideration, the company I work for has a day rate of ~$800 for a project like this. Myself and Forboding are experienced, and we’re not cheap, with tens of thousands of hours of business and commercial experience between us with some pretty hefty clients under our belt.

jKs response is that the site is easy to setup, and the readme is very useful. Those looking to redesign have ample ability to do so.

The View From The Other Side

jK on the other hand is angry. Following process and committing to git in public view, he feels that the community has been cheated. Forboding should have documented and discussed his plans on the forums.

[1:27pm] [LCC]jK: that’s why I am pissed off when ppl do uncommited stuff on webserver
[1:27pm] [LCC]jK: it’s just hell when ppl do so
[1:27pm] [LCC]jK: and still forb pushed abma to do so,
[1:27pm] [LCC]jK: abma shouldn’t play with website at all
[1:27pm] [LCC]jK: he isn’t the correct one for that

From jKs point of view, Forboding and Abma attempted to subvert the existing process without discussion. Like Fnordia, a well intentioned Forboding and Abma conspired to improve the website in secret, abandoning due process and community approval. Understandably jK is unhappy with this. His efforts up to this point discarded if the wordpress branch was deployed.

jK doesn’t see the benefit of a WordPress installation as outweighing the disadvantages, nor does he believe there should be any media/content management system behind the frontend of the site.

The Future

That in 2014 we’re using a static HTML template with snippets of procedural PHP scattered around for the homepage and header is embarrassing, and people notice. It’s clear to a lot of people that the site does not do its job, and hasn’t for a long time. Be it the people who register to the forums to ask basic questions about what the engine can and can’t do, or the ludicrous amount of time it takes for fixes and improvements to be deployed, things cannot continue as they are. I’ve identified the following issues:

  • Abma should have delegated. He should have taken a backup then given Forboding a locked down SSH account and an hour to do his stuff. The engine developers are busy people who should be focusing on what they do best
  • When difficulties were introduced, additional expertise wasn’t called upon. For example, the issue of PHP serialised URLs is entirely avoidable, I myself worked at a company previously that built a tool dedicated to getting around that issue, I’m aware of numerous tools that could have automated the entire process down to a . deployspringsite.sh command
  • It should not require a user with full server SSH access to deploy a new version of the git repository
  • Engine developers are terrified of anything remotely controversial. All it would have taken to derail the entire Forboding project was a sentence like “That rounded corner should have a radius of 6 not 5 pixels” and suddenly developers vanish from the discussion. It happened the last time a website was mentioned, it happens in any discussion that has opposing sides. Such a discussion used to occur roughly every 4 months on the forum but has slowed the last year or so.

Clearly no amount of political wrangling or persuasion will fix this in the current situation. Nobody will step in with SSH access and fix everything, nobody will set out a process, nobody will prevent this happening again.

So I suggest the following:

  • The task of maintaining the site should be delegated. Engine developers should work on the engine. Let people who are experienced with website development deal with the website. Engine developers no longer have to take sides in trivial arguments, can focus on more relevant things to them, yet retain the ability to veto things.
  • Auto-deploy the master branch to the site, and auto deploy a test branch to the test domain. Ban people from committing to master for anything other than merging pull requests. No more waiting for deployment, no more surprise commits flouting due process. If someone wants to make changes, they make it in their fork and do a pull request to the test branch. If it checks out it’s merged.
  • The stigma and massive cost, coupled with the huge probability of it all going wrong is averted. Attempting to improve the spring website is no longer a high risk gamble.
  • Deploy the WordPress branch and integrate JKs changes

We have a poor website, and it’s damaging the engine. We’re also causing massive damage in the way we’re handling our website and the continuous attempts to improve it.

What’s Likely To Happen

The likely outcome of this is that JKs design will be deployed without contest. A vastly improved MediaWiki theme and an improved PHPBB re-skinning, are in danger of not seeing the light of day.

Currently jKs access to the test server has been revoked by Abma who is similarly dissatisfied with how things have turned out.

There is a good chance we will be stuck with the same terrible site we had in 2005 but with fewer tables and a slightly modified roflcopter stylesheet that would make any junior designer scour their eyes out.

jK has made it clear he opposes any attempt to deploy WordPress, and it’s my hope that some of what Forboding produced can be salvaged and deployed lest it go to waste.

Ammendments

This article has been read and commented on by several people including Forboding. Abma declined to offer amendments though I removed and amended sections based on what he said. A section was added to try and explain jKs point of view as explained in the #sy channel. Earlier versions of this article made statements which have been disproven by new information and removed. This is the 18th revision of this post.

Leave a Reply

Your email address will not be published. Required fields are marked *