The skills of writing code and abstracting functionality are not the same. This fact is why the Grand old Duke of York is an anti-pattern. Passing around essential tasks like design is not a practical approach. We should set up a team, so the people that are best at a job are the ones doing it.
Defining the Grand Old Duke of York Anti-Pattern
This particular pattern is not easy to define. Instead, we will jump right to the problem in setting the stage for this anti-pattern. [Click Here to See The Page]
“Programming skill does not equate to skill in defining abstractions. There appear to be two distinct groups involved in software development: abstractionists and their counterparts (whom we call implementationists) Abstractionists are comfortable discussing software design concepts without delving into implementation details.“
There are several reasons why a team falls into this anti-pattern. They can be small and ask more of the implementation team than normal. They can assume developers are abstraction experts or some combination of these two. In the worst case, the idea of abstraction never occurs to the team.
This anti-pattern boils down to a general case of putting team members in a position for success. Use them for their strengths instead of just throwing them at a problem. When you take this approach, the team will work better, have higher morale, and produce solutions with higher quality. Look at it simply. People are going to have a higher success rate doing things they are good at.
IT Roles Are Not The Same
We started the definition of this anti-pattern focused on design (abstraction) vs. coding (implementation). It is not always clear that there are nuances to IT work. Development is not the same as design, which is not the same as testing. These are different skills, and people will have differing aptitudes for each. Consider the strengths and weaknesses of team members as roles reassigned. When you do, the team will be happier and more productive. They might even produce a superior product.