Don't Build the Software, Let the Users do it
The Agile Zone is brought to you in partnership with JetBrains. Discover how to increase change awareness, code quality, and maintainability through straightforward code reviews, with a simple, lightweight workflow.
A while ago, a new hotel was about to start business in Lagos, and a software application was needed that will help to automate their day to day business activites, they tried to use different hotel softwares from different vendors, the problem was either the software did not suit their business procedures or not user friendly, so the idea of purchasing a hotel software was ditched and the hotel board decided they needed to build one from scratch, so my development team was called upon to build the software.
Now, building the software brought along two challenges, first, I was a novice when it comes to hotel or hospitality management and the second being that the time frame given for the completion of the job was short, given that my team and I had to learn more about hospitality management to be able to talk and develop in that domain, while at the same time build a well tested application and not just deploy a legacy software. But we have nothing to worry about, because the coolest part of being a software developer is that you learn the technicalities of a field when you develop softwares in that domain.
Since requirements gathering is always at the fore front of software development, we started by gathering the necessary requirements. Since the hotel board had hired a hospitality management consultant, she made our job easy by giving us first hand information, and sharing with us what we needed to know.
Good Communication skills are a must have for any developer that wants a successful career, because when you meet business people, your ability to communicate with them effectively will determine whether your meeting with them will be successful. The first rule of thumb is that when gathering requirements or having a software review, donot dominate the conversation, allow the users to do the talking while you do the listening, through this you can be rest assured that they will tell you all that you need to build a really great software application while at the same time you let them have the feelings that they are the one building the software. Develop a sense of humour and always try to create an unforgettable experience with any encounter.
When designing the User Interface, despite making it aesthetically pleasing and user friendly, always try and think of your users as novice and carry them along as much as possible. Most sofware applications fail in this aspect, by making their user interface very complex and unfriendly. Try to use UI controls, icons and colours that depict their operations, I could remeber showing the hotel front desk receptionist the UI of the application she would be using and she told me she would like all the vacant rooms to show green, the booked room blue and the ones out of order red. Since you are not the one to be using the software, while following standards, try as much as possible to seek the common users' opinions about the interface and dont force it down their throats.
And in the end you have a great software that meets the requirements and everyone is satisfied.