One Simple Way To Spot Bad Architects Un moyen simple pour repérer les mauvais architectes
This is a rejoinder to Frank's Il s'agit d'une réplique à Frank's article l'article on the same topic. sur le même sujet. He discusses 13 scenarios. Il traite de 13 scénarios. I would like to point to one simple way to spot a bad architect and also how you can spot a good architect. Je voudrais signaler à un moyen simple de repérer un mauvais architecte et également comment vous pouvez apercevoir un bon architecte.
A bad architect will inevitably show lack of practical knowledge and use specifications and authorities to justify his statement. Un mauvais architecte inévitablement Afficher manque de connaissances pratiques et l'utilisation de spécifications et les autorités pour justifier sa déclaration. They are swayed by fads and lacking a grounding on reality will tend to adopt and force anything new and shiny on the poor developers. Ils sont déboussolés par les engouements passagers et un manque de terre sur la réalité ont tendance à adopter et à la force quelque chose de nouveau et brillant sur les pauvres développeurs. They are also the over-engineering types. Ils sont aussi les plus-types d'ingénierie. The tendency to over-complicate design is a sure-fire sign of poor architects. La tendance à plus de compliquer la conception est une sorte de tir signe de mauvaise architectes. It is easy to spot them. Il est facile à repérer. Jot down the points above and go to your next meeting. Notez les points ci-dessus et aller directement à votre prochaine réunion. You will know how good your architect is. Vous saurez comment votre bon architecte.
A real architect will have a strong grounding on reality. Un véritable architecte ont une forte réalité sur la terre. He knows when to use any technology and when not to. Il sait se faire à n'importe quelle technologie utiliser et quand ne pas le faire. He will justify with solid understandable logic when questioned and will not rely upon highfalutin words and specifications. Il se justifier avec une solide logique compréhensible interrogés et ne compter sur highfalutin mots et des spécifications. A good architect will also choose the simplest solution that meets the requirements. Un bon architecte également choisir la solution la plus simple qui répond aux exigences.
PS. I always had this nagging suspicion that UML thumping architects (this who generate reams of UML documents and almost nothing else) are most often than not bad architects. J'ai toujours eu cette lancinante de soupçonner que les architectes thumping UML (ce qui rames de générer des documents UML et presque rien d'autre) sont le plus souvent que pas mal architectes. Recently I was trying to use a JSP Table component from a project which repeatedly touted its clean design and UML diagram but didn't even have a 5 minute user guide. Récemment, j'ai essayé d'utiliser un tableau JSP composante d'un projet qui a vanté à maintes reprises sa propre conception et de diagramme UML, mais il n'a même pas 5 minutes guide de l'utilisateur. After honest effort to decipher the nearly non-existent documentation and doc-less javadocs I gave up and chose Ext Grid component instead. Après l'effort honnête pour déchiffrer le non-près de la documentation existante et doc-javadocs moins j'ai laissé tomber et a choisi Poste grille la place. Have you seen any correlation between UML thumpers and bad architects? Avez-vous vu une corrélation entre UML et de mauvaises THUMPERS architectes?
Filed under Classé sous Enterprise Software Logiciel d'entreprise , Headline News Headline News , How To Comment , Java Software Logiciel de Java , PHP , Programming Programmation , Ruby , Software Outsourcing Software Outsourcing | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | cet article |
Email this Article Envoyer cet article
You may also like to read Vous mai également à lire |




































