Why do (some) people turn away from so called “modern medicine” (or also “western”) and let themselves be duped into taking untested “remedies” and accepting pseudoscientific diagnosis? Why do these people conclude that modern medicine does them no good but that the crystals and herbal drops do?

I believe the answer is very simple; because the modern – and western – health system has become as cold, sterile and inhumane as the whitewashed floors in the wards it puts us in. It is not just a failing, it is a betrayal against the Hippocratic Oath. As a result many people who go to the doctor, or who need hospitalisation, are forced to seek help elsewhere when the sense of dehumanisation and humiliation becomes too much to bear.

Modern medical science is based on science and critical thinking and I like to think – facts. But, if the HEALTH SERVICE can not provide a human service that also addresses the mental health and well being of patients and treats them with respect and dignity then all the hard work and efforts of medical science will become eroded and undermined by alternative offerings. These might – or might not – work or be well supported in studies and facts but the alternative crowd certainly focus on the human, and not just on the machine. Our health service needs to take a leaf from their book.

p.s.

When a patient with acute kidney failure who can not drink more than 1 liter of water in 24 hours is prescribed calcium pills (that are absolutely needed!) 4 times a day where each (large, dry and chalky) pill is to be taken with 200ml of water….in addition to all the other tinder dry pills and powders that are absolutely required and that even a healthy person can’t swallow without substantial amounts of liquid…what does that tell us about the care and concern for the patients well being that a health service can offer?

sic.

Hippocratic Oath

Disclaimer; I develop web sites as a hobby. But ever since I stopped programming actively I still get the urges and I’ve found solace in PHP, JavaScript, HTML and CSS…

Enough said. I develop web sites (for non-profit purposes) using the following set up:

Hardware

  • a Dell laptop running 64 bit Ubuntu Jaunty for development
  • An old Dell 8300 Desktop as a “staging server” to test the site in a clean room environment before deployment
  • A ton of USB drives for backup purpose and a Synology DS207+ for general server and file sharing purposes (incidentally it also hosts my personal web site, jarlmagne.com)

Software

  • NetBeans 6.7 (for main site project development)
  • PHP 5 and PHPUnit
  • Zend Framework (usually the latest version)
  • jQuery and other bits of JS libraries (also kept at latest version)
  • Quanta Plus editor (for quick HTML/CSS prototyping)
  • Apache2+MySQL
  • A plethora of browsers (Opera, Firefox, Safari, IE…)

The only thing I regrettably don’t have is a proper RCS set up. I always used Perforce when I was coding for a living (on big teams, C/C++) and I quite like it but I haven’t been able to get it working on 64 bit Ubuntu yet…we’ll see.

When I first started out with PHP and web development, coming from a “low level” C/C++ background on consoles (Playstation, XBox, Nintendo…) it was a bit of a change, to say the least. Firstly I had to get used to the somewhat quirky set up you need to do PHP development; a server, for starters, and limited debugging facilities (until I discovered Eclipse and eventually NetBeans with XDebug.)

Also, coming from a Microsoft only environment (Windows+VisualStudio for all development) and making the jump to Linux obviously came with it’s own surprises and frustrations.

However, these days I am content and more than pleased with the way things are working in the Linux and PHP world. To the point that I, filled with self confidence and bravery, zapped my new Dell laptop’s Windows Vista installation without even starting it up and replaced it with Ubuntu. I did admittedly also install Windows7 RC 1 on a partition and although I don’t use it for development I enjoy using it for more leisurely things. Windows7 is absolutely brilliant, but I digress…

So, to develop web sites I decided to use a framework. At first I wrote my own little framework that dispatched and rendered pages but I soon realized the futility of it; was I going to write frameworks or get on with making web sites? Either is fun but the latter has more end user value so I started looking for alternatives. I did one site using Joomla and it was excellent and easy to use (although writing a custom component to handle registration for a conference was a bit of a pain.) As an out-of-the-box CMS it is excellent and the ability to update documents and details directly via the web interface is great.

