The head of the outsourcing department is always aware of all incoming inquiries on web development. His competence includes tasking, key specialists supervision, and also allocation and planning of resources. The head of the outsourcing department always keeps abreast of the developments and coordinates the execution of contractual obligations on the project. Therefore we decided to talk to Vitaly Hornik – the Chief Operating Officer of the Delivery Department in the XB Software – web development outsourcing company with questions critical for customers.

– Let’s go straight to the point. What is the competitive advantage of XB Software as compared with other outsourcing companies?

– First of all, it is in the Webix JS components library and some other products. They form the basis of all web applications developed by us. Nobody knows this library better than us, consequently, nobody will make an app with the use of such products as better and cheaper than us.

– Does it mean that the customization of our products is the most popular outsourcing services that XB Software renders?

– Right, most of our projects, one way or another, are based on our products. And though now we have several large projects that do not involve the use of our products, it is due to our components that we’ve been found. Besides, if we consider the previously implemented projects, it is our components that influenced the customers’ final decision in our favor.

– Many IT companies claim they apply Agile methodologies in software development. For example, Scrum or Kanban. As practice shows, Agile remains only a buzzword, while actually it is either selectively applied or isn’t applied at all. Especially when an urgent release is planned. How is work organized at XB Software?

– Agile is a general name of the huge set of flexible methodologies. And when people say Agile, it means actually the same as if we said that we use some front end framework and wouldn’t specify which one we use. First of all, Agile is a PR stunt because any methodology or framework brings limitations. Of course, we would like to follow a pure Scrum model as it is put in theory, but the theory always consists of certain idealizations. And as far as we always collaborate with our customers while working on the project, not only we have to follow the chosen direction, but also the customer. It should be remembered that Scrum is only a tool, but not the goal. Therefore if Scrum doesn’t work in a pure form, it is adapted to the project needs. For this reason, there is such a huge number of Agile methodologies. The statement that the company works under Agile only means that the company adapts much better to the needs of its customers in the course of work. As opposed to Waterfall, where we define in advance where to run and run, Agile says: yes, we’ve defined where to run, but we will constantly look back to be sure we run in the right direction.

– What the client is usually concerned about when outsourcing web development of his project?

– As always, he’d like to pay less but get results faster: “I want it now and free of charge”. But it relates not only to software clients but to all clients in general. Me too, when I buy something at the market: I want this something to be better and free.

– What are the most frequent problems that arise on our side and on the customer’s side at different stages of work progress?

– Let’s consider all project stages one by one. Initiation of the project. The customer came and said: “Hey, guys! I have an idea, let’s do it!”. The first problem is that often the client doesn’t describe his idea and suggests to arrange a Skype call to discuss everything. The matter is that when the client describes his idea in writing, he structures his thoughts and takes a detached view of the idea, its viability, feasibility, and necessity. If the description of his whole idea fits into an A4 sheet and consists solely of chaotic thoughts, and he asks for an estimate, it becomes evident at once that the client has no clear vision of what he wants. So, it is better not to work with such a client. Sometimes the client doesn’t need even an estimate. If that is the case, such a project is considered to be a startup that can fail at any time. We had clients who could tell nothing in the beginning, and then, little by little, their ideas took shape. But we are always ready that once such a client won’t get investment for his startup and will tell us: “Thank you, guys, bye”.

– What problems arise at the planning stage?

– At this stage, we have to allocate what we do, what tools and frameworks we use, what milestones and deadlines we have. Disregarding the methodology under which the project is developed – Waterfall or Agile – it is necessary to clear up where we go to understand when we come. If you start a project and don’t know when it is finished, the project will eventually die because of its uselessness. Therefore it would be cool to understand at a planning stage clearly that, for example, the user profile will be ready in a week, synchronization with Google will work in three weeks, and the whole project will be completed in 5 months. When we have such information, it is always possible to get a future direction.

– What most frequent problems arise at the stage of project implementation?

– The problem we have here is to make the client check out what we do. Quite often there were cases when the client said that everything was good, paid money, and didn’t even have a look at the result. The client expects that we’ve implemented the project as he once constructed it in his head. While the difference can be very big, because he translates his thought through the words or text to us, and our business analyst takes these words and builds some image in the head, which he, in his turn, brings to the developer who implements it, and then shows the result to the customer. The image that the customer had when he tried to translate it into words or text, and the image which he received, looking at the product, can differ.

– Like in the broken phone game: the essence has changed before it reached the developer.

– Exactly. Of course, the problem can be at any stage. According to Agile, you should constantly demonstrate the customer the accomplished results. He should look at the results attentively and tell you: “Yes, that’s exactly what I wanted.” It is also important to be not in a hurry to implement the project. Implementation is only a third or a quarter of the time that has to be spent on the project if you do everything correctly and competently. In the case of a startup, implementation takes almost all the time, therefore the probability of startup success is one out of ten. If the client is ready to get rid of his money at once, then you can get down to the startup implementation in accordance with the scheme that was born in his head. In this case, the customer takes responsibility for his risks. And if the client understands that he pays to receive an excellent result, it is necessary to discuss in the very beginning what he wants exactly, create mockups, design, and only afterward – start implementation. Well, at the implementation stage it is also important that developers shouldn’t be in a hurry and should understand clearly how the project will work. Then they will eventually construct the good architecture that won’t have to be polished by new features the customer was not aware of. Usually, the feature that wasn’t planned in advance, breaks the general structure of the project.

Example:

Imagine project development as the construction of a house. For example, an architect comes to the foreman and says: “Take a look, we need to build such a house.” And the construction was started. Later the customer looks at this house and says: “Let’s move the rooms like this… here we will add a superstructure… let’s also make a gym in the cellar and a pool on the roof.” And as a result, the house turned out to be somehow crookedly erected. The same situation is with web projects: the aggregated changes, new features added to the project compel to do refactoring. The established pool on the roof of the house make it necessary to strengthen the walls, bearing beams. Perhaps, it is simpler to demolish such a house and construct a new one instead.

– Have you ever had to make a project anew?

– No, we haven’t. That’s pretty expensive. After all, customers hope to get a workable product in the end. Therefore it is necessary to check out that the developer has the skills necessary to implement the assigned work. For example, if some new framework has to be used or, in order to implement a new feature, we have to connect something we haven’t worked with before, it is better to practice somewhere else, for example, on internal projects, but not on the customer’s project. On project closing, after we finished an iteration and provided the customer with a version – major, minor or intermediate – it is important that the customer tells us: “Yes, well done!”. Because he might not tell it, and we will proceed the wrong way. At this stage, it is important that our business analyst and the customer take a detached view of the project: “Do we make it right? Do we approach our goal or not?” On the planning stage, we set time frames when something will be implemented. And while working over the project, we have to compare our results with the forecasts to make sure they correlate. And respectively, correct either development or forecasts. Besides, is necessary to draw customer’s attention that he can get carried away adding new features, lose hold on reality, and forget about all the forecasts and his initial goal. There were such cases: you start to develop something in compliance with the agreed plan, and then the customer asked to add more functionality, and then even more functionality, and finally we got absolutely not the thing we expected.

The continuation of the interview can be found here.