The Architect's Path: Certification and Product Immersion

Almost every developer asks questions about how he should develop his skills and what direction of growth to choose: vertical - that is, become a manager, or horizontal - full stack. Long-term work on one product, contrary to myths, becomes not a limitation, but a useful opportunity. In this article, we share the experience of our backend developer Alexey, who has devoted 6 years to certifications and has worked his way up to an architect during this time.

The Architect's Path: Certification and Product Immersion

Who is an architect

An architect in IT (technical lead) is a high-level developer who deals with global issues in IT projects. He dives into the customer's business processes and helps to solve his problems with the help of technology, 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:

  • Setting a business problem.
  • Development, including programming, preparation, storage and processing of data.
  • Deployment and support of infrastructure.
  • Testing.
  • Deploy.
  • Analytics and operational services.

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 systems from the inside, identify mistakes made, and formulate goals. Sometimes it is possible to perform surgery on your own.

The path of professional development from a developer to an architect takes a long time - usually several years. To do this, the developer needs both practical skills and knowledge of theory, which can be confirmed by international certification.

More than 5 years on the same project - a routine or an opportunity for growth?

A few years ago, we started work on a large medical IT system for a foreign customer. There were certain problems in this large-scale project:

  • restricted access;
  • unstable prod;
  • incredibly stretched sprints and lengthy approvals.

β€œTime to upgrade”, - one of the leading developers Alexey came to such a decision in order to overcome the listed difficulties and better understand the system.

Alexey shared his experience, where it is better to start training, what certificates are important to obtain, how and why to do it.

Step One: Upgrade Your English

Programming languages ​​are a fundamental part of development, but languages ​​for communication are just as important. Especially in communications with an English-speaking customer!

From the practice

One fine day, Alexey received a call from an employee from the customer's side. Then our developer could not yet boast of a pile of certificates - neither in technology, nor in management, nor in communications. Perhaps they would not be useful - after all, it is possible to be a competent specialist without additional regalia. But the problem still arose.

It must be understood that spoken language is radically different from written language. If you are well versed in English-language 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.

Aleksey caught some familiar words on the call, but his colleague's speech was so fast and unlike the classical pronunciation from audio lessons that the main essence of her questions passed somewhere by. Out of courtesy and unwillingness to complicate the situation, Alexei quickly agreed to all proposals.

Needless to say, unpleasant discoveries were made in the course of the work? Our developer signed up for something that he would absolutely consciously refuse if the offer came in understandable language.

At that moment, it became clear that it was simply necessary to pump over the skills of listening and speaking. Certifications were the best way to do this.

English Language Certification

In order to improve communications within the framework of our medical project, Alexey studied in several programs at once. As a result, he passed the FCE certification - First Certificate in English. This helped to begin to hear the customer and convey his thoughts to him.

LifeFac:

Avoid basic English programs. The skill must be targeted. If you need English for business communication, you need to take it. Just do not go to extremes and take the CAE (Certificate in Advanced English). Its feature is sophisticated words, specific expressions that are almost never used in international communication.

The Architect's Path: Certification and Product Immersion

Step two: certification across the entire technology stack

Initially, the project was based on the ORM object-relational mapping technology. The development team from the customer's side was proud of their brainchild, because everything was done using advanced concepts, complex and cool.

However, problems in production - in particular, a 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 it.

The customer wished to work out the performance of the system - for this it was necessary to introduce profiling and regularly optimize it. Ants Profiler was chosen as a profiling tool at that time - around 2015, but it proved to be weak. With small details, it was difficult to get information about a critical block of code. At maximum detail, Ants Profiler began to change the code in such a way that the performance of the systems was in jeopardy - where profiling was configured, everything just fell. So we changed our approach.

We started with statistics analysis

When analyzing sales statistics, it became clear that 95% of the work on the server has a primitive business logic of 4 lines. For them, one SQL query was enough, and not the full set of queries generated by the business logic block with ORM.

Alexey proposed and implemented a stored procedure for moving jobs without ORM. The idea contradicted the usual paradigm of the project, the team leader met it with caution, but the customer accepted everything and requested implementation. This was not surprising, because the new method allowed to reduce processing delays on the production from four hours to several minutes - an average of 98 times.

And yet we had doubts: is this the right decision or a matter of personal preference? Faith in the almighty C # and ORM was shaken by chance, which showed the power of simple solutions.

Case two

The team wrote a query for working with data within the ORM paradigm, compiled according to 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 would be certified throughout the entire project stack in order to understand all the nuances and choose the best method. This task was taken over by Alex.

First certificates

To understand the essence, Alexey went through multiple Microsoft certificationscovering 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 the work on the new project, the team came to the following conclusions:

  • For systems to work, it is necessary to follow the rules for writing code: not indents and comments, but technical characteristics - the number of database accesses, server load, 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 disrupt the usual order of things may meet with resistance in the team. Development is also about relationships and the ability to argue your point of view.
  • Certification expands the horizon and allows you to understand what can be used and what can not be used.

The Architect's Path: Certification and Product Immersion

Step Three: Learn More Than Code

