CIO Applications, a technology magazine, has interviewed Ilya Feigin, CTO and founder of WaveAccess on the company’s response to leading trends – in terms of technologies and project management methodologies.
CIO Applications, a technology magazine and a prime platform for CIOs to discuss innovative enterprise solutions, has interviewed Ilya Feigin, CTO and founder of WaveAccess on the company’s response to leading trends – in terms of technologies that are actively used by the development team, and in relation to project management methodologies. Here we publish an extended version of the interview.
What makes software development companies stand out
In my opinion, one of the main challenges that custom software developers face today is the need to continually monitor, master and quickly implement constantly updated architectural solutions, practices, and technologies. It’s important not only to know that the technology has appeared, but also to understand when and where to use it.
Companies that do not do this are becoming less competitive. Either they cannot take on the tasks that the client sets before them, or they lose in price competition with more flexible market players. And sooner or later they go out of business.
Ilya Feigin, CTO and founder of WaveAccess
For example, when we were once competing for one large order, the main criteria for choosing a contractor were competencies in the microservice architecture implementation, knowledge of BDD practice (Behavior-driven development), the ability to effectively use DevOps and the presence of feature teams. We appeared to be the only candidate who met all these requirements, so we got the job.
And, although many companies have realized that monolithic applications are a thing of the past, and microservice architecture is no longer a fashionable trend, but an industry standard, not everyone understands that with a simple partition of the system into components that call each other synchronously, blocks that slow down work. To ensure that resources do not stand idle, the interaction of the components must be asynchronous. This approach does not block resources, makes the application more scalable and enables it to withstand heavy loads.
As for BDD, the implementation of this approach is, of course, an additional effort compared to the classic development, when technical requirements are described, and the programmer implements them in accordance with his understanding. It will also be fair to say that few development companies have mastered BDD to such an extent that all team members can effectively use the tool.
BDD means that a programmer, business analyst, and client receive a single, understandable, human-language description of a business requirement formalized according to a certain standard. And in this case it gets much harder to find yourself in a situation where each of the participants had their own understanding of the task, and the result does not correspond to the output expectations. So, if the project is large and it employs a large team of specialists, then the price of the error is too high, and BDD more than justifies the costs.
Practicing DevOps is another competitive advantage for a company working in the custom software development market. It allows you to fully implement continuous integration and continuous delivery – this is especially convenient when you have several environments, and new functionality becomes available at the same time in all of them. But in order to effectively use DevOps today, you had to “hop on this train” three years ago. Serious technological changes occur every 2-3 years, so it’s critical to always keep abreast.
Another extremely important criterion for maintaining competitiveness for companies such as ours is the ability to offer the customer the most cost-effective way to implement the project. In the face of constant business requirements for cost optimization, development costs should be managed in the most reasonable way. We at WaveAccess do this in several ways:
We thoroughly study the client’s business task in order to offer the final solution using ready-made libraries, components or even platforms
We balance many parameters: paying capacity of the market where the product we are creating will be sold, development speed requirements, etc.
We effectively manage the development, adjusting the cost through the use of hybrid, partially remote teams (they can be located both in the USA and other countries), involving rare specialists only on demand, not hiring them for a full-time job
WaveAccess's approach to development
Our main task as a contractor is to understand the business purpose of the system being developed. Once this happens, the work becomes much more efficient. We can put ourselves in our customer’s place, respectively, we can offer meaningful solutions, including those that go beyond the scope of the technical task, and increase the potential of the entire project. One of the most effective life hacks when working according to the Hybrid Team method is to arrange live meetings. Our employees come to the customer, and customer representatives come to our offices.
The level of cohesion is greatly enhanced by conducting joint workshops. This creates an atmosphere of mutual understanding and support in the team, which perfectly affects both motivation and outcome.
A good practice in terms of developing a model of interaction, which we often resort to, is to start with the implementation of an independent and not too large-scale piece of functionality. This may be the development of a module, screen, component, service. As a part of this first joint project, we build communication, choose a convenient communication and reporting schedule for everyone, we work out what we do within the framework of one sprint, and agree on the use of various project management tools. After the successful completion of the stage, we begin to work on several modules. In parallel, we analyze the architecture of the system and offer opportunities for improvement.
As for the reporting system and the possibility for the customer to control the development process, we always use a common project management system and carry out continuous integration so that the client always has access to the source code and the current state of the project. So, they are always aware of what is going on. This practice also reduces greatly the cost of fixing defects or inconsistencies by identifying them early.
There is also another way to optimize project costs. There are typical areas of development with many professionals who are easy to find in any local market. For example, Java developers are in demand in almost any modern project and often work for our customer already. We usually expand the customer’s team in the areas of architecture building, custom user interface and DevOps practice. These are expensive and rarer specialists whose services can cost an order of magnitude more in the local market.
In addition, in some areas, such as architecture building or Machine Learning, our company has truly unique specialists. An independent search for such professionals by the customer will not be cost-effective at all.
You will find the second part of the interview on our blog soon. Ilya Feigin will talk about the actual role of customization in the product life cycle, and unveil what differentiates WaveAccess from its peers.
The original text can be found here.
Let us tell you more about our projects!