Archive for August, 2004

Aug 25 2004

Luck

Published by under Main

Just recently I have been reading about luck and whether there is such a thing a lucky person.  It’s a big subject, but two ideas stuck with me:

 

  1. People interact with so many people and things in so many different way these days that statistically “miracles” happen.  If you define miracles as events that have less than a 1 in a million chance of occurring then I read somewhere that most people will hear of one about once a month.  That means that people are going to come across someone being very lucky/unlucky , (perhaps 1 in 10,000 chance events),  pretty much every day just based on chance.
  2. The second idea is much more interesting.  It seems that people who describe themselves as lucky seem to know more people than those that describe themselves as unlucky.  Not surprisingly the more people you know the better the chance that one of those people will be able to help you out in some way, or will know someone who knows someone ….This networking theory although obvious once it’s explained is pretty powerful.

3 responses so far

Aug 25 2004

Users dont know what they want

Published by under Main

Users don’t know what they want!. 

I have developed quite a few systems, and worked as an architect and systems integrator on many more and it’s always been pretty clear to me that in general users don’t know what they want.  Even if the user takes the trouble to write a specification, in the end it won’t meet their requirements for at least one of the following reasons:

 

  1. The most likely is that they are not the customer, they just happen to be nominated as the customer’s representative.  If you are lucky it’s because they are respected by the customer community for being in touch with their needs, unfortunately that’s rarely the case.  I once had a customer who described his requirement for an aerodynamics analysis platform as, “I need a mega-floppy Unix box”. At first I thought he was joking but that really was the limit of his capacity to explain his requirement.  The guy could do computational fluid dynamics but he had no concept of his needs.
  2. Even if the customer rep really understand the requirement they often don’t have the skills to communicate that requirement
  3. If they can define the requirement they don’t have the skills required to manage the inevitable tradeoffs that need to be made to get the product to meet quality, time and cost targets.
  4. If they can do all of the above they will probably fail because they will take away from the development team the essential feeling that they are responsible for project success.  The Project manager will probably love having a customer like this because, its takes a whole load of responsibility off the development team and places it on the customer.  Unfortunately in the end a failed project is a failed project, regardless of whether you can blame some poor customer representative or not.

 

Don’t get me wrong though I am not arguing against customer involvement, for two reasons:

 

  1. Sometimes you get a really great customer, who you should really hire as quickly as possible!  Then employ them as a solution manager, product manager, solution architect or whatever term you like to use for the person on the development team responsible for defining the spec and making sure the product meets it.
  2. If you can reach real customers, and find a way to engage them in the project then they can add real value.  That’s why some great open source projects have been built, because the developers interact very closely with their user community, who often also happen to be their testers and sometimes their developers.

 

So what’s my perfect customer engagement model?

 

  1. Ensure that the development team takes responsibility for project success.  This means that if the customer rep says something that might compromise project success the development team don’t just role over and say yes they fight for what they believe.  I call this partnership.  I don’t go in for this “customer is king” idea where the relationship is long term, needs to be built on trust and is judged by long term success criteria, (I work in IT Out Sourcing).
  2. Make sure that these three roles are filled in the project team.  There are loads more roles but these are the ones that are most often forgotten.
    1. Someone who owns the whole solution, the person who makes sure that there are no gaps and that the solution meets the needs of the customer and the service provider.  This person needs to worry about Process, Organisation, Location, Data, Application, technology, Security and Service dimensions.  It’s not just a Technology role.
    2. Someone who owns the user experience, the person who makes sure that when all of the bits of the solution get integrated together and delivered to the user it looks and feels like it was designed to be used, and that it fits into the users existing tools and processes
    3. Someone who owns the delivery of the service, (remember I am talking systems integration not software development), i.e. the same role as the user experience guy but from the perspective of the team or teams that are going to provision, manage, support and make money from the service
  3. Make sure you write these three documents, again there are often a lot more, especially on big projects but these are the core three that tend to be neglected:
    1. A Conceptual Architecture.  The document that describes at a high level all of the key concepts that people need to agree to in each of the Process, Organisation, Location, Data, Application, technology, Security and Service dimensions.  This document provides the framework off which all other documentation hangs.  The Solution Owner writes this document, it’s the “contract” with the rest of the team.  If anyone in the team can not deliver his bit of the solution consistent with the Conceptual Architecture they need to pipe up and resolve the issue with the Solution Owner.  All the way through the project the Solution Owners job is to ensure Conceptual Integrity is maintained.
    2. A Functional Specification.  The document that describes, in terms that the user can relate to, what functional capabilities are being delivered to him, which ones aren’t being delivered and any constraints in terms of devices, operating systems, network connectivity scenarios etc.  This document is the bible for the engineers on the project; it defines what’s got to be delivered.  Whereas the Conceptual Architecture describes all the bits that are needed in order to deliver and how they relate to each other.  The User Experience Owner writes this document and agrees it with the customer.  It’s the “contract” between the User Experience Owner, the developers and the project manager and the user, it binds everyone together and as such is probably the most important document on the project.  The UE owner maintains this document as the project progresses and it’s used to manage change with the customer, to define the structure of the acceptance testing and as the basis for user documentation etc.
    3. A Service Definition.  The document that describes

                                                               i.      How users provision, access and interact with the service.  

                                                             ii.      The volumetrics, (number of users, amount of data, number of transactions)

                                                            iii.      The service levels, (response times, hours of operation, hours of support etc).