However, I wanted a little more flexibility and – I admit – a bit more of a “techie” experience. I am a programmer by birth, after all…

I had a look at CakePHP and it looked ok (and is generously lauded by the PHP community) but somehow it didn’t sit right with me. I have no idea why, we just didn’t click…
So I landed on the Zend Framework and I have stayed with it since.
Mind you, compared to CakePHP it probably has the most inadequate documentation…perhaps because Zend+IBM is making money from books and courses on how to use the framework? Whatever the reason it took some reverse engineering and trial and error to get it working but I have to say, now that I have done two sites using it, that it is solid, well written and we like each other very much…

I use apache2 and it’s virtual hosts feature to allow me to develop multiple sites on the same machine. I have to admit that discovering VirtualHosts was a major thing. Before that I used lampp (and before that xampp on Windows) and I even tried Zend Server CE for a while. All of these are good but the problem I found was that, having another complete set of apache, mysql and php installations in addition to the one that already comes packaged with Ubuntu caused me no end of pain. I would forget where the apache.conf file or the php.ini file was and then I’d end up changing the wrong one etc. etc. etc. It was like DLL hell all over again….
Mind you, perhaps I just messed it up out of pure incompetence but since I don’t develop web apps for a living, and hence not every day, I couldn’t use something that was so spread out and fragmented.
Whatever the reason, with virtualhosts and the standard install I am now in happy camping land.

Furthermore I love order and structure, in particular with processes, so my development approach is very organised – or so I think:

It starts with a mind-map of the site and it’s flow. It progresses to a simple wireframe implementation using basic HTML and perhaps a little JavaScript. Then I polish up on the look and layout of the site’s major portions. I find that this is easier to do earlier with pure HTML/CSS/JS focus than later, at least with the Zend Framework where the site template files can get quite “PHP’d” up and I’d rather not mix my apples and oranges; design and layout first, then backend PHP power.

Then I create the basic “Zend structure” of the site (as I suspect is the case with most PHP frameworks directory structure and naming conventions are important.)
Once I get it running with the basic controllers I put the layout together using the pages I designed in pure HTML/CSS/JS earlier. At this point I can PHP it up to my heart’s content to add dynamic behaviours based on user choice, data connections etc.

I always have a “sandbox” folder in my projects where I try out little command line apps and develop new, and risky, functionality. Once I understand where I’m going with something I move it to the “test” area where I build it up using PHPUnit in a full on test-driven way.
From there it goes into the “main line” and becomes a part of the site where it can settle and mature.

So in programming paradigm terms it’s x-treme, test-driven and into production. It pretty much follows the narrowing funnel of certainty from “I don’t really know what I’m doing or why” to “I know what I want, now I need to know how” and finally to “I know what it is and I know how, now I just need to finish it”….

That, in a rather large and wordy nutshell, is how I develop web sites (and anything else, for that matter…)

Of cancer and men

July 6, 2009

I don’t know why I’m writing this but I think I have to just so that I can get it out of my system…

My dad has multiple myeloma which is a pretty nasty piece of work. He got diagnosed in July 2007 and was put on chemo straight away. It looked bad, he lost hair he lost balance (the drugs killed off  nerves in his feet) but he recovered. Somewhat annoyingly his hair grew back to it’s former luscious glory whilst mine just keeps getting thinner…I clearly didn’t get his genes in that department.

Anyway, he got a lot better and we enjoyed some great times at my parents place in France until last month when it went a bit (ok, a lot) down hill again and he had to be admitted to get another round of chemo. He’s in a lot of pain now as a result and has had to be put on morphine. It’s bad, he has trouble speaking and he can’t really do much. I don’t know, nobody knows, how this will pan out. Perhaps the drugs will manage to take control again and bring the cancer to it’s knees (for now, it can’t be killed) or perhaps not. The new drugs he has been put on are apparently very successful in extending the life expectancy of those who get it from a measly 3 years on average (from diagnosis) to something more (but how much I don’t know, the drugs are just too new to have been tested in the field for long enough.)

But I really hope they will work.

