Wednesday 9 May 2007

Are We Just Processes in a Data Flow Diagram?

Reading
Donald Latumahina's
post on inputs reminded me about data flow diagrams. Donald argues that inputs determine outputs, which is similar to the rule that states that a process can not be a source of data, but rather only transform inputs into outputs.

Have bad inputs, and you get bad outputs. The logic seems reasonable enough at first glance, but can our minds really be simplified to a single process on a sheet of paper?

Commenting Code

Commenting code is something that all programmers, especially the students and newbies, are constantly reminded to do.

But how do you best go about it, and more importantly, how do you know when to add comments? Steve C McConnell says a good place to start is with good code:


Good code is its own best documentation. As you're about to add a comment, ask yourself, 'How can I improve the code so that this comment isn't needed?' Improve the code and then document it to make it even clearer.


The worst code i've seen would not have been helped by adding comments. The code itself needed to be drastically changed.

Code which has a logical structure and meets the requirements of Obejct Orientated design can often be worked out. It is when the programmer him or herself does not know what the class is meant to be doing that problems arise.

So sort out the code and comments will naturally follow.

Wednesday 2 May 2007

UK Internet Millionaires Move Down Rich List

11 of this years 15 millionaires who made their money via the internet have moved down the list.
What does this mean for those of us who want to join them?

Empowerment - Nobel or Patronising?

Empowerment goes to the heart of good governance, good democracy and good business. Being a leader is not about getting someone to do a task but making them want to so they do it without asking.

Lisa Haneberg has something different to say about that:

Saying you want to create a work environment where people do their best work and then failing to collaborate with employees (notice I did not say empower, which is generally a fake term and patronizing) about projects and decisions that affect their work - that's management on the cheap.


Apparently empowering people is 'patronizing'. Having experience in politics, I know this to be far from the case.

She does however touch on an issue that many free thinkers and leaders forget; that not everyone shares our vision. I have seen many people lose their control with employees, who are often earning the minimum wage, for not going above the call of duty.

You must not forget that whilst you have invested everything into a project; belief, time and money all for a greater spiritual or financial return, those you have brought in won't have. After all, why should you work your butt off for a low wage, or if viewed differently, low Return On Investment? Empowerment, a term used often in politics, is superficially thought about meaning 'how' to get people active and involved.

If you dig deeper, it is however about something different; the 'why' should people get involved.

Solve this latter question and the former will follow suit. As entrepreneurs, team leaders and blue sky dreamers, you must think about the 'why'.


  • Why should people believe in your idea as much as you do?
  • Why should people work their buts off for you?
  • Why should people work harder the ruder you are?


If you can empower people, you can do one of the key things required of you as leader and rainmaker; motivate. Help people share you vision by focusing on the why, and the how and if's will follow.

Tuesday 1 May 2007

Leading, Not Managing

Leading a team can be hard work. My father always said that when leading a team you had to be able to do what they did, and take on the extra responsibilities that come with leading a team in 'extra time'.

As a child and then teenager, this marred with my own views of being a leader that came from watching many macho films. I had always wanted to be an officer in the British Army, and was well suited to it. Not incredibly intelligent, but active, fit, a desire for action with a smattering of backbone and dislike for the mundane and average meant I was well suited to it. The only reason I did not sign up was due to having grown a conscience - would I be happy with fighting other peoples wars?

This article is not and debate on the merits and place of an army in a democratic society. But leading at the time did seem to me like doing what others could do, but for longer, better, and harder.

As someone who wanted to be an officer I believed you had to lead from the front. That meant being able to run faster, lift more weight, work for longer and just do more work better.

That all holds true, and went some way to gaining a lot of respect from older colleagues in the cadets.

However leading is more than just doing more work. It is more than managing. It is about people. Leading and managing often get confused. In the article manager or leader the distinction is made clear.

Selection of those who work with and around you is important. Unfortunately there will always be people who are happy to live the nine to five, work to live not live to work live life style. You need to make sure you can get the best possible team around you.

However once that is done, are you doing the best you can to keep people motivated? Getting bogged down in the nitty gritty of programming, something that is enjoyable and invigorating, could be detracting from your true responsibilities.

Your job may not be about running faster, but making sure other people do.

