We interviewed Oleg Svet, Chief Delivery Officer at Computools, a top 100 global outsourcing company according to IAOP offering custom software development to support fast-growing and well-established organizations around the world. The topic is the impact of software architecture on project development. Here is what he says.
Hi Oleg, let’s start off with some introduction, who are you, where do you work, and why are you into it?
Oleg Svet: Hi, talking about my background, I started learning programming in middle school and I am still learning it. Now I’m the head of Deliver and Technology department in Computools.
Initially, we started taking up small projects on the Elance and worked for different businesses. At that time, we were already looking towards outsourcing. That’s why we put a shoulder on a wheel and grew rapidly. As we were working on more and more projects, clients found us to be a reliable software provider.
Today we help worldwide companies and startups to meet the needs of tomorrow by developing world-changing products. We are always improving and expanding our solutions, that’s the key to our success.
Why am I into it? I don’t see my life without it. I love what I do, and I really love my team. Here everyone is truly passionate about their job. I think it’s really important.
Wow, that’s great! Well, speaking of architecture: are there any differences between architecture and infrastructure?
Oleg Svet: Yeah, there’s a little stir around it. Many engineers and managers confuse the architecture with the infrastructure. The reason is quite simple: generally speaking, this is because of bad decision-making during project development.
Let’s put it this way: any system has an infrastructure with a particular architecture. If we describe it a little bit technical, the infrastructure binds different system modules and enables the interaction between the outside sources, and the system itself, as well as ensures horizontal and vertical system scalability.
A good infrastructure is a “prerequisite” for app functionality, workability, and server capacities. From my experience it’s pretty easy to convert infrastructure issues into technical requirements, not to say that you can also often change them easily.
With the architecture, it’s a bit trickier.
Architecture helps to speed up development, while such factors as workability, performance and cost of server capacities affect software architecture to a lesser degree.
Sure thing, a good architecture requires more time, expertise from engineers, quality assurance specialists, DevOps, you know the list.
What do you think affects the development speed the most?
Oleg Svet: A lot of things. Judging from my experience it could be changes of the existing functionality, the size of the development team, changes in the development speed that occur as the project grows.
But for the most part, it all boils down to the team’s scalability. Providing a good interaction of external and internal teams is always a resourceful thing to do. Poorly managed teams are sure to reduce the performance and, as a result, the development speed.
Another thing to keep in mind is adjustability and predictability. Your project development may run like butter at one period of time, however, you should always plan ahead to establish a safety margin. You don`t – you risk increasing the cost of software development. That means you`ll need to start from scratch.
And what is the best-fit project solution then?
Oleg Svet: Well, it’s a double-edged sword. Any configuration setting has its limitations.
Building architecture that bolsters up the development of new functionality bodes no good for the project management while focusing too much on quick architecture solutions will burden your team performance.
Ideally, you want your team to develop and update the software product with minimal investments and good speed. That’s what everyone aims for, isn’t it?
What you need to understand is that every decision made about software architecture affects the business value of the product.
For the most part, it’s the Product Owner who defines the requirements for architecture development.
The expertise of the Solution Architect is also of paramount importance.
What should a good Solution Architect know to ensure good development speed?
Oleg Svet: Heh, a lot of things! A good seasoned Solution Architect should keep in mind many factors. First off, potential difficulties in product development, team size expertise and how they work as a single unit, expected project life-cycle, requirements for threshold loads and speed, deadlines, budget allocation.
For the most part, you should always find a balance between product development and product scalability, engineer`s performance and the whole team, project needs and availability of tech talent.
Your final advice for a good balance between architecture choice and project management?
Oleg Svet: I`d say when it comes to architecture choice, both the Product Owner and the Solution Architect should take the initiative. Their responsibilities are somewhat different, however. As for me, the Product Owner defines the optimal direction for project implementation; while the Solution Architect should allocate the resources wisely and ensure good communication within a team. If you have any questions regarding the impact of software architecture on project development, software development for any business, shoot them over to our guest or simply drop us a message at info@computools.com.