One Simple Way To Spot Bad Architects Una manera simple de detectar mala Arquitectos
This is a rejoinder to Frank’s Se trata de un escrito de dúplica a Frank's article artículo on the same topic. sobre el mismo tema. He discusses 13 scenarios. El autor analiza 13 escenarios. I would like to point to one simple way to spot a bad architect and also how you can spot a good architect. Me gustaría señalar una manera simple de detectar un mal arquitecto y también cómo se puede detectar un buen arquitecto.
A bad architect will inevitably show lack of practical knowledge and use specifications and authorities to justify his statement. Un mal arquitecto, inevitablemente, muestran la falta de conocimientos prácticos y el uso especificaciones y las autoridades para justificar su declaración. 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. Ellos son sacudidos por modas y que carecen de una sólida base en la realidad tienden a adoptar y la fuerza nada nuevo y brillante a los pobres desarrolladores. They are also the over-engineering types. También son más los tipos de ingeniería. The tendency to over-complicate design is a sure-fire sign of poor architects. La tendencia a complicar más-es un diseño seguro del fuego signo de mala arquitectos. It is easy to spot them. Es fácil de detectar. Jot down the points above and go to your next meeting. Anote los puntos anteriores, e ir a su próxima reunión. You will know how good your architect is. Usted sabe bien cómo es su arquitecto.
A real architect will have a strong grounding on reality. Un verdadero arquitecto tendrá una fuerte base en la realidad. He knows when to use any technology and when not to. Él sabe cuándo utilizar cualquier tecnología y cuándo no. He will justify with solid understandable logic when questioned and will not rely upon highfalutin words and specifications. Él se justifica con una sólida lógica comprensible cuando en tela de juicio y no confiar en las palabras y highfalutin el pliego de condiciones. A good architect will also choose the simplest solution that meets the requirements. Un buen arquitecto también elegir la solución más sencilla que cumpla con los requisitos.
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. Yo siempre he tenido este acuciante la sospecha de que UML thumping arquitectos (que generan este resmas de documentos UML y casi nada más) son la mayoría de las veces mala arquitectos. 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. Recientemente me estaba tratando de usar un componente JSP cuadro de un proyecto que promociona en repetidas ocasiones su diseño limpio y diagrama UML, pero ni siquiera tenía a 5 minutos guía del usuario. After honest effort to decipher the nearly non-existent documentation and doc-less javadocs I gave up and chose Ext Grid component instead. Tras el esfuerzo honesto para descifrar la casi inexistente documentación y doc-javadocs menos me he rendido y eligió Ext Grid componente lugar. Have you seen any correlation between UML thumpers and bad architects? ¿Ha visto alguna correlación entre UML thumpers y malas arquitectos?
Filed under Filed under Enterprise Software Enterprise Software , Headline News Headline News , How To Cómo , Java Software El software de Java , PHP , Programming Programación , Ruby , Software Outsourcing Software Outsourcing | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | este artículo |
Email this Article Enviar artículo
You may also like to read También puede leer |




