Do you have architects or senior developers?


Why there are very few good Java Architects?

Well, most people will say to me, that this isn’t true, they have Java Architects in their team. I believe, but most of them are Senior Programming Developers with some experience, but not real Architects! Sorry.

As a Java and J2EE trainer I have a lots of students learning Java, Java Programming, EJB, Servlets, JSF, JSP, Web Container, JPS, ORM, along the year. But in the last 2 years I have taught only one time a course about IT Architectures! Even people with 3-5 years of experience they became to my classes learning about Java Programming, some of them team leaders, “experienced” team leaders! After some questions about patterns, cohesion, density, coupling, etc.… 99% of them they just… ahhnn?? That’s when I know, that most of the team leaders are just Senior Developers!

modern-architecture-2A good final Java Product its about thinking in commercial aspects like: audience, final stakeholders, customers, commercial sensibility; and technical like: Load Balancing, Patterns, the 3 dimension of an architecture, density, cohesion, coupling, security, layers, tiers (which its different than layers, by the way), scaling, sessions, performance, etc.. Not only programming! Programming are the bricks, it doesn’t matter how knowing how to put bricks if they aren’t in the right place and in the right way, with a specific commercial goal in mind!
Poor decisions at the start of development will reflect in a weak product which probably will need maintenance in the future! Then the company will train or consult real Java Architects, or sometimes they just keep pushing the “Senior Developers” to try to increase the quality of the product…

So, if you are a company developing Java Products, besides people know about Java, train them in topics like:

– Patterns

– Architectures

These topics are not about Java, but they really improve the quality and the performance of any product development, including Java! And then you will have better Senior Developers, with some commercial sensibility (yes, architectures it’s about commercial sensibility too, one of the most important aspects in most cases), and after a while you probably have Java Architects, and you will have a great team to develop great products! (Well, there are the human factor to consider here.. .but that’s another story )

So you think you are a Senior…


– A senior takes the responsibility to find the best technical solution.

– A senior knows the juniors of his team, their limitations and their strengths.

– A senior is proactive.

– A senior knows the business impact of his technical decisions.

– A senior knows that the best solution is not always possible, and knows how to make trade-offs.

– A senior knows that bugs will occur, regardless of his programming skills or of their juniors.

– A senior understands that what matters is the customer expectation, not the quality of the algorithms.

– A senior knows that the success of the project is related to the expectation of the customer and not only according to specification.

– A senior is multilingual, speaking several languages: commercial, technical, professional, end user, other.

– A senior knows when to apply the appropriate language.

– A senior is almost a project manager.

– A senior is almost an architect.

– A senior is almost a sales person.

– A senior is paid to be guilty.

– A senior knows that his job is a transition from juniors to an architect, or commercial, or project manager, or business developer, or manager, or whatever.

– A senior knows that his position its the starting point of the “the rest of his professional life.”

– A senior, sometimes, would like to return to his junior times.

– A senior is a leader.

– A senior must have a balance between hard and soft-skills.

– A senior is always learning.

– The responsibility of a senior is to be responsible for everything!