For example consider two different applications for making an existing business more successful. The first case is a hotel, where the operator would like some software to manage the operation of the hotel and eliminate paper. They need to inspect rooms, keep track of lost items, collect complaints, keep track of needed repairs, and manage inventory. The second business is an insurance broker that sells liability policies to professionals, like therapists and counselors. They will be writing policies, answering questions, providing quotes, sending out notices, and tracking leads.
In both cases there will only be a handful of users for the resulting software which means you can train the users on how to use the software. Neither is like an online banking system where thousands of bank customers will use it and there's no way the bank will show their customers how to use it. Since both have similar complexity in terms of the different data and tasks, you might think they will require similar time to develop. But that would miss the extreme set of challenges that the hotel system presents.
In the hotel situation, the users will be manual laborers where the product is a clean functional room, and the data is only there to help make them more efficient. In the insurance business the users will be using a computer all day and the product is the data that the software keeps track of. Normally people assume that because the data for the insurance broker is so much more important than the data for the hotel, that the hotel application will be easier to develop. The importance of the data makes no difference to the complexity of the user interface.
The hotel software might need to run on a handheld device, of which there are several choices. Each will require a rewrite of the user interface. Each type of handheld device has different ergonomic characteristics that will affect how well the device works for the data collection task, so the hotel operator might need to experiment with notepad, pocket PCs, and iPhones to determine what works best. Large amounts of the hotel data can be entered incorrectly and the hotel operator will never know, and if that happens the whole investment in the software will be a waste. For example, if the house keeper enters that they found a lost phone charger in room 202, instead of 203, where they really found it, the owner of the phone charger will not recover it and nobody will know why. More importantly nobody will recognize that the user interface where the operator selects the room is a source of error and needs improvement. In contrast, if a payment is credited to the wrong customer in the insurance application, this will easily be caught by the customer that paid but didn't get the credit. By reconciling with the bank, the money will be reassigned to the correct customer and the software developer can be shown where the user interface is causing human errors.
The hotel software is much harder and very risky. The whole software investment might be a waste. The insurance broker software will certainly work and will undoubtedly improve the operation.
A serial entrepreneur, always fascinated by solving complex technical projects ranging from small to enterprise.