One thing all this has done is to bring us, as a family, much closer. Really getting to know your parents and family, as opposed to playing the roles expected of you in the family setting, is a wonderful thing and sometimes, unfortunately, something horrible and dramatic has to be the catalyst for it. It is a cliche but it is rather true.

Right now I’m planning my trip to France, cancelling other trips and informing my team that I’ll be away TBD. I am prepared for the worst but with some sense of calm, I have to admit.  Perhaps it is because we have been able to enjoy these last couple of years despite always having the inevitable looming over us. It numbs the mind, prepares it and allows you to say the things you need to say and to do the things you need to do.

It is perhaps somewhat morbid but I really think that we have been saying goodbye these last two years, slowly and deliberately. And despite all the doom and gloom it feels good to know this.

Many small developers hit a wall of pain when they start growing out of their one-team-one-game-no-limits shoes. In particular if they sign a deal with a big publisher…suddenly time, money and quality and a whole pantheon of buzz words starts flying about and rocks are overturned and closets are emptied out for everyone to see. Expectations are high and the developer finds that “it will be great, just trust us” doesn’t fly any more…
The publisher, or even new management, will not trust the word of the developer even if they have a great track record because they inevitably want so much more and because they inevitably introduce another level of hierarchy with new accountability and new pathways for blame. If you, as a representative of the publisher, are trusted with $$$ to get a title developed and shipped by a developer then you will want to cover your own back and if you don’t understand, or don’t see, the inner workings of said developer then you will become intrusive. This is human nature and this is why the developer has to come up with something other than “it will be all right, trust us”….
Equally you, as the publisher, have to understand that unless you can articulate exactly what it is you want (in which case you will kill any creativity on the developers part) you will *not* get exactly what you thought you were getting.
What a dilemma…

Now, agile development methods can help here because they put so much emphasis on measuring progress by working product and not documents (unless of course that’s what you are producing…) or promises; if it doesn’t run “on the box” it isn’t done, simple. Importantly these processes also rely on the concept of product owners; the people who are the representatives of the customer on earth (the Voice of the Customer.)

To make it work, you as a stakeholder really have to act like one. Dropping in once in a while and leaving (un)helpful comments about making something more blue or less dull is not going to get you your AAA seller (nor is it going to get you any respect.) You have to become part of the RACI chart (Accountable, in fact) in the eyes of the developer and You Must Take This Very Seriously.

If you can get a developer to agree and buy in to this arrangement of you-the-stakeholder across the board (that is: for the whole team, from the bottom up, everywhere and always) then you are in a good place. Key here is for the whole team because it doesn’t do much good if only the developer’s management team buys in and understands it while the rest of the team soldiers on as before. You will not get what you agree on, you will be frustrated and angry with the developer, their management team will loose kudos and respect with you and their teams and it will all go Horribly Wrong. Trust me…I’ve been there.

So, when you first meet and greet and sign dotted lines you must be 100% clear on Who Does What. Are you here to pay them money and let them get on with it or are you here to pay them for something specific that you want? Do not ignore this distinction! Ask probing questions (it’s better to have a bit of hard time early than later when it might be too late to change anything) and don’t accept fluffy answers. Make sure they (and you) understand their place in this great play.
Schwartz’ “Group Effectiveness Model” is a good place to start; it is a model (google it) that categorizes the different forces that interact to make a team effective. Effectiveness doesn’t necessarily mean “creates lots of stuff cheap”, it means that the team works together effectively and that communication and roles are clear in everybody’s mind.

Again, unless you are going to just hover in and out of the developer’s view occasionally and otherwise leave them to their own devices, you all have to understand each others places and interfaces relative to each other.
You must do this early on and you must catch any deviation or eroding of this.

Remember, you are part of the team…..

Managing creativity?

July 5, 2009

I realize that this post has a somewhat ambitious heading…There is no such thing as a hard and fast answer to “managing creativity” and I don’t pretend to have one. It is what I do for a living, “managing creativity”, but if there is a Nirvana for this I have not arrived there yet.
But, since writing this is almost a therapeutic exercise I might as well start with the beginning: what is it I am I trying to do?

