Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

Monday, 15 May 2017

Development : The Cathedral & The Bazaar

Recently I had to explain to a none-developer how we had been working on a project, that is to say he and I.  I explained that our common boss worked very much in terms of the Cathedral, everything is big, grand, old, with set sources for supplies and almost dogmatic adherence to their ways of working.  Whilst he and I had been working, with extraordinary success, in a much more agile manner, in the manner of the Bazaar.

Anyone could bring items to us, he could filter some queries, I could filter some others, between us we then worked in an Agile manner to achieve a result.

I myself ran the development, and I pushed builds, lots of builds, releasing at least twice daily.  Any problem was picked up, worked on, solved and the next build had it, leaving a train of progressively better builds step by step, until we sit today with a fully functional system and we await input from multiple other sources.

The main source for things we are awaiting is the Cathedral, we have waited a long time, seven weeks of hard work by ourselves far out stripped the expectations of the Cathedral model of working, and once we superceded that model it was too heavy, too slow, too stiff to catch up with us.

The net result is somewhat of a pocket of confusion, work was demanded, it was delivered, yet now it sits unused.

The bazaar delivered, whilst the Cathedral struggles.



("The Cathedral & the Bazaar" is a famous musing upon software development from the perspective of old slow methodologies to the exploding Agile methodologies which suffuse the Linux development and open source development movements).



Saturday, 17 September 2016

Thursday, 30 June 2016

Blog Update : New Look

Some of you, the eagle eyed, may have spotted a new look & feel for the blog just went live... If you did spot it, congratulations, have a cookie on me!


I hope you like the new look, and I'll be talking to you soon about my adventures trying to secure new branding & hiring artists/designers to help!

Thursday, 19 December 2013

Read the Specification 2

I've often chided others for not providing me a clear specification, well today I have to chide myself... bad Xelous... BAD BADDD!!!!... For not reading the specification.

Now, in my defence, it was not my fault... The specification was IMPOSSIBLE to attain, and I made the obvious assumption that the person handing it down to me was not an utter fail-tard, not an unreasonable thing to do... But they did fail and so I failed and I'm BAD.

The problem is a system, a widely used system - with many units floating around - which the company produces is equipped with an nVidia GeForce 7300 graphics card.  And I was tasked with exploring the possibility of using OpenGL on this hardware, and the manual I was handed was for OpenGL 3.3, so I set about creating code for this.

None of the code worked, nothing, nada, zip... I looked up tutorials, I contacted online tutorial writers, I looked through forums, I searched for ways to see if the code was wrong, or failing... Nothing, it was saying it worked and was working... But nothing was being displayed so somewhere something was lying.

Frustrated I resorted to basics... and the most basic level you can get to using a library like OpenGL is... "Are these calls supported"...


The new features in OpenGL 3 require G80, or newer hardware. Thus OpenGL 3.0/3.1/3.2/3.3 is not supported on NV3x, NV4x nor G7x hardware. This means you need one of the following NVIDIA graphics accelerators to use OpenGL 3:

So there you go, my fault I should have looked earlier, my own fault... But the other guy, boy should he have thought about this before passing me a manual.

Saturday, 6 July 2013

Remember Remember the Spec last September

We have two machines, lets call them Harold and Albert...  Albert and Harold run different versions of the same software...  Albert runs version 7, whilst Harold runs version 10.

One day, MrX comes along and uses Harold, and notices something unexpected, a bug!  He reports this bug to Developer (Me).

I look at the code, look at logs, and look at the spec, and realise that MrX has seen the system work normally, and seen it operate as per spec, and so the bug is not a bug, but normal operation.

Now at this point one has to ask not "What are they doing reporting bugs which are actual behaviour", but perhaps "Why does the tester think that the software should behave a different way?"... Do they have a different spec?  Does the spec have two different possible and plausible explanations?  Has the spec changed?  Has the machine changed?

So, not wanting to sit guessing I ask, and MrX kindly explains to me - like I'm about five and sucking a wet rusk - "Its always worked this way".

MrX then departs in a funk of smug, and I look at the code, and look at the logs and look at the evidence, which all says it always worked the way it works now, so I set about trying this on Albert, the old machine, the one MrX remembers with rosy tinted Historical hindsight and reckons worked differently.

Click click, chug chug, Albert operates its way through the same software section - and low and behold it works the exact same way....

Old machine, new machine.
Albert, Harold.
Version 7, Version 10.

Both work the same way...

The tester insists otherwise, despite the now overwhelming evidence that it always worked the way it works now, and indeed as I said (three hours ago) I've not changed that part of the system in the new version... No apparently I have to fix it.

Well, I don't I'm waiting on the person who write the specification to decide, but I pretty much think this is going to go poorly for the tester, not least because - well because its always worked the way I see it working - they're just remembering it wrong.

Monday, 19 November 2012

Getting old skool with my GUI...

Over the last couple of hours I've been working, and reworking, on a tool I've had in development (off and on) since July, its a visual designer in C# to help the non-technical produce some very complex nested XML which can then be passed through a code generator to basically produce a whole system.

So, this GUI is very very complex.  At the moment I'm dividing and conquering one aspect at a time, I'm at that position where the basic assets and window management is down and working, I've got a good menu system and the data (XML) is loading and saving nicely...

The next step is to set about the actual visual representations of the entities in the data, plus all the functionality to allow... dynamic renaming, showing process connections & flow etc... 

And you know what, for the first time since I moved in with the now wife, I think I'm going to have to get old school about it, I'm going to have to get pages of design drawn up, some data dictionaries and delegate maps laid down on paper... I'm going to then have to do something very very old...

I'm going to have to stick these papers to the walls and around my monitors to get the job done.

I've not taken to posting notes or sticking designs to walls around me as I work since I was at Uni.  I first did it when learning to program, and then got over it, then used it in my degree a lot as I would leave a project to do lectures then return and try to pick up where I left off... In the days before subversion, wiki's and bug trackers this was how I progressed work.

And I can employ all those tools now with the stroke of the command line, but... They don't give me a visual link from the GUI I want to produce and the abstract data I have to represent.

Sometimes, a pen and paper, plus some long hard thinking and some bluetac win out.

The wife will not like this, but hey the office is mine.


P.S. The wife has decided to buy me a new chair for Christmas... I now have to troll the office stores in the surrounding cities for the perfect one... Ironically I know the perfect one, I used to own it, but when I moved in with the wife (then girlfriend) I had two office chairs, she made me give one to her Mother... which is the brilliant one... and I was made to keep the newer one, which just happened to be a similar colour to the carpets... which is a shame, because this chair I have is the most uncomfortable piece of shit, it leans right and always wants to roll backwards - despite being on a perfectly flat floor.  So, new chair... The trick is, can I get exactly what I had before?...