The new website



  • It was somewhere around 2004 when the company I was working for decided to renew the online shop. Several meetings were held at management level and all the employees were involved in getting the specs for the new system. It would be a complete overhaul of the website that would make this old veteran of the online shops ready for the web 2.0.

    After a half a year of debating about design and functionality the new design was commissioned. Some great interactive designs were made and about half a year later the designer delivered the new site design. Now the ball was with the web team to implement this new design. A team was charged with the changes and they diligently worked to implementing them, while at the same time another team continued to update the existing site with new features. After a year the new design was nowhere near implemented, so I was added to the team to work on the new design. Only then I discovered what a mess it was.

    • Version control was not used
    • Developers worked on their own copy and pushed changes to the website when they were ready to be tested. Of course, without checking if in the meanwhile the other had changed anything.
    • The site was a complete mess, code and html were intertwined. All styling was done on the HTML tags.
    • The site was in three languages, or two, or one by adding if then else statements in the code. The default language would vary depending on who wrote the code.

    First thing we decided to change was to roll out version control. Next we started to externalise all strings and separate code from html. We created a test environment so we could test our changes before rolling them out in production (which meant replacing the ageing web server with Apache httpd 1.3 to support virtual hosts). One year later, when I left the company, we almost had the all the code separated from the resources so we could start implementing the new design, but since my position was not filled in by anybody the site again was soon out of sync with the existing site that was still being developed. About a year later the project was shelved and the company continued to use the old site till about a year ago when they migrated to Magento.



  • @solitario said:

    It was somewhere around 2004 when the company I was working for decided to renew the online shop. Several meetings were held at management level and all the employees were involved in getting the specs for the new system....

    After a half a year of debating about design and functionality the new design was commissioned. ...

    About a year later the project was shelved and the company continued to use the old site till about a year ago when they migrated to Magento.

    When the requirements were complete, did anyone think to look at what was already available before proceeding with rolling their own? Or did research prove that existing systems couldn't satisfy those requirements and thus were compelled to build their own?

    Evidence indicates that your company just isn't geared up for development - many policies and processes don't seem to be in place. It seems a constant WTF that someone can look at a brand new challenge and think "we've no knowledge, expertise or capability.. but let's have a go by ourselves anyway!"

    (in your defence, it sounds like the analysis and design was a non-WTF, mind. That only leaves standards documentation and code policy, implementation, testing, change and release control, quality assurance, project management...)



  • Wait... these people can't even get the basics right and they decided to take on Magento? I'm afraid to ask how that turned out.

     



  • Oh look, it's the lonesome supervillain Solitario!

    @solitario said:

    We created a test environment so we could test our changes before rolling them out in production (which meant replacing the ageing web server with Apache httpd 1.3 to support virtual hosts).

    Apache 2.0 would have been out and stable for quite some time in 2005-2006. Regardless, a QA environment should be on its own servers, not just a separate vhost on the production servers.



  • @solitario said:

    First thing we decided to change was to roll out version control. Next we started to externalise all strings and separate code from html. We created a test environment so we could test our changes before rolling them out in production (which meant replacing the ageing web server with Apache httpd 1.3 to support virtual hosts). One year later, when I left the company, we almost had the all the code separated from the resources so we could start implementing the new design, but since my position was not filled in by anybody the site again was soon out of sync with the existing site that was still being developed.

    It would make a very interesting study to take a long hard look at this story and review the financial impact on the company. I am not sure that implementing "Software Development Best Practices" after the fact is always cost-effective for the business; of course all the developers will make the same argument (easier to maintain, less bugs) but there are no hard numbers behind either of these claims. Maybe it would have been more cost-effective to throw the two teams at bringing the new website online and patching it continuously instead of having one team working on the legacy website while another team was playing with source control and refactoring html. Especially for an in-house product that is entirely under the control of the company and has not been bought by other organizations that must be supported. One year of optimization, that is insane, no matter how many features were on that website.

    Sometimes IT people lose sight of the bottom line and spend much more time on non-core activities than needed, like a janitor in a dirty building spending half his time organizing his closet because it will make him so incredibly efficient whenever he needs to pick up a broom.



  • @morbiuswilters said:

    Regardless, a QA environment should be on its own servers, not just a separate vhost on the production servers.

    I wondered about that, too. I'm guessing there was a reason why they stuck to 1.3, but I hoped it wasn't what I thought.



  • @Speakerphone Dude said:

    Sometimes IT people lose sight of the bottom line and spend much more time on non-core activities than needed, like a janitor in a dirty building spending half his time organizing his closet because it will make him so incredibly efficient whenever he needs to pick up a broom.

    +1

    I'd also like to throw in that some of the best IT managers I've come across didn't originate from IT - so remain isolated from implementation details and focus upon deliverables, timescales and cost.

    I believe the stems not from IT people losing sight of the bottom line, but them being permitted to. Governance and control is a Business issue, not an IT one.



  • @solitario said:

    The site was a complete mess, code and html were intertwined.
     

    Isn't that pretty standard?  That sounds like exactly how PHP works, and several other templating-based Web development systems.  Or do you mean something else?

     



  • @Mason Wheeler said:

    @solitario said:

    The site was a complete mess, code and html were intertwined.
     

    Isn't that pretty standard?  That sounds like exactly how PHP works, and several other templating-based Web development systems.  Or do you mean something else?

    Well, no, template logic should be lightweight. When people say "code and html were intertwined" they mean that the code is fairly heavyweight, doing complex work that should be factored out into classes and/or functions.



  • @Cassidy said:

    it sounds like the analysis and design was a non-WTF, mind.
     

    Was it?

    Without even addressing the relative merits of upfront vs. agile design process, I cannot possibly imagine how it could take a designer a full six months to create deliverables for an ecommerce site redesign.

    Unless the time required to learn Photoshop from scratch and go to design school was included...?



  • @solitario said:

    Version control was not use

    This should be the First Law of TDWTF: "Any project that does not use some form of Source Code Management is automatically a WTF"



    I am completely unable to understand any developer who does not use source control for anything but the most trivial scraps of code. Who are these people, and were do they keep coming from?



  • @Vanders said:

    I am completely unable to understand any developer who does not use source control for anything but the most trivial scraps of code. Who are these people, and were do they keep coming from?
     

    Brazil, in my experience.



  • @Vanders said:

    This should be the First Law of TDWTF: "Any project that does not use some form of Source Code Management is automatically a WTF"

    What about RCS? I bet you didn't think about that one. I found an exception to your perfect rule! It's the exception that proves the rule and your rule was disproven! And in true TDWTF fashion, I'm going to completely ignore the valid point I knew you were making, and instead crow about how much smarter I am for finding an exception.



  • @morbiuswilters said:

    @Vanders said:
    This should be the First Law of TDWTF: "Any project that does not use some form of Source Code Management is automatically a WTF"

    What about RCS? I bet you didn't think about that one. I found an exception to your perfect rule! It's the exception that proves the rule and your rule was disproven! And in true TDWTF fashion, I'm going to completely ignore the valid point I knew you were making, and instead crow about how much smarter I am for finding an exception.

    In true TDWTF fashion, I'm going to insult you for not explaining what RCS is, sparking off a 10 page debate about whether RCS is the kind of term that every real programmer should know.



  • @pkmnfrk said:

    seriously though what is RCS?
     

    Resident Catering Service.  I thought everyone knew that.



  • @pkmnfrk said:

    @morbiuswilters said:
    @Vanders said:
    This should be the First Law of TDWTF: "Any project that does not use some form of Source Code Management is automatically a WTF"

    What about RCS? I bet you didn't think about that one. I found an exception to your perfect rule! It's the exception that proves the rule and your rule was disproven! And in true TDWTF fashion, I'm going to completely ignore the valid point I knew you were making, and instead crow about how much smarter I am for finding an exception.

    In true TDWTF fashion, I'm going to insult you for not explaining what RCS is, sparking off a 10 page debate about whether RCS is the kind of term that every real programmer should know.

    Revision Control System, precursor to CVS, n00b.


Log in to reply