July 3rd, 2007 at 2:10 am 3 de Julio, 2007 a las 2:10 am
Uhh… so the one simple way is… what…. Uhh… así una forma sencilla lo que es……. UML use? UML?
Actually, that sounds about right to me. En realidad, que suena sobre derecho a mí.
July 4th, 2007 at 3:06 pm 4 de julio, de 2007 a las 3:06 pm
UML is brain damaged. UML es el cerebro dañado.
For starters, UML is specified in… UML. Para empezar, UML se especifica en UML…. This means that UML means… whatever UML means, because it is specified in itself. Esto significa que los medios… UML UML medios sea cual sea, ya que se especifica en sí mismo. People who know algebra or geometry will be laughing. Personas que saben álgebra o geometría se ríe.
There are no successful projects delivered using UML. No hay proyectos exitosos emitido utilizando 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. Puede reír, pero UML es una fuga de energía, ya que no hay manera que usted pueda probar un diseño con UML tiene razón ni mal, por lo tanto, es un despilfarro, ya que está abierta a interpretación. Most successful projects ignore UML completely and avoid it like the plague. La mayoría de los proyectos exitosos UML ignorar por completo y evitar que, como la peste. This is not coincidence, but a serious decision to make. Esto no es coincidencia, sino una grave decisión de hacer.
Java was not designed using UML, nor it’s class library. Java no fue diseñado utilizando UML, ni es biblioteca de clases. Still there are no compelling UML design for the Java class library and it has been around for at least 10 years. Aún no hay diseño UML para la biblioteca de clases de Java y que ha sido de alrededor de al menos 10 años. How come? ¿Cómo es posible? Nobody can do it or it is found that it wouldn’t be useful? Nadie puede hacerlo o se comprueba que no sería útil?
I have another explanation: Wouldn’t it be possible that real engineers know that UML is a scam? Tengo otra explicación: ¿No sería posible que el verdadero ingenieros saben que UML es una estafa?
Have you ever seen diagram of design patterns (Java best practices)? ¿Alguna vez has visto el diagrama de patrones de diseño (Java mejores prácticas)? There are at least 24 design patterns with name and example code, but all UML diagrams made for them look the same. Existen al menos 24 patrones de diseño con nombre y código de ejemplo, pero todos los diagramas UML hecho para ellos tienen el mismo aspecto. Would you use UML to document the design patterns you used? ¿Uso de UML para documentar los patrones de diseño que ha utilizado? 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? Apuesto que no, porque sería considerado un residuo, pero entonces ¿cómo puede usted explicar su diseño si no se puede sacar?
UML class diagrams do not show polymorphism in your programs and polymorphism is the key to object orientation. Diagramas UML clase no muestran polimorfismo en sus programas y polimorfismo es la clave a la orientación a objetos. Why is that so? ¿Por qué es esto?
UML sequence diagrams do not show polymorphism and break encapsulation. Diagramas UML secuencia no muestran polimorfismo y romper la encapsulación. Encapsulation and polymorphism are at the center of object orientation. La encapsulación y polimorfismo se encuentran en el centro objeto de orientación. Why is UML marketed as an object oriented tool if it works against object orientation? ¿Por qué UML es comercializado como una herramienta orientada a objetos si funciona contra objeto orientación?
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 casos de uso son simplemente escenario orientada a documentos, especificando "pasos" para que el usuario pueda utilizar el sistema, si bien sabemos que las modernas interfaces de usuario (desde 1984) están orientadas al evento, y por lo tanto usted no puede obligar al usuario a todas las medidas ya que el usuario selecciona las medidas que quiere hacer.
Furthermore, Rational was the company behind UML. Por otra parte, racional fue la compañía detrás de UML. Where is Rational now? ¿Dónde está ahora racional? Why their people lost so much momentum? ¿Por qué su pueblo perdido tanto ímpetu?
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). Por último, Rational Rose es la clave de producto comercializado racional, pero el producto estaba hinchado, obviamente, (demasiado grande), bajo (demasiado lento), inservible (difícil de usar) y buggy (un diagrama que se extendía más allá de una página fue por lo general el que usted No se ha podido guardar).
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. El hecho de que la mayoría de UML arquitectos no pueden código es un signo que demuestra que no saben lo que están hablando, todavía tienen opiniones muy fuerte respaldado por las empresas que crean herramientas de diseño UML, todo un ecosistema. Architects should be able to code and give recomendations on how to code, pointing to design patterns when necesary. Arquitectos debería ser capaz de código y dar recomendaciones sobre la forma de código, lo que indica patrones de diseño cuando sea necesario. 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. Hacer comentarios código y escribir código convenios, por ejemplo, debería ser al menos el 20% del tiempo dedicado cada día de cualquier arquitecto Java graves.
July 5th, 2007 at 12:54 am 5 de julio de 2007, a las 12:54 am
The purpose of UML was to communicate architectural and design ideas to developers. El objetivo de UML fue a comunicar la arquitectura y el diseño de ideas para los desarrolladores. Unfortunately the means to communicate (UML) is often more complicated than the ideas themselves and also often incomplete. Lamentablemente los medios de comunicación (UML) es a menudo más complicadas que las ideas en sí mismas y también a menudo incompleta.
We need a better and simpler alternative. Necesitamos una mejor y más simple alternativa.
July 5th, 2007 at 9:35 am 5 de julio de 2007, a las 9:35 am
There is an alternative. Hay una alternativa. It is called Functional Dependencies. Se llama dependencias funcionales.
Functional dependencies are the basis of database modelling, but also can be applied to system design. Dependencias funcionales son la base de datos de modelos, pero también se puede aplicar a el diseño del sistema.
For example, if you can find out that the color of the website will depend on the user logged in, then your write: Por ejemplo, si usted puede averiguar que el color del sitio web dependerá de que el usuario conectado, entonces su escritura:
user ->> website color usuario ->> sitio web de color
If later you realize that the website color depends also on the time of the day: Si más tarde te das cuenta de que el sitio web de color también depende del momento del día:
(user, time) ->> website color (usuario, hora) ->> sitio web de color
You can replace all those dependencies (they are just text). Puede sustituir todos aquellos dependencias (que son sólo texto).
Imagine now that you have several thousand dependencies expressed that way, and that you have a parser for your dependencies. Imagine ahora que usted tiene varios miles de dependencias expresado de esa manera, y que tiene un parser para su dependencias. Voila! Your system is finished! Su sistema está acabado!
July 10th, 2007 at 6:55 pm 10 de julio de 2007, a las 6:55 pm
Are you assuming that a non-coding architect is a bad architect? ¿Estás asumiendo que no codificante arquitecto es un mal arquitecto? If so, I disagree with you. Si es así, no estoy de acuerdo con usted. I have seen many non-coding architects who have been beneficial, if not vital, to the success of a project. He visto a muchos no codificante arquitectos que han sido beneficiosos, si no vital, para el éxito de un proyecto. A coding architect can result in a variety of issues for a project. Un arquitecto de codificación puede resultar en una variedad de temas para un proyecto. 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. El ejemplo que he visto con más frecuencia son los arquitectos de codificación que no confían en otras "inferiores" y los desarrolladores de código a intentar demasiado de la solicitud. This results in a lack of attention to key concerns and issues, as well as project failure. Esto se traduce en una falta de atención a las principales inquietudes y problemas, así como de fracaso del proyecto.
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. He encontrado que los que la pintura no codificante arquitectos como "mala arquitectos" puede haber tenido una experiencia negativa, y después de que generalizar no todos los arquitectos de codificación tan malo. Or, in some cases, the person is jealous of the architects’ skills, believing that coders are the more important part to a project. O, en algunos casos, la persona siente celos de los arquitectos habilidades, en la creencia de que son los codificadores más importante que un proyecto.
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. La clave es no identificar a una codificación o no codificante arquitecto, pero para poder determinar si el arquitecto adecuadamente puede descubrir y tratar las principales preocupaciones para un proyecto y luego resolverlos. In the end, it should not matter if the architect codes or does not code, so long as the concerns have been properly addressed. Al fin y al cabo, no importa si el arquitecto códigos o no el código, siempre y cuando las preocupaciones se han abordado adecuadamente. If a reference implementation needs to be developed, I am more than happy to see an architect delegate it to someone else. Si una aplicación de referencia tiene que ser desarrollado, estoy más que feliz de ver un arquitecto delegar a alguien más.
Rational is still around ~~shiver~~ as part of IBM’s Rational product line. Rational todavía está en torno a tiritar ~ ~ ~ ~ como parte de IBM Rational línea de productos. Very buggy and very costly IMHO (I opened three bug requests within one week of usage). Muy buggy y muy costoso IMHO (I abrió tres solicitudes de error dentro de una semana de uso). Not to mention RAD is a beast. Por no hablar de RAD es una bestia. 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. Por lo que respecta a UML va, voy a tener todavía un fuerte conjunto de casos de uso, un modelo de objetos y diagramas de secuencia de funciones complejas en el sistema. It works; it is proven across the fifty or so systems I have architected, developed and/or managed. Trabaja, es demostrado a través de los cincuenta, o los sistemas que he diseñado, desarrollado y / o administrados. Outside of those three, I can get away with my own functional models outside of UML. Fuera de esos tres, me puedes hacer eso con mis propios modelos funcionales fuera de UML.