Simple 1 line answer: “Think as an end-user of your software.” Let me paint the picture first. You are a software developer, resplendent in the knowledge of the latest and greatest technology out in the market. You are highly valued in a development project and your skills are sought after. You start a project, understand…
The ONE thing that will make you a better software developer
Simple 1 line answer: “Think as an end-user of your software.”
Let me paint the picture first. You are a software developer, resplendent in the knowledge of the latest and greatest technology out in the market. You are highly valued in a development project and your skills are sought after. You start a project, understand the spec and develop it with “Gillette” lines of code. It comes back with 30 changes – do you ever see a pattern? Is it mostly usability issues?
I have developed software since I was 16 years old – my first being a little bob-sled game with chunky graphics on my shining new Sinclair – 32K memory and all, which got used up to load that one game! It was accomplished in around 1000 lines of code and it worked quite well – I enjoyed playing it! But when my friends came to play it they pointed out several things that I did not think of – why use the control and shift buttons to move, can we not use the arrow keys (I did not know how to program arrow keys so used the Ctrl and Shift keys); when the sled hits the wall can it not bounce back with lost points, instead of having to start over? There were other ideas but I was not paying attention – was upset that they did not like so many things
It taught me a valuable lesson – before I work on my next “project” I need to understand a few things early on. And I realized that the more specific I can get, the closer I am to home stretch. Till date I still use the same thought process whenever I have to develop software.
(a) Who is going to use my piece of code?
I like to understand the user base – are they mostly Accountants, lawyers, Marketing folks? Average age helps – people in their 50s are used to entering data in a different way than say, people in their 20s. Geographic information is important as well – how do they enter address information in the UK?
(b) What is the end user environment?
Mobile, office, Microsoft, OpenOffice etc
(c) Will my code be used by only 1 company or will the customer’s customer or supplier have access to that?
You may have to think about usability if the users are across different companies, Geographies, cultures etc
(d) Never make the mistake that a lot of IT professionals make – “Uggh…users are so…” (You know what I am saying – bashing the end-users). Most users are very smart professionals – they can be Operations managers, field operators, technicians, Accountants, para-legals – can be anyone. However…leads me to the next point…
(e) Do not assume that the end-user will know how to use your software – give visual cues, put some hints (tooltips, labels, explanations) – help them love your software!
These are some starting blocks and should help a developer to start thinking along these lines. In today’s software development environments designers and UX developers are already taking care of such end-user experiences. But when you are coding, try to think like an end-user. Look at the software as a whole (or the part you can touch and feel) – ask questions to your project manager if something is not clear (say that you want to make the end-user experience the best there can be). You will be able to create a richer piece of code.
There are Project Managers, designers, analysts, subject matter experts and other specialized roles in a project. But the final product is being constructed by a developer. It is an empowering thought and when as a developer you feel empowered, you will go the extra mile.
Roni has 16 years of experience in leading small to large scale IT projects for various markets. Roni successfully founded 2 companies spanning multiple locations and time-zones. He rolls up his sleeves and gets into software development anytime you ask him and database development is his passion – we call him “our sequel junkie”! Roni has a Bachelor’s in Engineering, his very valued PMP and is close to finishing his Global MBA from the coveted Warwick Business School in the UK. When asked about his personal life he says “We, my wife and 2 boys, live in the picturesque Hudson Valley region of New York. A Yankees and New York Giants fan, I also enjoy strumming my guitars every day, mixing recipes from different cultures when I get some time and hack away during an occasional round of golf.”