The Service owner writes this document and agrees it with the customer.  It’s the contract between the development team, the user and the service delivery organisation.

  1. Note in all three cases above the documents are written by their respective owners.  Bits of the document are not carved up and delegated.  The owner has full editorial control and ensures the integrity of the whole.
  2. Make sure the project manager is not too powerful.  I personally quite like the team model that Microsoft uses in concept, although I have never had the chance to use it.  On most of my projects I like Customer, Solution Architect, Account Manager and Project Manager to work as the team.  Each person on the team needs to feel ownership of success, but focused on their perspective.
  3. Engage real customers, often real users through interactive mechanisms that allow iterative refinement of the solution in a real business context.  I am not a huge fan of getting everyone in a workshop for a day, (fatigue quickly sets in, a few personalities dominate, no one has time to think things through).  My preference is a mix of short workshops, threaded discussion groups, blogs, regular surgeries, walkabouts.  Of course giving some real users access to your daily builds/regular builds either remotely or as their day to day working environment can also help build a great system.  Although this only works for certain types of users and products, where data contamination and business risk are acceptable.

No responses yet

Aug 25 2004

Prize winners at the library

Published by under Main

Our local library celebrated its centenary today, there was a fete and a fancy dress competition, my wife loves making costumes and the girls all love dressing up so it’s no surprise that they all entered.  Stephie as Catherine Linton, Jenny as Heidi, Tessa as Mary Poppins and Anna as Sarah Crewe (the Little Princess).  They did pretty well taking 1st, 2nd and joint 3rd places!!.  Anna unfortunately missed out but when you have three prizes and 4 kids someone is going to be disappointed.  As luck would have it though the photographer then chose Anna to be in the official photo of the event and he had no idea that he chose 3 kids from the same family!  He was a bit surprised when he took there names!

 

 

Last week Tessa also won the colouring competition at the library!

No responses yet

Aug 25 2004

Productivity before elegance

Published by under Main

In this article, webservicespipeline.com discusses the rate of adoption of .NET compared to J2EE.  Its conclusions are quite suprising.  It seems that the rate of .NET adoption continues to grow at quite a rate, and puts usage on a par or slightly greater than J2EE.  It puts .NET success mainly down to increaded developer productivity and ease of deployment and management. 

This is signifiacnt for three main reasons:

  1. In the hard nosed business of IT software development, even with all of Microsoft’s woes, when it comes down to making business decisions, many IT companies still seem to make decisions based on rational criteria, and long term strategy and architectural elegance or portability don’t win out in many cases.
  2. There is likely to be a lot of new software developed for the Windows platform
  3. Mono is going to be a pretty important Open Source project

No responses yet

Aug 25 2004

3 Monitors is the way to go!

Published by under Main,WorkSpace