Getting To The Top - Programming or People?

What is interesting about this article , from Aleksey Shevchenko, aimed at application developers on how to succeed at job interviews?

People skills are number one. This is not say that technical ability or business knowledge is not a pre-requisite. It isn't possible to be a doctor without having detailed knowledge of medicine, or a mechanic without knowing the internal working of a car. The same goes for programmers.

But who gets to the top of their profession, and how do they do it? Is it by being factually/technically correct but obtuse and arrogant, or by merging your technical skills with an awareness and understanding of how other people operate?

You guessed it... Become an excellent programmer, but don't forget those other 'softer', but no less important, skills.

Monday 30 April 2007

Two Ways to Increase Sales and Profit

Business owners can often over complicate things. Here are two simple ways to maximise sales.

1. Be pleasant. This weeks New Stateman has an article about the local elections. A woman was comparing Tim Farron, current MP for Westmorland and Lonsdale, with the previous MP, Tim Collins. Without the article to hand I can't take a direct quote, but it went something like this:

"Tim [Farron] came round and kicked the ball around in the garden with my son for 45 minutes. Collins would come, give it a kick, and then head off again in five minutes."

You can see why Tim Farron won the election in 2005? Are you pleasant and easy going with your potential clients?

2. Give options. Successful companies sell more than one product, because there is no magic item or service that can meet the varied needs of all their customers.

People, when buying service orientated products, can be keen on bargaining. Yet I bet these same people wouldn't do that if they walked into a retail store. When working as sales assistant in a bike shop, if someone couldn't afford a bike, I would show them a cheaper one. The link between quality, value and price was clear.

Make that link in your products. Offer more products, and the value of each one becomes clear.

Friday 27 April 2007

Favourite Books - Head First

Ok Ok. If you like at my favourite books on the right, it does seem like a brand of books, started by Cathy Sierra, make up the majority of my book shelf.

Now I must start off by saying that I have not and will most not ever receive payment for this. It is actually because reading the Head First Java book brought me up to speed on Java in only four weeks, when others will still learning the basics (and still are) after three months.

The second, Servlets and JSPS, brought my 92% in a class test, and the third, HTML and CSS, gave me the skills to write a well structured, strict compliant, good looking website that meet usability guidelines (oh and the client liked it also).

The books quiet simply break the mould for technical manuals, though strictly speaking they are not manuals, but learning materials that life long teachers probably never manage to produce. So say what you will about my shameless plug for the Head First range, but they've brought me far and will do so for others who can't be bothered to wade through 500 pages of sleep inducing size 8 writing.

Thursday 26 April 2007

Dreaming Versus Doing

How do you approach new projects? Do you start by thinking about what you can do, and then what you could do with those skills?

Or do you think about what would be cool? Or about what needs are there; personal, societal, commercial or otherwise?

Jeff Atwood stated that if you want to be a great programmer, you should put down the keyboard, put up the feet, and take a physical and mental step back from the code too:

cultivate passion for everything else that goes on around the programming


Rather then think from the bottom up, dream for a bit. One day you'll end up drinking a martini (or whatever it is you like to drink) on the veranda on some beautiful island when that wild "only you thought of it" idea was turned into reality, and you made a bit of modest dosh at the same time.

Limit your self by your dreams, not your skills.

Remote Method Invocation has Landed!

I have finally nailed (ok not not nailed, but more pinned down with a sturdy pin) Remote Method Invocation(RMI)

RMI

Unfortunatelly, the RMI lecture came straight after a class test and was thus promptly slept through by most students. Going back over the lecture slides, which are not meant to be read but worked through in class, were not much help. After much confusion, trying to work it out, going back to the Head First
Java book
I finally tried the java website, and hey presto, found exactly what was needed, a tutorial
by jGuru.

To summorise how neat and simple RMI is (for the simple stuff anyway!)

The remote object you want to be available to a different JVM must implement an interface.

That interface:

  • is public
  • implements Remote
  • each method signature defined must throw a RemoteException
  • and for programming ease import java.rmi.*;


The remote object:

  • again be public
  • implement the interface above and extend UnicastRemoteObject
  • supply a no arg constructor which throws RemoteObject and calls super()
  • implement all the methods defined in the interface it is implementing


