If you are a client of a software house, e.g. like us, you probably happen to have some difficulties with accepting implementation costs of programming commissions. IT company, that will provide you with development services, seems to demand truck loads of money for small modifications. Do you know why you have such an impression? Because everything that they make is some kind of magic - the nature of problems, that are solved there is often unclear and requires specialised knowledge to be able to understand and accept it. That’s why I would like to break the spell of the most frustrating topics in software house - client line.
From the article below you will also learn how we - eEngine Software House - approach vital issues concerning business collaboration with our clients. Additionally you will get to know our daily work for behind the curtains.
Nothing is permanent but change in IT business
In IT business there is only one permanency that is consistent with our work - it’s a change. Web browsers continuously update. Services constantly undergo modifications. There are new tools created… and new gaps in IT security applications discovered. Everything that happens in IT world is subject to continual transformations. Sometimes they are bigger, sometimes smaller. Even if from the user’s point of view nothing changes, it doesn’t mean that nothing changed.
Sometimes it happens, that actualisation of our web browser may have influence on functionality or service display. What if in the meantime Google may expect from websites something different than being just RWD or relatively fast loading? If you sometimes happen to put up auctions on Allegro then in a way or another you can experience, when this web portal changes something in API methods and because of this - you have to modify your website in step with it. And if for any reason - you have to have your webpage integrated with your facebook feed, then from time to time it happens to stop working. The reason is simple: Facebook is constantly changing. And so is the Internet.
I’ve only mentioned several examples that the IT world is always changing. Let’s imagine (and accept) that it applies to a lot of elements and processes that occur in this branch. Especially because it develops in an incredible pace: there are always new tools, new programming languages, new approaches to create software and maintaining it. This part of our reality is racing like crazy and it affects so many areas of human life, that there is no way to walk by this phenomenon of changes indifferently.
For that reason every website, online store, mobile application for smartphones or system connection integrator’s owner has to be aware that not investing into his webpage so that it could follow changes, sooner or later he will feel the consequences of not prospective thinking. It will translate to his business, that will start to earn less. Creating anything in the internet is only first step. Basically it’s the easiest step of all because the real challenge starts as soon as we have to maintain our webpage and make it profitable. There is no way to do so without constant development. It consists of money, time and human resources invested into making changes and error correction and optimization of our application.
As a software house we try to approach every (even the most irritative) issue openly and honestly that’s why I may sound a little brutal, but: Change or lose to those, who understand the concept of change.
In relation to the constant change in IT, web pages require constant adjustment to reality around them. It makes expand them, modify mechanisms and integrate them with other systems. This way connected vessels mechanism is created that is inevitably susceptible to any kinds of malfunctions. They will have some serious impact if the webpage owner decides to marginalise test influence, optimization and maintenance, that our programmers can provide his e-business with.
This kind of work should be properly taken into account in costs, that we bear in relation to web page development. The easiest way would be to count how much we earn thanks to our application and then make man’s come - allocate appropriate funds for maintenance. To visualize this issue in a not programming way - I will use a metaphor of a pro-athlete.
Imagine that your webpage is an athlete. Depriving him of a regular care of physical therapist (an IT company) and simultaneously putting him up for sports tryouts (online store is constantly selling, enhancing range of assortment and integrating with other systems) you expose him for a greater chance of contusions (malfunctions that destabilize web page functionality occur). I think I don’t have to explain, that it is the least advisable approach towards the “athlete” as well as your web page.
What I wrote about is a description of what happened to Nokia who in some point of expansion realised that they are no longer market leader - they missed the crucial changes that affected the smartphone market which in consequences led them to the place they are today. Finnish brand supposedly didn’t make any mistakes but for some reasons they lost in race to Apple, Samsung and other manufacturers.
The biggest difficulty in IT company - client communication
As IT company one of our main tasks in front of which we are put up by the clients is solving programming problems. Without any doubts I can state that this is the essence of our work.
Unfortunately, the majority of problems that we solve in order to understand them, require specialised knowledge from IT world and programming and analytical skills. Those are the ones that our clients often don’t have. On the one hand they don’t have to because if they knew how to create software then why would they hire us? But then… who would run their businesses.
Not infrequently our clients don’t entirely understand (and sometimes even seem to not want to) the nature of things we do. On daily basis of customer service we came across accusations that we intentionally mess up something in online store so that the client has to commision his software’s repair. And what is the worst (from this client’s point of view): we will be expecting to get paid.
This situation when something unexpectedly breaks, is often the result of the process of change in the whole Internet that was described above. Nevertheless, without any kind of client’s attempts to understand this state of affairs, the cooperation on development on his software will be extremely difficult. It would be a result of IT company losing as much energy to explain the nature of a problem as to fix the problem.
Software companies should be like sages that share their wisdom and skills. Exactly because the recipients of their services could get full spectrum and experience of what they are going to pay for. But there are two sides of every story. This person that “the sage” will be channeling his message to, has to be open-minded and eager to understand the nature of his problem. In addition there is an acceptance of what is the main task of software house - solving people’s problems. In this kind of work sometimes it happens that a programmer may require more time to analyze an issue or how a function should work - than to actually create something. Prepare yourself: for the whole time dedicated to analysis and coding the client is obligated to pay. Why? Let me explain.
Why is time the most important (almost)?
Time is one of the most important factors that regulate terms of cooperation between IT company and client. Next to our “know how” and people engaged to the project, it is the most essential value that we can provide our business partners with. As a software house we cannot produce anything tangible. Providing programming services we create something (software) that is hard to understand, see or even imagine on any field of abstraction (if you are not a programmer). Simultaneously this “something” translates into client’s business allowing him to generate bigger income.
That is why the time factor is the most relevant from our point of view in face of what we have to do for the day, week or month. The time is limited and so are our human resources. At the moment when client realises how relevant it is, he is able to accept that while creating something for him within time framework, we devote to him what is our most valuable asset.
It may sound a bit philosophically so I will try to explain it in a more down-to-earth way. If the service is supposed to extend in terms of new functions, operation optimization as well as effective maintenance and introduction of changes (I mean like time saving in technical services), then we have to invest in it appropriate amount of time. The time costs because it is inseparably connected to human work. And it is the biggest quality that we can provide our clients and their services with. That’s why for “the time” that we devote to creating something our clients have to pay. Implementing various commissions for free because the client thinks it should work this way, would make us have to bear the alternative costs: what we would be able to do for someone else meanwhile, for someone who understands processes within which internet functions.
Business is business, it has to be profitable - everyone who runs a company knows it. That’s why we have to choose clients that understand IT branch specificity and accept the fact that at the end of a month they will get an invoice for time and programming work. It seems to be obvious but believe me - there’s no such thing as “obvious” in IT. Many clients still seem to be thinking that changing something in their web service is going to last just few short minutes. Reality is different - and to face this issue more closely I will give it much more space next time.
Mission Impossible: how to break the spell of IT business
Clients often see us as “magicians”. They come to us with certain problem and we (with our programming magic) provide them with effects they expect. Yet they cannot understand the nature of how something we programmed works. As a result they have tough time with accepting levels of costs of certain valuations. Being able to understand it (while being an non-technical mind) I would like to face this situations and in the following articles to face the biggest mysteries in software production in Software Houses as ours. I hope you will join me in this adventure.