I have been quite happy with my two monitor setup at home,  but using maxivista I am now able to drive three monitors from my main desktop PC.  This is just great.  I can now have my email in one, my RSS feeds in another, be using Office in another etc.  I am also using a lot of virtual PC’s and I can have these displaying on different monitors.  So I can have RedHat on one monitor and SUSE on another and still be using Office on my third.  It really must have driven my productivity up 20% when I am doing this sort of work, which is probably 50% of the time.  That’s at least £100/day.  A staggering return on investment – the third monitor, (old laptop), was being scrapped and Maxivista is about $40!!

The other great advantage is that your concentration and focus is not disrupted, you might think it would be, but it seems that by not switching applications all the time, and by being able to focus on the task at hand on your primary screen, the other two monitors just provide supporting information.

We really must get more people to understand the value proposition of multiple screens!  

No responses yet

Aug 25 2004

Open Document Formats – XML to you and me

Published by under Main

This is one of the areas I am going to be looking at so its good news that there has been a recent flurry of activity around it.  here are some of the more important links. 

The debate was started by the EC report into this topic which is summarised here the full report can be found here.   One of the nice things about this report is that its been reviewed by Microsoft and Sun, and their comments on it, (at least those they made public), are also published.  Tim Bray, a man with some credibility in this area, (now working for Sun), describes his meeting with the EC team here.  John Udell writes up his views on the EC report here.  Dare Obasanjo responds to Tim Bray here.  

Then the thread starts to drift a bit, but Tim Bray also talks about his views on how the OpenOffice team have used XML, he is impressed!  And a snippet on how Microsoft have used XML in Office 2003, he is less than impressed!  Tim also talks about the use of custom schema’s and concludes they are not a good idea, (Microsoft implement them in Office 2003, OpenOffice don’t).  Jean, (a MS employee), gives his point of view, Jean like Tim is also a member of the team that created XML.

No responses yet

Aug 24 2004

RSS and it’s impact on productivity.

Published by under Main

I just read this post by Greg that describes the impact RSS has had on his productivity,  it’s as if I wrote it myself so for once I will repeat it here in full!

My RSS reader saves me about 300 hours a week

The one about how using RSS opens up information to me in a way that is so reliable I could only do it this way manually if there were two of me…

Okay, so maybe it’s a little exaggerated. But seriously, I read an incredible amount of information these days. So much more than I ever did, and a lot of it on the Internet. Not only that, but I get the information I need (or want) so fast now that I can practically always act faster than most people when news breaks. Research that used to take hours and hours of searching and browsing now takes just minutes. I’m consuming much, much more information and doing so in much, much less time. What I can accomplish today in the information gathering department would have taken two of me just a year or so ago, before I found the real beauty of RSS.

I use RSS feeds for practically everything now. Rarely do I browse to a web site these days as my first method of gathering my daily doses of information. The data comes to me, based on my subscriptions. I know what I need, and I use the tools to get it. I find information sources just once, and then let the tools take care of the rest. I update my information world in real time, using tools like FeedDemon to do the dirty work for me. I focus on consuming, and the rest is practically magic.

RSS has made me a more productive, and therefore (in theory ;-)) more valuable employee where I work. A huge part of my job is staying up to date with the latest technology, trends and issues. I subscribe to a couple hundred feeds that I review several times daily, some of which are aggregated feeds or feeds that are the result of a search of thousands of blogs and other sources for certain keywords or subjects. Then there’s the couple hundred others that I review periodically, both work-related and otherwise.

When news breaks, when someone writes a new article that I might care about, when new security patches or alerts are released, when Woot! posts their latest great deal for cheap geeks on the web, it all comes straight to me.

In a nutshell, RSS has enabled me to work (and play) on the ‘net in a way that would not be practical (or even possible) without the technology.

No responses yet

Aug 23 2004

Get it working then make it better.

Published by under Main

I have recently been doing some research into Open Source, its an interesting subject from so many perspectives.  That’s not what this article is about but if you want to follow up on it I recommend The Success of Open Source.  Anyway reading this book prompted me to think a bit more about daily builds.  Yes I know I already posted on this topic a few days ago but I can’t resist linking it with the Linux philosophy which can be summarised as:

 

“get it working then make it better”  

 