Now getting that remote object "out there", which will be done by a server object, is so fantastically easy, once you see it in practise.

The server object:

  • does not implement or extend anything
  • places all the work in try/catch statements
  • imports java.rmi.*;
  • makes an instance of the remote object to be made available to the world
  • declares it to the world by doing such: Naming.rebing("rmi://hostname:port/madeupname", RemoteObject Instance);
  • has a main method for starting the server


The client, or the listener which wants to use the remote object as if it were on its heap:


  • Gets a copy of the class for the object it will use as a stub/ if one is not on that system
  • RemoteObject r = (RemoteObject)Naming.lookup("URL same as above/madeupname");
  • you can then use r as if it were on your system!


Of course this won't make much sense without looking at some actuall examples, but it
is so straightforward that, like a lecturer said, you could put this all on a post stamp!

Wikipedia and Money

I was looking at an article on the first round presidential elections in France, with a friend who wondered how the hell does Wikipedia make money?

According to him;
"I must be missing something here, but I just can't see where it gets any revenue from."

Now Wikipedia is part of the Wikimedia Foundation, a not for profit organisation. But what about Jimmy Wales and Larry Sanger? Amusing disputes aside about Sanger's role with Wikipedia and Jimmy's18 edits of his own wikipage, something that apparently goes against his belief, how were they in the position to do this project for free?

According to Daniel Pink of Wired Magazine, Jimmy earnt his money by "speculating on interest rate and foreign-currency fluctuations" he had soon earned enough to "support himself and his wife for the rest of their lives".

Enough to invest $250,000 into Nupedia and $500,000 into Wikipedia. So what lessons should we learn from this? I'll leave this up to you to think about for now, but this has planted a seed for a new project in my head. so check back later for more info.

Free Design Templates Are HogWash

..are too good to be true. I could understand people using this service, maybe five years ago, if they just wanted a personal web page to put gossip, photos and contact info up on the web.

With the advent of free and widely available blogs I thought they would have died off by now, being no use to business.

But the worrying trend, which I found out from a friend who admitted to buying one, is that these website template companies are now focusing on the needs they are most unsuited for - ecommerce and business presence.

Templates can be a learning tool for developers to see the underlying structure of some decent looking sites. But the majority of template users I know of are not developers, but wannabe web start-ups who do not have the faintest clue of how a web site it put together.

They are not able to change the navigational structure, nor are they able to tweak the look slightly. What happens if they want to add extra pages? What happens if they want to increase their content area to make room for more copy? What happens if they need to update it to match with the latest useability guidelines?

Unfortunately whilst these people may on the surface seem to be acting sensibly by keeping outgoing costs down, their business model ends up being limited and constrained by their website, because they are unable to change it to their and their customers needs.

You get what you pay for. I believe you should only pay for templates if you wanting to test the waters with a product for a short period of time. Are you a small business owner who has bought one? Did it last?

Wednesday 25 April 2007

Can you think positively?

Jeff Atwood wrote an excellent article that resonated with my own experiences on what separates a good programmer from a mediocre one. His advice was to take a step back from the programming itself, and broaden your skill set; not through learning more languages but learning more about the user, the industry and the business as a whole.

Atwood quotes Bill gates from the book Programmers At Work rings so true;


Does accumulating experience through the years necessarily make programming easier?

Bill Gates: No. I think after the first three or four years, it's pretty cast in concrete whether you're a good programmer or not.


It was clear, I hate to say, who the good and the bad programmers were on my Masters. Now why was it? Naturally, and rather immodestly, I counted myself on the side of the fence that shepherd the good programmers. But why?


  • Was I that intelligent, other and above others? No.
  • Did I have more experience then they? No
  • Did i have access to more/better study materials? No


I went through many similar questions, before finally finding the answer: I was patient and willing to learn.

Because I always assumed I would learn to programme, and programme well (which I still am doing - you never do stop learning), any time I came across problems I was able to surmount them while others stumbled, lost confidence, and eventually gave up.

Boris Veldhuijzen van Zanten wrote an interesting article looking at and comparing the thinking patterns of successful and unsuccessful entrepreneurs.

The attitude of the failing businessman matched exactly those of my failing classmates, who would focus on short term problems and not the final goal.

