Tasos Makris, IT Director, Gourdomichalis Maritime, focused on the “Software Quality in the Maritime Sector”. Without any doubt, he said, the quality of software on board vessels needs improvements: less bugs, easier to use, easier to learn, easier to remember, preventing errors, help stored locally on board, better facilities to report errors. Mr Makris noted that the advances made on the maritime communications and bridge equipment during the last decade, have not been matched so far by improvements on the on-board software. He referred to a research conducted by AMMITEC among its members which gathered the 15 most important guidelines that apply to maritime software with the aim to enhance quality. Concluding his presentation, he informed the delegates that AMMITEC intends to start a campaign to raise stakeholders’ awareness of the benefits of quality software onboard and ashore.
Traditionally companies buy software with the hope to organize better their operations and take advantage of the data they collect and also improve productivity. However, without any doubt, the quality of software on board our vessels needs improvements. The advances made on the maritime communications have not been matched so far by the on board software. Therefore, AMMITEC intends to intensify its efforts and start a campaign to inform developers and Maritime companies alike of the benefits of Quality Software on vessels and ashore.
In AMMITEC, we request the immediate implementation of a FORUM on the developer’s official site. The Forum must be at the disposal of all Registered Users and allow the dialogue between the users and also between the users and the developers. It should also allow the upload of screenshots & videos which accompany improvements or solutions to well documented problems.
Features for Quality Software
Functionality and correctness is the conformity of the software with actual requirements and specifications. When / if the software is tested against the specifications given by the vendor, it should be found in full agreement with them. In case of disagreement, the vendor is required to comply fully with the specifications.
Help should be:
- Online (for fast access). It usually contains the manual
- Context sensitive (for precise help on the topic the user is currently interested in)
- Should have a “search” function (for example “create new leg”)
- User Editable (allows the user to add personal notes)
- Should contain FAQs, pictures, diagrams & video
- A Tutorial (or a CBT or a Demo) should be available for each application. Absolutely necessary for Vessel Applications
Good support is essential to a good user experience. Effective support should have the following characteristics:
- Continuously improve user’s interface and documentation, based on customer feed
- Continuously improve / enhance FAQs List and publish them
- Customers should be encouraged to look at documentation: Help, FAQs, Forum etc. before calling support
Support is not just a technical problem. It is basically a communication problem with two faces:
- The user fails to describe exactly the problem with the software and what’s more the context in which it occurred.
- The designer/programmer fails to understand the importance of the problem, mainly because they lack the business view of the user and they think that the users exaggerate or they are weird and capricious.
Usability is the degree to which software can be used by specified consumers to achieve quantified objectives with effectiveness, efficiency, and satisfaction in a quantified context of use. User interfaces are the only visible parts of software according to the viewpoint of user. So, simplicity, taking less time to complete a job and fast learnability are very important. In short, principles like “Don’t Make me Think” & ”Don’t Make me Click” should be the guiding principles of the user interface.
The user interface must be designed in such a way, so as to guide the user to ONLY use the correct functions, while any incorrect options should not be possible to choose. For example, saving without having completed the mandatory fields should be impossible, deletion of records which participate to calculations should be prohibited, etc. Usability is not just another cost center, it can be a profit center too as it aims to reduce training to zero.
Accessibility refers to the design of products, devices, services, or environments for people who experience disabilities. For effective error/ bug handling:
- Programs should report errors in Plain English language.
- No jargon is allowed.
- It should notify both the user and the developer.
- It’s not the end users’ responsibility to report bugs, but giving them the option to report bugs can help software to improve.
- Recovery from Errors is an extremely important characteristic of software (especially for vessel software), and it should try its best to guide users to recover fast from errors without the need for human intervention.
Manuals: user documentation is considered to constitute a contract specifying what the software will do. Tutorials are an absolute necessity for vessels and an Index of Tasks is also necessary.
Performance is mostly about response time of the software. This response time should be within acceptable user limits (e.g. max. a few seconds), and should not increase if transaction load increases. Efficiency must be supported with resource utilization. Optimal source/performance ratio must be aimed.
Flexibility is the ability of software to add/modify/remove functionality without damaging current system. Extensibility is the ability of software to add functionality without damaging system, so it may be thought as a subset of flexibility. The vendor should provide proof of this capability.
Configuration is the normal set-up of the software, such as parameters/user preferences, layout and naming of fields, and workflows. They are user defined and since they do not require changes to the source code, they form a good feature of a program.
Customization, on the other hand, requires changes to the source code and usually implies deviations from the official specification in order to meet additional/different requirements of a company. The problem usually is that customizations are performed under heavy pressure and in short time limits that affect badly the quality of the code and leads to problems with configuration.
Installation is easy and is all inclusive: Installation on a vessel should be a well prepared and organized job. For example, no external libraries or DLLs should be required.
Version control and formal user update: Users should be updated as soon as new software release is installed. A description of all the changes must be supplied and the e-manuals must be updated asap. A detailed Log of changes is kept by the developer and the IT Manager. All upgrades should be first implemented in a test environment, tested and once accepted, migrated to the “live” environment.
Security: the data exchanged via email or other non-encrypted way between Vessel and Office, must be encrypted. Direct access to the Data Base must obey the Security Laws of each company. Data exchanged via a VPN channel, is considered secure at the moment.
Communications between Vendor and Client: Clear-cut instructions should be set by the Vendor describing the methods of communications whenever any support is needed (i.e. points of contacts for all modules from both the client and the vendor). Set procedures should be followed from both parties else control and monitoring will be lost, as anyone will be able to contact whoever they believe is appropriate. The Vendor should also comply with client’s communications policies (e.g. who is allowed to submit tickets, communication language should be that of the Client, etc.).
Above text is an edited article of Tasos Makris presentation during the 2017 SMART4SEA Conference & Awards
You may view his video presentation by clicking here
The views presented hereabove are only those of the author and not necessarily those of SAFETY4SEA and are for information sharing and discussion purposes only.
About Tasos Makris, IT Director, Gourdomichalis Maritime
Mr. Makris holds a BSc in Physics and a MSc in Computer Science and has worked in the Health sector in the UK and in the Greek Industry Automation Sector before joining the Maritime sector in 1993. He is interested in Human Computer Interface and Software Usability principles, as a means to improve the quality of software and (therefore) human productivity and quality of life on board vessels. He is a founding member and member of BOD of AMMITEC (www.ammitec.org) and a member of the Usability Professionals Association (UXPA). Specialties: Project Management, Maritime Systems, Satellite Data Communications, Maritime ERP, HCI Design, Usability Evaluation, UX, Simplicity.