Now this really appeals to me for a few reasons:

 

  1. I am a pretty poor programmer, a reasonable designer and a pretty good architect, (hopefully :-) ).  So I incline to grand concepts, but I can never get them to work in code unless I start really simply.  In fact in most cases I start with someone elses code first and hack it around until I have proved the basic concepts.
  2. My real background is in systems integration so I never expect anything to work as documented.  In fact when I started programming with VB 2, I fell found of a whole host of bugs as well so even when not systems integrating I am very cautious.  Because of that I really like to hack something together very early on that proves all the really important concepts work, before I creates architectures or designs that depend on them working.
  3. I really like to play around with ideas and discuss and debate and its so much easier to do this with prototypes of some kind.  Not for me, I can play around with concepts just fine, but most engineers/developers that I work with struggle with concepts but revel in practical discussions around applications/hardware and code.
  4. The final reason is that project team members engaged early on in the process when something only just works, is just about useful, but can be easily improved in obvious ways marshals tremendous enthusiasm from people involved, as they feel that their contributions really matter.  If the daily build method is followed they can see the results of their contribution quickly and directly.  Conversely if your contribution is to review some dry 100 page document, have to comment on laborious comment forms, rarely get any feedback and only see the end result months later then its not surprising that motivation and ownership of success is somewhat diminished.

As an aside since I mentioned “laborious comment forms”, I just wanted to say “I hate the things”, my preference is comments made directly in MS Word, but to be honest I always tell people comment in any way you like, this is my preference but comments are what I want, the richer the better, a nice set of neat forms are NOT my objective.

There are lots of other reasons why “get it working then make it better” works really well, but I have already written about them in the previous posts.

No responses yet

Aug 21 2004

A Cinderella Story.

Published by under Main

I am not feeling too well at the moment so in search of an easy afternoon I took Jenny, Tessa and Anna to see A Cinderella Story.  Its sad to say but I found it quite watchable which must mean I am becoming much less demanding, and much more accepting of the fact that kids really enjoy these simple romantic comedies, and I just need to sit back and accept the fact and enjoy it as best I can.  In this case the story would have worked slightly better for me if poor “cinderella” had not had a mobile phone, car, personal computer, friends, and a whole host of loving adults around her to compensate for a nagging step mum and annoying sisters.

No responses yet

Aug 21 2004

More on daily builds and eating your own dogfood

Published by under Main

I have just been reading an article on the importance of scheduling and bug and feature tracking in software projects.  Its a good article and worth a read, but its basic stuff really.  However its often the basic stuff that gets neglected so don’t dismiss it on that basis.  Anyway the article prompted me to think a bit more on the benefits of eating your own dogfood and regular/daily builds. 

The key thing I missed in the previous article was the importance of the process to managing compromise, and often that compromise takes the form of cutting or dropping features in order to deliver to time and budget.  The daily build/dogfood approach helps with this as follows:

  1. First it’s pretty key on all projects to put the basic platform elements in place first. These are the foundation elements upon which everything is built; they need to be the most reliable and therefore tested for the longest period.  They are also needed normally before any realistic dogfood environment can be created.  In my desktop example this basic building block would be a stable system image, with a core set of applications.
  2. From that point onwards you are into the features management game.  Using the environment daily and releasing updates regularly helps because your user/testers will start to provide feedback on the features they really need to deploy, use and manage the environment, where there is a mismatch between this feedback and the prioritised feature list, (make sure you have one of these), the development team are working to this can be really useful.
  3. The second reason it helps is because when the dev team provides an early release of some really sexy feature, if the user/testers hate it or never use it, then it’s pretty likely that you need to take a hard look at whether it’s worth proceeding with it at least in its current form.  If you do the daily build process right you could get this early feedback with maybe only 20% of the effort that would be needed to productionise the feature so there is a good chance of making real savings
  4. It’s also likely that the architects have specified some really tough challenges to the engineering team to achieve “elegance” that no user of supporter of the environment is going to appreciate.  Dogfood users are a great community to help you spot this sort of thing.  Sometimes its also called “over engineering”, although that’s slightly different.  Dogfood user/testers will also spot over engineering as well because at some point you can elicit feedback on whether the current functionality is, “good enough”, if people are using it and not complaining that’s the time to ask the question.