When I trained to do a static parachute line jump, pretty much everyone on the course were motorbike riders, including the trainer. When it was explained to us how to avoid not ending up swinging from a tree, the analogy of two motorcycles riders was used.

They are both going round a bend with a tree on the outside corner, the first looking at the tree he wants to miss, the other looking at the point on the road where he wants to come out of the corner. Which one hits the tree?

My fellow masters students who kept focusing on the hurdles, without keeping their eye at the end of the track, were the ones who fell.

Is the way you think, your attitude, the real barrier to your progress?

Tuesday 24 April 2007

Top Four Blogs

A personal round up of the top four posts in the techyoung's sphere:

1. Coding Horror looks at open source market and makes some interesting conclusions.

2. What has Scobleizer been looking at? Google History knows.

3. The Worse than Failure are running a different kind of competition.

4. YuviSense has been sick But he's a better now and made a post about what everyone has been talking about.

Monday 2 April 2007

Pays To Be Polite in Business

Presentation, from the suit/clothes you wear to how welcoming your offices are and the look of your website, are often carefully thought about by small businesses.

But how often do people take stock of they way they present them to clients, and potential clients, directly?

When you are in a rush, or have been putting in ridiculous hours for a deliverable with a deadline coming up soon, how polite are you when you pick up the phone or bump into a former client unexpectedly?

Being polite, and if possible, pleasent, will often have just as much, if not more, of an impact on the persons image of you and your work then the work you actually provide!

This may come as a shock - surely providing a need and adding value is what is most needed? Certainly; what you have to realise is that value and presentation should be given equal importance. They are not either or's.

Of course you must offer value, and it should be central to your business/organisation. If you customer is king, adding value to that clients life or business will naturally follow suit from that. But giving top notch value is no excuse for being dismissive or unhelpful.

I remember sitting in a dank tiny room in the last year of my first degree phoning round for information. I had a business idea I wanted to start and was looking for ways at vetting potential employees. I phoned up a business that turned out only took on clients who needed this service for a whole HR department over and above the 50 employee mark. They were very kind, told me that they wouldn't be of much help, but then preceded to spend half an hour on the phone with me.

I left that conversation not only knowing what needed to be done and how to do it, but thinking these people were top class gentleman. If this is how they treat people they are not going to do business with, I envy the excellent service their clients get.

Each person you come into contact with might one day become a customer, or know someone who will. If even the receptionist is rude, than that is a lost relationship, a lost sale.

The secret millionaire is a perfect example of this. A millionaire goes undercover and 'roughs' it out for ten days before deciding whom to bestow a lot of money on. Now I don't want to make comment on the show itself; i'm too busy too watch it. However it does just go to show that who you are speaking to may not be whom you think. They may in fact end up being a client, if you are nice enough.

So remember to put your clients at the heart of any strategy, any new initiative, and make sure you smile as you do so.

Friday 30 March 2007

Put People First in Business

Businesses are made of people. People do not do business with an organisation, they do not buy from a brand. They do business with other people. Now are you reading anything you don't know? No. Nothing. Not a zilch. Of course you do business with people and any good manual will tell you this.

But you will be amazed at how many people out there don't realise this. They think about internal processes, they think about marketing strategies, they think about company policy and how smelly that person next to them is. What they don't think about is the raison d'etre of their being, their sustenance without which they would wither away. That is the people they serve.

Whether it be in the private or business sector, organisations would not and often end up not existing if they do not meet their needs of the individuals that they serve.

It is to this aim, this one and single aim, that all work should be done. This does not mean provide work unsuited to your talents or abilities. This does not mean service work that is below you target clientèle.

This does mean remember who puts the food on the table...and that wide-screen television on your lounge wall....and that Jaguar out in the drive way....A smart person like your self gets the point.

Everything should be centred around their needs. Processes should be streamlined to give the least hassle to your customers, staff should be singing off the same hymn sheet, and products should be placed on the market on value, not price (the only exception to this is if the value you bring to your client and price are one and the same).

To often a company or organisation could be providing a much needed service or product, and the only thing stemming the tide of happy customers is poor customer service and general lack of etiquette.

How would you treat your friend? Would you not want to tell them about this fantastic product that meets their needs? You wouldn't be rude, abrasive, aggressive or just down right rugby scum pushy. Politeness, an at-ease attitude, coupled with confidence in your range of products, are the winning solution.

