Who is an architect?
An architect in IT (technical leadership) is a high-level developer who deals with global issues in IT projects. He immerses himself in the customer’s business processes and helps to solve his tasks with the help of technologies, and also determines how this or that information system will be arranged.
Such a professional needs not only to understand individual subject areas, but also to see the whole process:
– Statement of the business problem.
– Development, including programming, preparation, storage and processing of data.
– Deployment and support of infrastructure.
– Analytics and maintenance.
This means the ability to put yourself in the place of any specialist or team in the development life cycle, to understand the current state of the systems from within, to identify the mistakes made, to formulate goals. Sometimes – to carry out surgical intervention personally.
The path of professional development from developer to architect takes a long time – usually several years. For this, the developer needs both practical skills and knowledge of the theory, which can be confirmed by international certification.
More than 5 years on one project – routine or an opportunity for growth?
A few years ago, we began work on a large medical IT system for a foreign customer. There were certain problems in this large-scale project:
– limited access;
– unstable prod;
– incredibly stretched sprints and long coordination.
“It's time to upgrade skills”, – one of the leading developers Aleksey came to this decision in order to overcome the listed difficulties and better understand the system.
Alexey shared his experience on how to start training, what certificates it is important to get, how and why to do it.
Step one: upgrade English
Programming languages are a fundamental component of development, but languages for communication are no less important. Especially in communications with the English-speaking customer!
One fine day, an employee called Alexey from the customer. Then our developer could not yet boast a bunch of certificates – neither in technology, nor in management, nor in communications. Perhaps they would not be useful – because you can be a competent specialist without additional regalia. But the problem still arose.
You must understand that spoken language is radically different from written. If you are well versed in English specifications, but do not practice listening and speaking, then we have bad news for you. In this case, telephone conversations with partners can lead to a dead end.
Alexey on the call picked up some familiar words, but the colleague’s speech was so fast and unlike the classical pronunciation from audio lessons that the main point of her questions passed somewhere by. Out of politeness and unwillingness to complicate the situation, Alex quickly agreed to all the suggestions.
Needless to say, in the process of work unpleasant discoveries were made? Our developer subscribed to something that he would absolutely consciously refuse if the proposal came in a clear language.
At that moment, it became clear that pumping listening and speaking skills is simply necessary. The best way to do this was through certification.
In order to improve communication in the framework of our medical project, Alex studied at once in several programs. As a result, he passed the FCE certification – First Certificate in English. This helped to begin to hear the customer and convey their thoughts to him.
Avoid basic English training programs. Skill must be targeted. If you need English for business communication – you need to take it. Just do not go to extremes and take CAE (Certificate in Advanced English). Its peculiarity is sophisticated words, specific expressions that are almost never used in international communication.
Step two: certification across the entire technology stack
Initially, the project was based on ORM object-relational mapping technology. The customer development team was proud of their brainchild, because everything was done using advanced concepts, it’s difficult and cool.
Nevertheless, problems on the prod – in particular, the constantly freezing SQL server – were not uncommon. It got to the point that the typical solution to the problem was to restart the service. The customer called the team leader and said that it was time to restart. Finally we decided to end this.
The customer wished to work out the performance of the system – for this it was necessary to introduce profiling and regularly carry out optimization. At that time, approximately in 2015, Ants Profiler was chosen as a profiling tool, but it showed itself poorly. With little detail, it was difficult to get information about a critical block of code. At the maximum detail, Ants Profiler began to change the code so that the performance of the systems was at risk – where the profiling was configured, everything just fell. Therefore, we have changed the approach.
We started by analyzing statistics
When analyzing the statistics of sales, it became clear that 95% of the work on the server has a primitive 4-line business logic. For them, a single SQL query was enough, and not the full set of queries generated by the business logic block with ORM.
Alex proposed and implemented a stored procedure for moving jobs without ORM. The idea contradicted the usual paradigm of the project, the team leader met her cautiously, but the customer accepted everything and requested implementation. This was not surprising, because the new method allowed to reduce delays in processing at the prod from four hours to several minutes – an average of 98 times.
Nevertheless, we still had doubts: is this the right decision or a question of personal preferences? Belief in omnipotent C # and ORM was shaken by chance, which showed the full power of simple solutions.
The team wrote a request for working with data within the framework of the ORM paradigm, compiled in accordance with all the rules, without errors. Its processing took 2-3 minutes, and these parameters seemed acceptable. However, an alternative implementation using the simplest selects and view provided the result faster – in 2 seconds.
It became obvious that it was time to choose a specialist who will be certified throughout the project stack to understand all the nuances and choose the best method. This task was undertaken by Alexey.
To understand the essence, Alex went through several Microsoft certifications that covered the entire technological stack of the project:
– TS: Windows Applications Development with Microsoft .NET Framework 4
– TS: Accessing Data with Microsoft .NET Framework 4 Programming in C #
– TS: Microsoft .NET Framework 3.5 Windows Forms Application Development
– PRO: Designing and Developing Windows Applications using Microsoft .NET Framework 3.5
– PRO: Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework
– TS: Microsoft .NET Framework 2.0 – Windows-based Client Development
Trying to optimize work on a new project, the team came to the following conclusions:
– For the systems to work, you must follow the rules for writing code: not indents and comments, but technical specifications – the number of calls to the databases, the load on the server, and much more.
– The use of conflicting concepts is fraught with trouble. The concept of databases is set theory, while ORM is the concept of operations.
– Ideas that violate the usual order of things can meet resistance in a team. Development is also a relationship and the ability to argue one’s point of view.
– Certification broadens the mind and allows you to understand what you can use, and also what you can not use.
Step three: learn more than just code
When working on large-scale IT solutions, many factors are important. For example, not every developer pays attention to the network parameters – but even its bandwidth can affect the solution of a business problem.
Understanding this give certification 98 series:
– 98-361: Software Development Fundamentals
– 98-364: Database Fundamentals
They allow you to take a broader look at things and get out of the limited concept of “code only”. These are Fundamentals, the basics, but they are important to understand everything at a deeper level.
Certifications 98 series are small tests – 30 questions for 45 minutes.
Step Four: Process Management
Working with clinics is a more responsible event than, say, creating a mobile game. Here you can’t add a feature and roll it out to the product – it is important to follow the process of coordination and making numerous changes from the customer, because the health and lives of people are at stake.
Typical Agile did not produce the desired results on this project, and each sprint lasted long enough. Between deployments took place from 6 months to a year.
In addition, it was technically impossible to bring the processes of ten serviced clinics to some common denominator.
In order to get the result more quickly under these conditions, the developers needed personal responsibility and a large-scale vision of the processes – which means a constant concentration of attention and high qualification.
When a specialist is immersed in the process, he clearly sees the results, causes and effects, the whole picture. This is at the same time a factor of additional motivation and awareness, improving the ability to solve problems and problems.
With a well-established infrastructure, well-built architecture and optimal code, one person can take on many processes. However, this does not mean that it is necessary to grow universal soldiers who are capable of leading the project alone. Communication and teamwork are critical.
In the team, each developer understands that colleagues depend on his actions. A saving of 5 minutes at the development stage is perhaps 5 additional hours of testing. To understand this, it is important to establish communication.
In our project, Alexey was helped in mastering the processes. certificates from EXIN:
– M_o_R Foundation Certificate in Risk Management
– Agile Scrum Foundation
– IT Service Management Foundation
– EXIN Business Information Management Foundation
– PRINCE2 Foundation Certificate in Project Management
– Test Engineer Certificate
– Microsoft Operations Framework Foundation
– Agile Service Projects
At edX, courses were taken that helped to look at the system in terms of statistics and lean programming and later prompted to receive architect certificate:
– Lean Production
– Six Sigma: Analyze, Improve, Control
– Six Sigma: Define and Measure
According to the Six Sigma principle, statistical control provides a qualitative result with an extremely high probability.
Raising his level, the developer, as a rule, comes to the following conclusions:
– Work not a lot, but efficiently.
– Do not complicate life in the pursuit of the outside: sophisticated technologies do not necessarily solve problems better.
– Make friends with specialists of all stages of the cycle and find out their pains. The architect must own the processes: problem identification, problem statement, network topology design, development, testing, support, operation.
– Check every feature from and to.
– It happens that IT processes do not correspond to business processes, and this must be fought.
Step five: understand architecture through the prism of Big Data
On the project, we were dealing with fairly large databases. At least, it seemed to a certain point. When Alex started studying big data on edX, it turned out that 1.5 Tb on the project is a small database. Serious scales – from 10 Tb, and other methods are required there.
The next step towards certification was a course on big data. He helped to understand the organization of the data flow and accelerate operations on the prod. And also pay attention to small tools, for example, start using Excel to solve individual microtasks.
Microsoft Professional Program: Big Data Certificate
Step six: from developer to architect
After receiving all these certificates, while still a developer, Alexei began to realize that the information received had a high level of abstraction, and this was far from bad.
A large-scale vision of processes leads to the level of an architect, one of the highest levels of certification.
In search of architect certification, Alex went to Certified Software Architect – Microsoft Platform by Sundblad & Sundblad. This is a program recognized by Microsoft, its development began 14 years ago with the collaboration of the head and Swedish offices of the company. It covers the .NET Framework, requirements collection, information flow management and many other high-level issues and is considered a strong confirmation of the architect's skills.
The program included courses for study. Certification systematized knowledge and allowed to enter a new round of development – from the developer to the architect.
As Alexey notes, in the process of working with a large-scale IT system, it is important to remember that programming is not an expensive entertainment, but a tool for solving business problems. Faced with a particular challenge, you must definitely prescribe a business value so that the project does not come to a standstill.
The architect has a special look at programming and its elementary components:
– Creation and / or support of data flow
– Extracting information flow based on data flow
– Extracting a value stream based on a stream of information
– Monetization of value stream
If you look at the project through the eyes of an architect, you need to start from the end: formulate the value and then go to it through the data stream.
An architect follows design rules with a global vision for the project. To come to it through practice and one’s own mistakes is almost impossible – more precisely, it is possible, but for a very long time. Certification allows you to broaden your horizons and look at the full context of each question, get acquainted with the experience of thousands of professionals and develop the skill to effectively solve problems.
To date, we have been working with the above medical system for more than five years and have made significant improvements. During this time, Alex passed more than 20 certification exams:
- TS: Windows Applications Development with Microsoft .NET Framework 4
- TS: Accessing Data with Microsoft .NET Framework 4 Programming in C #
- TS: Microsoft .NET Framework 3.5 Windows Forms Application Development
- PRO: Designing and Developing Windows Applications using Microsoft .NET Framework 3.5
- PRO: Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 – Windows-based Client Development
- 98-361: Software Development Fundamentals
- 98-364: Database Fundamentals
- M_o_R Foundation Certificate in Risk Management
- Agile scrum foundation
- IT Service Management Foundation
- EXIN Business Information Management Foundation
- PRINCE2 Foundation Certificate in Project Management
- Test engineer certificate
- Microsoft Operations Framework Foundation
- Agile service projects
- Lean production
- Six Sigma: Analyze, Improve, Control
- Six Sigma: Define and Measure
- Microsoft Professional Program: Big Data Certificate
- Certified Software Architect – Microsoft Platform
Having passed all the exams, Alex grew from a leading developer to a project architect. Moreover, certification has become a powerful tool for both professional development and building a reputation in the eyes of the customer.
“Certification ram” helped to gain access to individual critical processes that needed to be monitored and developed. As a rule, European customers of IT solutions highly value certified specialists and are ready to give them more freedom of action.
Thanks for your attention! We hope the article was useful to you.