Top reasons why simple software applications are a better choice

In the last post I talked about why making things simpler make more sense. I provided a reference from one of the book that I liked as well.

I have worked in software industry for around eleven years as developer of large scale application and consultant with various multinational companies. I am quite in agreement with the proponent of simpler and easier software development.
There are absolute reasons for an entrepreneur to decide on the scope of the project based on his own capability and of his team . A well designed simplified scope can help the entrepreneur to ship things out early as mentioned by Seth Godin.

Seth Godin: Quieting the Lizard Brain from 99% on Vimeo.

By shipping early,however I do not mean to ship in hurry and with errors. When the scope of the project is limited and the boundaries are known, it is possible to have small changes to development without affecting the overall timeline and cost of the project.

Here are some of the reasons why I think doing things simple and shipping them fast should be the chosen method.

  1. Keeping the things simple means keeping the cost down
    • Cost of hiring more employees
    • Cost of performing testing
    • Cost of complexity
  2. The lesser number of features you provide in your application, the lesser would be your costs. These costs include

    The cost of complexity can be very high especially during maintaining the software, while releasing patches and performing upgrades.

  3. It helps to avoid inordinate delays
  4. If you have not decided on the scope of your project or if the scope is very large and complex, be aware that delays are going to happen . Sometimes the requirements are complicated enough and hence creating a complex application may be necessary. The outcome of higher complexity however is more failure than success. If we consider software as a machine and if a new part is to be introduced the machine then the other parts will probably need to be adjusted. The more the number of parts of machine the higher the failure. With better design it is possible to minimize these failures but better design takes a lot of time.
    In conclusion, complex machines/software are difficult to design , more prone to failure and delays.

  5. Expertise is needed for maintenance and operation
  6. A more complex software requires higher maintenance to run smoothly. The complex applications that talk to each other sometime stop talking for a very small reason. Experts who understand the intricacies of the system need to be hired. Hence the customer that buys the software ends up paying huge costs for expertise.

  7. More complex application means larger shipping time
  8. If your company has the luxury to be the first in the market, you can afford some slack but when you are competing neck to neck with your competitors, it is good idea to start capturing the market by starting early and shipping fast.

  9. More TCO for the customer
  10. TCO(definition) means total cost of ownership. It is calculated by adding all the cost of running an application. It includes training cost as well. In my experience, it is easier to learn applications which have less features. It is quite costly to train the workforce when the application is complex. Not only the training but also the support after training till the end users are comfortable is high as well

  11. A please all application is not possible
  12. I have seen companies that have tried to incorporate multi-industry practices into one so called giant software that caters to all needs. In the long run however the expectation of customers in various industries vary so much that it is not possible to meet all of them without bloating the software.

All these factors assume giant proportions when numbers of application user increase with time. Complicated applications takes more proportional resources to handle than a simpler one.

So what exactly is the answer that balances the complicated business scenarios with the simplicity required in application development. I have some examples.

WordPress
WordPress in its basic version does what a basic CMS is required to do. But does it do everything you want it to? No. Why? because of the simple reason that it cannot cater to all the requirements of its users. To do that it has provided features called as plugins, hooks , widgets, themes etc. You can integrate your additional functionality using these features. Does it affect your basic wordpress feature ? No. Will your blog be affected when you remove these features? Not much.

Another example is Firefox, which provides add-ons to add to the existing functionality.

I donot say that applications can always be simple but just that approach to application development should be to develop simpler applications.

So let us summarize.

  • Complicated applications increase all the costs associated with them
  • They are difficult to manage
  • Complicated applications creates more confusion and increase end user training cost

In the end watch a video that inspired me to write this post.

About The Author

Posted in Categories: Management
Tags:

Your comments and replies

  • Great post buddy. What you have stated above does make sense to all of us. Simplicity is required in each and every thing but you also have to agree with the fact that if requirements increases or if there are more customizations to be made then simplicity can be compromised. You need to have an excellent talent pool of developers who can think out of the box to provide the same within allotted time. Certainly cost will increase if these people work day and night to embed that simplicity. We are also facing the same situation.

    I remember I was given an interesting example of Bill Gates, where he had told once that Windows should be made in such a way that even most foolish person should be able to operate it with ease and confidence. Don’t know how much truth is in the statement but you have to accept MS Windows as an example of a big software with great simplicity and higher user-friendliness.

    What say ??

    • Hi Aswani,

      When I said simple it meant lesser features as well. Windows scores well when it comes to usability but most of the people do not understand what 80% of the features do. A simple software is with less features, uncomplicated menus and clear navigation.

      Thanks for your comment

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Enter your feed Address in the field below

Comment Juice: Get some juice with Pizza