July 3rd, 2007 at 2:10 am 3 juillet 2007 à 2:10 am
Uhh… so the one simple way is… what…. Hein… alors d'une façon simple ce qui est……. UML use? UML?
Actually, that sounds about right to me. En fait, cela semble à peu près bien pour moi.
July 4th, 2007 at 3:06 pm 4 juillet 2007 à 3:06 pm
UML is brain damaged. UML est cerveau endommagé.
For starters, UML is specified in… UML. Pour commencer, UML est spécifié dans UML…. This means that UML means… whatever UML means, because it is specified in itself. Cela signifie que UML, UML… quel que soit les moyens, car il est précisé en soi. People who know algebra or geometry will be laughing. Les gens qui savent l'algèbre ou de géométrie sera rire.
There are no successful projects delivered using UML. Il n'existe pas de projets réussis livré avec UML. You can laugh, but UML is an energy drain, since there is no way you can prove a design with UML is right nor wrong, therefore it is a waste, because it is open to interpretation. Vous pouvez rire, mais UML est un drain d'énergie, car il n'est pas possible, vous pouvez prouver une conception avec UML est droit, ni mauvais, donc c'est une perte, car il est ouvert à l'interprétation. Most successful projects ignore UML completely and avoid it like the plague. La plupart des projets réussis UML ignorer complètement et éviter comme la peste. This is not coincidence, but a serious decision to make. Ce n'est pas un hasard, mais une grave décision à prendre.
Java was not designed using UML, nor it’s class library. Java n'a pas été conçu avec UML, de même qu'il l'bibliothèque de classes. Still there are no compelling UML design for the Java class library and it has been around for at least 10 years. Toujours n'existe aucune conception UML pour la bibliothèque de classes Java et il a été autour pendant au moins 10 ans. How come? Comment venir? Nobody can do it or it is found that it wouldn’t be useful? Personne ne peut le faire ou il est constaté qu'il ne serait pas utile?
I have another explanation: Wouldn’t it be possible that real engineers know that UML is a scam? J'ai une autre explication: Ne serait-il pas possible que les ingénieurs réel savoir que UML est une escroquerie?
Have you ever seen diagram of design patterns (Java best practices)? Avez-vous jamais vu diagramme de design patterns (Java meilleures pratiques)? There are at least 24 design patterns with name and example code, but all UML diagrams made for them look the same. Il ya au moins 24 design patterns avec un nom et un exemple de code, mais tous les diagrammes UML fait pour eux les mêmes. Would you use UML to document the design patterns you used? Voulez-vous utiliser UML pour documenter la conception de formats que vous utilisé? I bet you wouldn’t, because it would be considered a waste, but then how can you explain your design if you can’t draw them? Je parie que vous ne seriez pas, parce que cela serait considéré comme un déchet, mais alors comment pouvez-vous expliquer votre conception si vous ne pouvez pas les attirer?
UML class diagrams do not show polymorphism in your programs and polymorphism is the key to object orientation. Diagrammes de classes UML ne présentent pas de polymorphisme dans vos programmes et le polymorphisme est la clé de l'orienté objet. Why is that so? Pourquoi en est-il ainsi?
UML sequence diagrams do not show polymorphism and break encapsulation. Diagrammes de séquence UML ne présentent pas de polymorphisme et de briser l'encapsulation. Encapsulation and polymorphism are at the center of object orientation. L'encapsulation et le polymorphisme sont au centre d'orientation de l'objet. Why is UML marketed as an object oriented tool if it works against object orientation? Pourquoi UML est commercialisé comme un outil orienté-objet, si elle travaille contre l'orienté objet?
UML use cases are simply escenario-oriented documents, specifying “steps” for the user to use the system, while we know that modern user interfaces (since 1984) are event-oriented, and therefore you can’t force the user into any steps since the user selects the steps he wants to do. UML cas d'utilisation sont tout simplement Escenario axée sur des documents, en précisant "mesures" pour l'utilisateur d'utiliser le système, alors que nous savons que des interfaces utilisateur modernes (depuis 1984) sont axées sur l'événement, et donc vous ne pouvez pas forcer l'utilisateur dans toutes les mesures depuis l'utilisateur sélectionne les mesures qu'il veut faire.
Furthermore, Rational was the company behind UML. En outre, Rational est la compagnie derrière UML. Where is Rational now? Où est rationnelle? Why their people lost so much momentum? Pourquoi les personnes ont perdu tellement dynamique?
Finally, Rational Rose was the key product marketed by Rational, but the product was obviously bloated (too big), underperforming (too slow), unusable (hard to use) and buggy (a diagram that extended beyond a page was usually the one you could not save). Enfin, Rational Rose a été le principal produit commercialisé par Rational, mais le produit est à l'évidence pléthorique (trop gros), à désirer (trop lent), inutilisable (difficile à utiliser) et buggée (un diagramme qui s'étendait au-delà d'une page a été généralement celui que vous pourrait pas mettre).
The fact that most UML architects can’t code is a sign that shows that they don’t know what they are talking about, yet they have very strong opinions backed by companies that create UML design tools, a whole ecosystem. Le fait que la plupart des architectes UML peut pas code est un signe qui montre qu'ils ne savent pas de quoi ils parlent, mais ils ont des opinions très forte soutenue par les entreprises qui créent des outils de conception UML, un ensemble de l'écosystème. Architects should be able to code and give recomendations on how to code, pointing to design patterns when necesary. Les architectes devraient être en mesure de donner le code et recommandations sur la façon de coder, pointant vers les design patterns en cas de besoin. Doing code reviews and writing code conventions, for example, should be at least 20% of the time spent every day by any serious Java architect. Faire des commentaires de code et l'écriture du code conventions, par exemple, devrait être d'au moins 20% du temps passé chaque jour par de graves architecte Java.
July 5th, 2007 at 12:54 am Le 5 juillet 2007 à 12:54 am
The purpose of UML was to communicate architectural and design ideas to developers. Le but d'UML est de communiquer l'architecture et la conception des idées aux développeurs. Unfortunately the means to communicate (UML) is often more complicated than the ideas themselves and also often incomplete. Malheureusement, les moyens de communiquer (UML) est souvent plus complexe que les idées elles-mêmes et souvent incomplète.
We need a better and simpler alternative. Nous avons besoin d'une meilleure et plus simple alternative.
July 5th, 2007 at 9:35 am Le 5 juillet 2007 à 9:35 am
There is an alternative. Il est une alternative. It is called Functional Dependencies. Il est appelé dépendances fonctionnelles.
Functional dependencies are the basis of database modelling, but also can be applied to system design. Dépendances fonctionnelles sont à la base de données de modélisation, mais peut aussi être appliquée à la conception du système.
For example, if you can find out that the color of the website will depend on the user logged in, then your write: Par exemple, si vous trouvez que la couleur du site dépendra de l'utilisateur connecté, puis écrire votre:
user ->> website color utilisateur ->> site web couleur
If later you realize that the website color depends also on the time of the day: Si plus tard vous vous rendez compte que le site couleur dépend aussi du temps de la journée:
(user, time) ->> website color (utilisateur, l'heure) ->> site web couleur
You can replace all those dependencies (they are just text). Vous pouvez remplacer toutes les dépendances (ils sont juste le texte).
Imagine now that you have several thousand dependencies expressed that way, and that you have a parser for your dependencies. Imaginez maintenant que vous disposez de plusieurs milliers de dépendances exprimé de cette façon, et que vous avez un analyseur syntaxique pour votre dépendances. Voila! Your system is finished! Votre système est fini!
July 10th, 2007 at 6:55 pm Juillet 10th, 2007 at 6:55 pm
Are you assuming that a non-coding architect is a bad architect? Êtes-vous en supposant que le non-codantes architecte est un mauvais architecte? If so, I disagree with you. Si tel est le cas, je suis en désaccord avec vous. I have seen many non-coding architects who have been beneficial, if not vital, to the success of a project. J'ai vu beaucoup de non-codantes architectes qui ont été bénéfiques, voire vitale, au succès d'un projet. A coding architect can result in a variety of issues for a project. Un architecte de codage peut conduire à une variété de questions pour un projet. The example I have seen most often are the coding architects that do not trust other “lower” developers and try to code too much of the application. L'exemple j'ai vu le plus souvent sont le codage architectes qui ne font pas confiance aux autres "faible" et les développeurs à essayer trop de code de l'application. This results in a lack of attention to key concerns and issues, as well as project failure. Il en résulte un manque d'attention aux principales questions et préoccupations, ainsi que le projet échec.
I have found those who paint non-coding architects as “bad architects” may have had one negative experience, and afterwards they generalize all non-coding architects as bad. J'ai trouvé ceux qui la peinture non-codantes architectes comme «mauvais architectes" mai ont eu une expérience négative, et après, ils généraliser tous les non-codage architectes comme mauvais. Or, in some cases, the person is jealous of the architects’ skills, believing that coders are the more important part to a project. Ou, dans certains cas, la personne est jaloux des architectes des compétences, estimant que les codeurs sont les plus important à un projet.
The key is not to identify a coding or non-coding architect, but to be able to identify whether the architect can properly discover and address key concerns for a project and then resolve them. L'essentiel est de ne pas identifier un codage ou non codantes architecte, mais pour être en mesure de déterminer si l'architecte puisse découvrir et résoudre les problèmes clefs d'un projet et ensuite les résoudre. In the end, it should not matter if the architect codes or does not code, so long as the concerns have been properly addressed. En fin de compte, il ne devrait pas d'importance si l'architecte des codes ou ne code pas, pour autant que des préoccupations ont été correctement pris en compte. If a reference implementation needs to be developed, I am more than happy to see an architect delegate it to someone else. Si une implémentation de référence doit être développé, je suis plus qu'heureux de voir un architecte délégué à quelqu'un d'autre.
Rational is still around ~~shiver~~ as part of IBM’s Rational product line. Rationnel est toujours là ~ ~ ~ ~ frisson dans le cadre de IBM Rational gamme de produits. Very buggy and very costly IMHO (I opened three bug requests within one week of usage). Très buggé et très coûteux IMHO (j'ai ouvert trois demandes de bogues en moins d'une semaine d'utilisation). Not to mention RAD is a beast. Sans parler de RAD est une bête. As far as UML goes, I will still take a strong set of use cases, an object model and sequence diagrams for complex functions in the system. En ce qui concerne UML va, je vais encore prendre un ensemble de cas d'utilisation, un modèle objet et diagrammes de séquence pour les fonctions complexes dans le système. It works; it is proven across the fifty or so systems I have architected, developed and/or managed. Il fonctionne, il est prouvé à travers la cinquantaine de systèmes j'ai architecture, développé et / ou gérés. Outside of those three, I can get away with my own functional models outside of UML. En dehors de ces trois, je peux sortir avec mes propres modèles fonctionnels UML de l'extérieur.