Here are a couple of other points I missed as well:

  1. Another observation that’s VERY applicable to software development but helpful in system integration is that it’s MUCH easier to fix a problem the day after you wrote the software than it is a month later when you do the integration test.  Well in system integration its much easier to change the design the day after your users say they hate it than it is when that design designs implications are embedded in tens of documents and lots of system implementation implications have effectively made it impractical to change.
  2. The final observation is that the objective of developers should be to have the minimum number of bugs outstanding or unknown; with daily builds provided you fix everything as it happens this is generally true and so the system matures with only a handful of outstanding bugs at any point in time.  This minimises the risk of fixing a bug causing other unanticipated problems and makes regression testing much easier.  If you wait until everything is finished you end up with hundreds of bugs/issues to resolve and for every 10 you fix you create 3 more.  In systems integration projects its not so much coding bugs that you minimise its risks associated with not knowing if systems actually perform as documented.  Anyone that does a lot of systems integration knows that no application works as documented, and the more applications you string together the more difficult it is to get any complete business process to work.  Even worse if you are using a closed source product its quite unlikely that problems you find will get fixed in time, so you often have to find workarounds or change the architecture or design completely.  Finding these issues as early as possible is key to delivering a quality product to time and cost.
  3. This dogfood idea works for documents as well, often projects write documents that only the project team think they need, or the managers of the people who will use them think they need.  It’s a really good idea to send skeleton/outlines of your documents to the real customers of the document and maybe a good example of a previous one, so get feedback from your customer.  An associated tip is to deliver a website rather than a document.  Websites have obvious advantages some of which are worth repeating:
    1. They are easier to navigate
    2. There is less duplication
    3. You can read a high level outline of a topic/process and dip into the detail through a hyperlink
    4. They can link to referenced documents that most readers of normal documents would never be able to locate and therefore never read
    5. They can link to applications, utilities, file system folders etc
    6. The overhead of writing a web and getting it issues as part of a collection of pages that make up a site is MUCH less than the overhead of getting documents through a formal review process
    7. If you want to get clever setup and RSS feed for your web site so that interested parties can subscribe to changes in its content.  Architects and engineers can subscribe to the changes as well during development and also to keep track of changes once the system goes live to make sure operational changes do not compromise the systems integrity.
    8. If you really want to get clever deliver it as a wiki so that the end customers can enhance it with their own content and experience

No responses yet

« Prev - Next »

  • Steve Richards's Facebook profile
  • What I'm Doing...

    • Managed to walk into town ok, so Sunday ritual of reading in Caffe Nero is preserved & very nice it is too. Zero Day book has started well 18 hrs ago
    • Full flare started last night, pain, fever, night sweats etc so almost no sleep -- so no cycling today but I've got plenty to read & watch 20 hrs ago
    • Feeling very rough today, thank goodness I got on my bike this morning, I'd need someone to push me on it tonight, time for TV me thinks :-) 1 day ago
    • Started reading David Baldacci's "Zero Day" looks like a good one! http://t.co/Nl6y1CX 1 day ago
    • Getting my strength back in Lytham Kitchen, nice & peaceful upstairs & the wind's blowing me home :-) 1 day ago
    • Feeling pretty sore, but there's no excuse, today's "all about the bike" so Lytham it is then ... http://t.co/yoqmrgI 1 day ago
    • Folding takes about 2 minutes, thank goodness for eBay -- long wait but much more affordable http://t.co/TDekgtK 2 days ago
    • Replacement bike arrived finally, very pleased, folds nicely & fits in the boot http://t.co/FFaapWG 2 days ago
    • Back in sunny Chorley again, unfortunately I've brought a migraine with me, got to get to those pain killers quick 3 days ago
    • Started reading "How will you measure your life" by the great Clay Christensen http://t.co/ptJvjzK sounds like a unique book 4 days ago
    • Finished reading "The land of the free" an interesting conspiracy thriller, the writing was a bit clumsy -- http://t.co/HBZzMmz 4 days ago
    • Another great day at Chorley, lots of catch up and management reviews 4 days ago
    • Watching the "geek speak" panel discussion at Citrix Synergy, must watch for anyone interested in consumerization http://t.co/4vvwKCq 5 days ago
    • Yes, delayed but on its way, was also surprised to see >1Gb/s wifi available soon too, not sure about the range 6 days ago
    • Grace is working hard, providing moral support as I plough through my email http://t.co/o7kj5sW 6 days ago
    • More updates...

    Powered by Twitter Tools

  • Categories