When working on large-scale IT solutions, many factors are important. For example, not every developer pays attention to network parameters - but even its bandwidth can affect the solution of a business problem.

This understanding is given 98 series certification:

They allow you to take a broader view of things and get out of the limited concept of β€œcode only”. These are Fundamentals, the basics, but they are important to understand everything on a deeper level.

Series 98 certifications are small tests - 30 questions for 45 minutes.

Step Four: Process Management

Working with clinics is a more responsible undertaking than, say, creating a mobile game. Here you can’t add a feature and roll it out for sale - it’s important to follow the process of agreeing and making numerous changes from the customer, because the health and lives of people are at stake.

Typical Agile didn't deliver the desired results on this project, and each sprint was long enough. Between deployments, it took from 6 months to a year.

In addition, it was purely technically impossible to bring the processes of ten serviced clinics to some common denominator.

In order to get results more quickly under these conditions, the developers needed personal responsibility and a large-scale vision of the processes, which meant constant concentration of attention and high qualifications.

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 you need to grow universal soldiers who are able to lead the project alone. Communication and teamwork are critical.

In the team, each developer understands that colleagues depend on his actions. A 5 minute savings in the development phase is probably 5 extra 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

Courses were taken at edX, which helped to look at the system from the point of view of statistics and lean programming, and later pushed 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 their level, the developer, as a rule, comes to the following conclusions:

  • Work not hard, but efficiently.
  • Don't make life difficult by chasing the outside: fancy technologies don't necessarily solve problems better.
  • Make friends with specialists of all stages of the cycle and find out their pains. An architect must be proficient in the processes: identifying a problem, setting a task, designing a network topology, development, testing, support, and operation.
  • Check every feature inside and out.
  • It happens that IT processes do not correspond to business processes, and this needs to be dealt with.

The Architect's Path: Certification and Product Immersion

Step Five: Understand the Architecture Through a Big Data Lens

On the project, we dealt with rather large databases. At least that's how it seemed up until a certain point. When Aleksey 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 data flow and speed up production operations. And also pay attention to small tools, for example, start using Excel to solve individual microtasks.

Certificate:
Microsoft Professional Program: Big Data Certificate

The Architect's Path: Certification and Product Immersion

Step Six: From Developer to Architect

After receiving all the listed certificates, while still a developer, Alexey began to understand that the information received has a high level of abstraction, and this is 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 certification as an architect, Aleksey 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 cooperation of the head office and the Swedish offices of the company. It covers the .NET Framework, requirements gathering, information flow management, and many other high-level topics and is considered a solid testament to an architect's skills.

Within the program there were courses to study. Certification systematized knowledge and allowed us to enter a new stage of development - from a developer to an architect.

The Architect's Path: Certification and Product Immersion

Summing up

As Aleksey notes, when 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 this or that challenge, it is imperative to prescribe business value so that the project does not reach a dead end.

The architect has a special view of programming and its elementary components:

  • Creation and/or maintenance of data flow
  • Extracting the flow of information based on the flow of data
  • Extracting a Value Stream Based on Information Flow
  • Value stream monetization

If you look at the project through the eyes of an architect, you need to start from the end: formulate a value and then go to it through the data flow.

The architect follows the rules of development, having a global vision of the project. It is almost impossible to come to it through practice and your own mistakes - more precisely, it is possible, but for a very long time. Certification allows you to expand your horizons and look at the full context of each issue, get acquainted with the experience of thousands of professionals and develop the skill of effective problem solving.

To date, we have been working with the above described medical system for more than five years and have achieved significant improvements. During this time, Alexey passed more than 20 certification exams:

  1. TS: Windows Applications Development with Microsoft .NET Framework 4
  2. TS: Accessing Data with Microsoft .NET Framework 4 Programming in C#
  3. TS: Microsoft .NET Framework 3.5 Windows Forms Application Development
  4. PRO: Designing and Developing Windows Applications using Microsoft .NET Framework 3.5
  5. PRO: Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 - Windows-based Client Development
  7. 98-361: Software Development Fundamentals
  8. 98-364: Database Fundamentals
  9. M_o_R Foundation Certificate in Risk Management
  10. Agile Scrum Foundation
  11. IT Service Management Foundation
  12. EXIN Business Information Management Foundation
  13. PRINCE2 Foundation Certificate in Project Management
  14. Test Engineer Certificate
  15. Microsoft Operations Framework Foundation
  16. Agile Service Projects
  17. lean production
  18. Six Sigma: Analyze, Improve, Control
  19. Six Sigma: Define and Measure
  20. Microsoft Professional Program: Big Data Certificate
  21. Certified Software Architect - Microsoft Platform

The Architect's Path: Certification and Product Immersion

Having passed all the exams, Alexey has grown from a lead developer to a project architect. At the same time, certification has become a powerful tool for both professional development and reputation building in the eyes of the customer.

The "certification ram" helped to gain access to certain critical processes that needed to be controlled and developed. European customers of IT-solutions, as a rule, highly value certified specialists and are ready to give them more freedom of action.

Thank you for your attention! We hope that the article was useful to you.

Source: habr.com

Add a comment