Software is a living organism

Osman CELIK
3 min readJul 17, 2017

--

For most people, the work is done when they develop the software they had in mind, so they also plan accordingly, but things don’t always turn out right. The reason for this is that software is a living organism.

  • New needs arise: Market dynamics, changes in user behaviour and the moves of your competitors make you realize new needs, which forces you to develop new versions.
  • Errors are detected: There is a need for an update for different needs to fix things like technology (refactoring or recoding) or deviation from analyses or to implement more productive ways.
  • Technology infrastructure is updated: The technology used in the development evolves, so you also need to keep your pace accordingly; whether it is the base technology itself or some third party tool or component, forcing you to update.
  • The need for maintenance: The most widely known reason for updates. Bugfixing and issues require the release of frequent updates.
  • Developers change: The team who starts the development is not exactly the same team who finishes the development. The lives of the developers affect the life of the software. Each new developer has their own style, which affects consistency.

If the software you need is not worthy of becoming an intellectual property or a revenue center, you should avoid custom development as much as possible.

So what should you do?
The answer is to seek solutions in other software products.

  • The world is now a product world, most of which employ the SaaS model
  • Total cost of ownership and operational costs are lower in the long term
  • There is a serious vertical know-how in the products that might give you a new perspective
  • Adapting to the standards for business processes
  • Reducing dependency on specific people
  • Eliminating certain operations

Even if you think that no product fulfils your needs:

  • It might be available under a different name or within a different product
  • You can combine various products to meet your needs
  • Your way of doing it might not be the best practice
  • Or, you just identified a pain point that no one has addressed yet!

If you decide to acquire a ready-to-use product, you should take care of the following points, especially for SaaS products:

  • Localization : Support for things like language, alphabet, date and time formats
  • Customization : The ability to customize branding, screens or flows provides you flexibility.
  • Rapid Development (Citizen) Support : The ability to have updates to be done by the business teams or analyst level profiles without IT resources provides you productivity and agility
  • Integration flexibility : You should be able to easily integrate it with your systems with the necessary interfaces and documentation.
  • Level of support : You should be able to get good support if you encounter any issues
  • Pricing model: If things turn out to be good on your side, you shouldn’t be punished with high pricing.
  • Security & Privacy : Data security and the vendor trust are important for your valuable business data.
  • Simplicity: Choose the products that meet your needs in simple ways. More features do not necessarily indicate better products.

Software development is very costly and time-consuming and you might consume an unexpected amount of resources. Think in product terms wherever possible.

--

--

Osman CELIK

Product guy and tech entrepreneur, 20+ mobility experience, father, motorcycle fan