But what about repeat sales? A second category of company falls at this hurdle. This is the company that has its products tip-toe, it's customer service friendlier and more accommodating than Wooster ever had in Jeeves, and yet its after care is as rude a bear wrestlers arm pits.

Are you getting the product to the customer on time? Is there a lot of form filling and bureaucracy taking place? How do you handle problems; timely and without hesitation or slowly with lots of grumbling taking place?

Thirdly what thought is given to the customer once they have become a fully fledged member of the I-BOUGHT-FROM-YOU club? Do they get a get a club tie? Companies pass the first two hurdles, but drop at the third. After sales service and communication is integral to maximising the trust gained in your company by the customer, and also by keeping them up to date with what you are doing, what new products or services you have and how you could meet some new needs of theirs.

The question is, do you dump em and leave em, or, like a proper Romeo, do you keep them sweet even after the initial romance had died off? Repeat sales are integral to almost every business. Someone who buys only once is an indication of something having gone terribly wrong. Be nice. Don't ignore them after the one night stand. Send them a letter, even if you know the occasion was a casual one.

And remember, business is based on people. Play to that, and everything else will follow.

Table Of Contents

In the voice of usefull information it is I write this post.

Programming is the name of the game. However there are often those nigley jobs that have to be done. Those secondary, even tertiary tasks that are small, unlikable and unavoidable.

It is in this manner that I hope to make the lifes of everyone who has to write a report that bit easier.

The contents section at the beginning of any report is always best left done to the end. Before i knew this feature of Word, I hated doing this. Every section removal, chapter addition or page change would lead to a slog to the contents section to make sure that everything else matched.

Alas it was pointed out, as is now to you, that Microsoft Word has a nifty feature of generating Table of Contents automatically for you.

Here's how you do it.

Step 1 Go through your document and give each chapter heading you want to appear in the contents a style format h1. Thats right, select the text and go to styles. From there just chose h1.

Step 2: Now inside every chapter, if there is important bits that you also want to appear in the contents, select it and style it with the h2 format.

Step 3: At the page you want to insert the table, choose Insert > Reference > Index and Tables. Click on the Table of Contents tab and then click OK.

Step 4: Edit it to your hearts desire. If you had made changes to the document and the contents is not reflecting this, press F9 for options on updating and editing it.

There you have it. My first usefull information post. I had to give in a report today and this was most useful. Now for you rascals who don't know this get back to work and give me ten lines.

'Insert > Reference > Index and Tables'
'Insert > Reference > Index and Tables'
'Insert > Reference ......'

Lift off Into IT

Flying, I wonder what would make this blog unique. What unique topics could this cover? Software Engineering, algorithms, design, coding standards, best practise, management, development?

Alas they have all been done before. But making my big splash (and do realise I am still just launching of the dive board) will not happen through a pro longed conversation on some pithy points, but looking at the full spectrum that makes up the software development process.

Now now before I hear shouts of 'what ho jimmy that has boat allready sailed', I must counter with a powerful left hook that would make Gordon Brown spasm with envy.

Its not what you do, but how you do it. This blog intends to bring to the masses news, tips, advice, discussion and gossip of the IT world in a new voice.

Now friends reading this will go WHAT! Not that manky, croaky, ruffed by larger, picqued by gin and thoroughed by early starts and late nights voice emenating from a throat that rumbles in such a way to leave women and men alike quaking in the furrows? Surely not?

Well... no. This is not a pod cast and thus my wonderous voice does not carry well over the written form. There are born writers, and born speakers. This will be a test (and ok ramble) to see which am I and what can be done via this median.

My voice will be; the voice of reason, the voice of dreams, the voice of usefull information, the voice of hmm? and the voice of what!

Hello world!

The title of this first post, supplied by a friend, is fitting. As a programmer I get the irony, but for someone dive bombing for the first time into the world of blogging it is also a fitting mantra. The large kid running up and flying through the air, holding his knees in his arms as he prepares to soak all those unfortunate enough to be in the vicinity, would with pride shout ‘Hello World!’ before making the plunge.

Here I am, hoping to make the plunge, and get a few people wet at the same time….