Ok, so I work for a company that develops and publishes video games (or computer games, or games.) The process of developing these is long (usually a couple of years for major titles) and involves a multitude of disciplines; programmers, graphical artists, audio artists, writers, managers, marketing people, publishing people, operations, localization, QA….pretty much everything to take something from being an abstract idea in somebody’s mind to becoming a product that you, the customer, can play on your PlayStation or XBox or Nintendo or PC…

In fact that last paragraph pretty much demonstrates exactly what makes it so difficult to “manage” this process; it is too complete. There are very few points during the development cycle where control naturally passes from one defined unit or discipline to another. It’s a continual evolution along a broad front which involves pretty much all disciplines from start to finish. Boundaries get fuzzy both in space and time and the project evolves into a lava flow; predictable only in as much as that it will reach the sea somewhere, some time…
Hand off’s and organisational boundaries that are one way gates can help tremendously in organising and structuring processes such as these. One great example of this is outsourcing but I think that might be a topic for another post.

Anyway, I work with some incredibly clever and creative people and it is easy to think that, if left to their own devices, they will just magically create wonderful things that will be instant market hits and provide great revenue from day 1.
Of course it is not so but not for lack of trying and not because these wonderfully creative people are somehow completely disorganized and incapable of coordination either. Btw, that last sentence is deliberately exaggerated because I know that many project managers, myself included, at least once in their careers have thought that the people they manage are exactly that; an unmanageable and sometimes reckless lot who dance away doing the things they like with no care for milestone dates and deliveries…

But this is of course what makes them what they are in the first place and this is what, ultimately, delivers hours of amazing escapes from reality for millions of consumers. So, we either learn to live with it or we find another job.

We still have to deliver on time, on budget and to specs of course and this is the cause of our sleepless nights and frustrations. How do you reach some level of predictability and order in all this creative chaos?

I read management books all the time and I follow various communities online (including our own internal ones) about Agile and Lean development approaches. Early on I thought that one of these would “show the way” and if we could just implement one of them then everything would fall into place by itself. I particularly liked (and still do) SCRUM for it’s simplicity and focus on customer value. However, none of these methods will, on their own, solve the problem of turning what is a highly organic and diverse evolutionary process into an ordered system of incremental deliveries over night.

What I find is that unless there really are “product owners” (in the case of SCRUM for example) who actually do care about the delivery of a product (as opposed to something against a date or some superficial criteria) and unless these people have the absolute authority and trust vested in them by their team(s) to act and behave like product owners, the whole wonderful house of cards crumbles to the ground.

Sounds easy then; identify your product owners and give them power and freedom to get what they ask for and set them loose with their individual self-organising teams…

Having worked with quite a few developers – both internally and externally – and having done a fair bit of trial and error I have to admit that I’ve come down to a very undramatic and pragmatic view of how this works;
If you have a disciplined team and if you have a team of leaders who can hold a vision and drive it through whilst at the same time are able to communicate with all the stakeholders to ensure that what is delivered is what somebody wants then, if you use SCRUM or waterfall or something else, you at least have a fighting chance of being able to predict and track progress towards your finished product.

I realize that what I am saying here is somewhat of a truism; Good Teams build Good Product.
But I believe this to be true.

My blog

July 5, 2009

This is my first posting to my new WordPress blog. A lot of things are happening in my life right now, house moves (and moving country) and my dad being terminally ill. I don’t know what I will write on these pages or if it will even be of any interest or value but if nothing else I can keep it as a record and one day perhaps even bother my children with it.

One thing is for certain; if we don’t make an effort not to be forgotten then we will be. I for one want my children, and their children and so on, to know something about who I am, not just what I look like on thousands of digital images. What I think about, what I believe in, what makes me happy, what makes me sad, you get the idea.

And, hopefully, there will be some nuggets of wisdom in here that can help them avoid making some of the mistakes I have made (or perhaps even find some new mistakes to try out) – who knows, so here it goes…

Hello world!

July 5, 2009

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!