Technical design

Recently, the company has hired a technical analyst for the development team.
For all new projects, his tasks are to be analyzed by clients and come up with an analysis design that can be used as a starting base for actual development.

Now, apparently, this technical design will contain some kind of classification diagram, which should be used as a developer guide for developing classes / interfaces and gives an overview of how these objects should interact with each other.
It scares me, it seems that he wants too many restrictions on the project development side.

IMO this will reduce developer freedom and just remove all encoding.
Does a technical analyst have the right to impose such a design?

+4
source share
5 answers

When they hire someone as an architect or technical analyst, it is because your company (right or wrong) has determined what they feel is an area in which there can be improvement. They decided that creating developers to β€œfly” was not what they wanted to do, what they would prefer if a technical analyst represented a single structure.

As a person who has worked in support, this is an area that is usually overlooked. Every developer feels that their design is correct, and better than any other core. And although their projects are probably very strong, there will be no coherence between the projects. This dramatically affects the resource to such an extent that the use of people in the project is associated with a period of time that is productive because it breaks the assembly because they do not understand the obscure architecture created by the original developer. Adding some restrictions to developers is sometimes good, because it does not allow them too far from the reasonable.

Secondly, assuming that this analyst has experience in the industry and has worked on many projects, then he will know which class formations or technical projects lead to problems and which usually turn out to be simpler. So the great new idea that you have, what he feels, is too bizarre, most likely he has seen it before, and it ended in disaster. Or a brilliant new technology that you love and want to work with, it shows you something less elegant and 100 times more reliable.

I say this as someone who is NOT a technical designer, but the one who needed to be edited several times and each time, without fail, the technical analyst made the right call, even if I did not understand it until the fact.

Last but not least, since you are both employees of the same company, you have all the rights that your common bosses give you.

+5
source

It is like hiring an architect to draw a drawing of a house takes away all the freedom and β€œfun” by creating it. :)

+3
source

There is a difference between a design proposal and a design purpose. No avant-garde design will ever be 100% perfect, so every design needs to be changed during development. devinb is right, however, that it makes sense to design in front of the building. I firmly believe that there is a happy environment between the full design of the front end, for example, in the bad old days of the development of the waterfall and the complete rejection of the design that some of the toughest agilists practice. Martin Fowler's article "Is Design Dead" contains a lot of truth in this regard. If your organization uses a new designer to help create a culture of evolutionary design, then you are working on a smart, promising organization, and you're in luck. If your organization uses a new designer to drive you into a box from which you have no flexibility, then you have a rough trip.

+2
source

There are a few unpleasant little details around the Mez post that we cannot see that would define a company that should be more complete.

From personal experience, I can say that most teams do not have many great designers .. although they can have many great coders. Programming is a very detailed lesson, and being a great designer, many times means parting with the details so that you can see the big picture. This is a combination of skills that I just don’t see.

Another thing to keep in mind is that people who act as common technical leaders, if they are good, will strive to learn enough about the system so that you discard surprises that inevitably hide. You can never eradicate them, but this is a real job for the technical manager. Identify the gaps and make sure these gaps are covered. Ideally, your leader wants to make sure that someone has a solution to the gaps .. not just himself. Teamwork in design is just as important for success in large projects as is teamwork in coding. A technical approach that approaches the problem as the team problem finds the greatest success. Those who ignore the dynamics of the team in design do it at their own peril and (and believe me, I saw a lot of it ... it's NOT beautiful).

Thus, the real question is what kind of technical leader we are talking about, and how effective is the company in organizing / implementing large projects? It is difficult to learn from one post.

+1
source

Are you sure that this analyst is not the head of architects or technical specialists? Given what you are describing, it seems that the new guy will be one of these roles, so yes, he has the right to impose such a design, as it is an interface for clients and is somehow an interested party for the project.

0
source

Source: https://habr.com/ru/post/1285826/


All Articles