One Simple Way To Spot Bad Architects Uma maneira simples de detectar má Arquitetos
This is a rejoinder to Frank’s Esta é uma tréplica ao Frank's article on the same topic. sobre o mesmo tema. He discusses 13 scenarios. Discute 13 cenários. I would like to point to one simple way to spot a bad architect and also how you can spot a good architect. Gostaria de chamar a atenção para uma maneira simples de identificar um mau arquitecto e também como você pode detectar um bom arquiteto.
A bad architect will inevitably show lack of practical knowledge and use specifications and authorities to justify his statement. Um mau arquitecto, inevitavelmente, revelam falta de conhecimento prático e utilização caderno de encargos e autoridades para justificar a sua declaração. 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. Eles são seduzidos pelo fads e faltar uma realidade em terra terão tendência a adoptar ea força alguma coisa nova e brilhante sobre os pobres desenvolvedores. They are also the over-engineering types. Eles são também os mais de engenharia de tipos. The tendency to over-complicate design is a sure-fire sign of poor architects. A tendência para o excesso de complicar desenho é uma certeza-fogo sinal de má arquitectos. It is easy to spot them. É fácil identificá-las-los. Jot down the points above and go to your next meeting. Jot abaixo os pontos acima e ir para a sua próxima reunião. You will know how good your architect is. Você sabe como é bom o seu arquitecto.
A real architect will have a strong grounding on reality. Um verdadeiro arquitecto terá um forte aterramento em realidade. He knows when to use any technology and when not to. Ele sabe quando utilizar a qualquer momento e não a tecnologia. He will justify with solid understandable logic when questioned and will not rely upon highfalutin words and specifications. Ele irá justificar a lógica compreensível quando questionado sólidos e não dependem de highfalutin palavras e caderno de encargos. A good architect will also choose the simplest solution that meets the requirements. Um bom arquiteto também irá escolher a solução mais simples que satisfaz os 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. Eu sempre tive essa nagging suspeita de que UML thumping arquitectos (que geram esta resmas de documentos UML e quase nada mais) do que na maioria das vezes não são maus 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. Recentemente eu estava tentando usar um componente de JSP quadro de um projecto que repetidamente apregoados seu design limpo e diagramas UML, mas nem sequer tinha um guia do utilizador 5 minutos. After honest effort to decipher the nearly non-existent documentation and doc-less javadocs I gave up and chose Ext Grid component instead. Após honesto esforço de decifrar o quase inexistente, documentação e doc-menos javadocs acabei por desistir e escolheu Ext Grid componente vez. Have you seen any correlation between UML thumpers and bad architects? Você já viu alguma correlação entre UML thumpers e maus arquitectos?
Filed under Arquivado em Enterprise Software Enterprise Software , De Headline News Headline News , De How To How To , De Java Software Java Software , De PHP , De Programming Programação , De Ruby , De Software Outsourcing Software Outsourcing | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | este artigo |
Email this Article E-mail este artigo
You may also like to read Você pode também gosta de ler |




July 3rd, 2007 at 2:10 am 3 de julho de 2007 em 2:10 am
Uhh… so the one simple way is… what…. Uhh… assim a uma forma simples o que é……. UML use? UML usar?
Actually, that sounds about right to me. Atualmente, cerca de direita que soa para mim.
July 4th, 2007 at 3:06 pm 4 de julho de 2007 em 3:06 pm
UML is brain damaged. O UML é cerebrais danificadas.
For starters, UML is specified in… UML. Para começar, é especificado no… UML UML. This means that UML means… whatever UML means, because it is specified in itself. Isto significa que, seja qual for UML, UML… meio, porque ele está especificado em si mesmo. People who know algebra or geometry will be laughing. As pessoas que sabem álgebra ou geometria será rindo.
There are no successful projects delivered using UML. Não há projectos bem sucedidos entregues usando 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. Você pode rir, mas UML é um dreno energia, uma vez que não existe qualquer forma, pode revelar um desenho com UML é justo nem errado, portanto, é um desperdício, porque ele está aberto a interpretações. Most successful projects ignore UML completely and avoid it like the plague. A maior parte dos projectos bem sucedidos UML ignorá-la completamente e evitar como a peste. This is not coincidence, but a serious decision to make. Isso não é coincidência, mas uma decisão séria de fazer.
Java was not designed using UML, nor it’s class library. Java não foi concebido usando UML, nem a sua classe biblioteca. Still there are no compelling UML design for the Java class library and it has been around for at least 10 years. Ainda não existem UML design para a classe Java biblioteca e tem sido em torno de pelo menos 10 anos. How come? Como chegar? Nobody can do it or it is found that it wouldn’t be useful? Ninguém pode fazê-lo, ou se verificar que não seria útil?
I have another explanation: Wouldn’t it be possible that real engineers know that UML is a scam? Eu tenho uma outra explicação: Não seria possível que o real engenheiros sabem que UML é uma fraude?
Have you ever seen diagram of design patterns (Java best practices)? Você já viu diagrama de padrões de projeto (Java melhores práticas)? There are at least 24 design patterns with name and example code, but all UML diagrams made for them look the same. Há pelo menos 24 padrões de projeto com nome e exemplo de código, mas todos os diagramas UML feita para eles têm a mesma aparência. Would you use UML to document the design patterns you used? Teria que usar UML para documentar os padrões de projeto que você usou? 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? Eu aposto que você não iria, porque seria considerado um desperdício, mas então como é que pode explicar seu projeto se você não pode chamar-lhes?
UML class diagrams do not show polymorphism in your programs and polymorphism is the key to object orientation. Classes de diagramas UML não mostram polimorfismo em seus programas e polimorfismo é a chave para a orientação objeto. Why is that so? Porquê?
UML sequence diagrams do not show polymorphism and break encapsulation. Diagramas UML seqüência não mostram polimorfismo e quebrar encapsulamento. Encapsulation and polymorphism are at the center of object orientation. Encapsulamento e polimorfismo estão no centro do objeto orientação. Why is UML marketed as an object oriented tool if it works against object orientation? Por que é UML comercializado como uma ferramenta orientada objeto se ele funciona contra o objeto orientação?
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 uso casos são simplesmente escenario e orientada para os documentos, indicando "passos" para o usuário a utilizar o sistema, enquanto nós sabemos que a moderna usuário interfaces (desde 1984) são caso-orientado, e, portanto, você não pode forçar o usuário em qualquer etapas uma vez que o usuário seleciona os passos que ele quer fazer.
Furthermore, Rational was the company behind UML. Além disso, foi a empresa por trás Rational UML. Where is Rational now? Onde está Racionais agora? Why their people lost so much momentum? Por que tantas pessoas perderam a sua dinâmica?
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 foi o principal produto comercializado pela Rational, mas o produto foi obviamente avançadas (muito grande), cujo (muito lento), inutilizável (difícil de usar) e buggy (um diagrama que foi prorrogado para além de uma página que você normalmente a uma não foi possível salvar).
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. O facto de a maior parte dos arquitectos UML não pode código é um sinal que demonstra que eles não sabem o que estão a falar, eles ainda têm muito forte pareceres apoiados por empresas que criam ferramentas UML design, de todo um ecossistema. Architects should be able to code and give recomendations on how to code, pointing to design patterns when necesary. Arquitetos deverá ser capaz de código e dar recomendações sobre a forma de código, o que aponta para padrões de projeto, quando necessário. 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. Fazendo código opiniões e escrever código de convenções, por exemplo, deve ser de pelo menos 20% do tempo gasto por cada dia qualquer graves Java arquiteto.
July 5th, 2007 at 12:54 am 5 de julho de 2007 em 12:54 am
The purpose of UML was to communicate architectural and design ideas to developers. O objectivo da UML foi para comunicar idéias e concepção arquitetônica para desenvolvedores. Unfortunately the means to communicate (UML) is often more complicated than the ideas themselves and also often incomplete. Infelizmente, os meios de comunicação (UML) é frequentemente mais complicada do que as próprias idéias, e também muitas vezes incompleta.
We need a better and simpler alternative. Precisamos de uma alternativa melhor e mais simples.
July 5th, 2007 at 9:35 am 5 de julho de 2007 em 9:35 am
There is an alternative. Não existe uma alternativa. It is called Functional Dependencies. Chama-se dependências funcionais.
Functional dependencies are the basis of database modelling, but also can be applied to system design. Dependências funcionais são a base de modelagem de dados, mas também pode ser aplicado ao sistema de design.
For example, if you can find out that the color of the website will depend on the user logged in, then your write: Por exemplo, se você pode descobrir que a cor do site dependerá do usuário conectado, então o seu escrever:
user ->> website color user ->> site cor
If later you realize that the website color depends also on the time of the day: Se mais tarde você perceber que o site cor depende também da hora do dia:
(user, time) ->> website color (usuário, tempo) ->> site cor
You can replace all those dependencies (they are just text). Você pode substituir todas essas dependências (são só texto).
Imagine now that you have several thousand dependencies expressed that way, and that you have a parser for your dependencies. Imagine agora que você tem vários milhares de dependências que forma expressa, e que você tem um parser para suas dependências. Voila! Your system is finished! Seu sistema está acabado!
July 10th, 2007 at 6:55 pm 10 de julho de 2007 em 6:55 pm
Are you assuming that a non-coding architect is a bad architect? Pensa que um arquiteto não codificantes é um mau arquitecto? If so, I disagree with you. Se assim for, eu discordo de você. I have seen many non-coding architects who have been beneficial, if not vital, to the success of a project. Eu tenho visto muitos não codificantes arquitectos que foram benéficas, se não mesmo vital, para o sucesso de um projeto. A coding architect can result in a variety of issues for a project. A codificação arquiteto pode resultar em uma variedade de questões para um projeto. 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. O exemplo que tenho visto na maioria das vezes são os arquitectos codificação que não confiam outro "menor" desenvolvedores e tentar demasiado código do pedido. This results in a lack of attention to key concerns and issues, as well as project failure. Isso resulta em uma falta de atenção às preocupações e questões-chave, bem como ao projecto fracasso.
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. Eu tenho encontrado tinta aqueles que não codificantes arquitectos como "mau arquitectos" pode ter tido uma experiência negativa, e depois eles não codificantes generalizar todos os arquitectos como mau. Or, in some cases, the person is jealous of the architects’ skills, believing that coders are the more important part to a project. Ou, em alguns casos, a pessoa tem inveja dos arquitectos' habilidades, acreditando que são os codificadores mais importante parte de um projeto.
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. A chave não é um código para identificar ou não codificantes arquitecto, mas para ser capaz de identificar se o arquiteto pode descobrir e tratar adequadamente preocupações fundamentais para um projecto e, em seguida, resolvê-los. In the end, it should not matter if the architect codes or does not code, so long as the concerns have been properly addressed. No final, ela não deve importa se o arquitecto códigos ou não código, desde que as preocupações têm sido devidamente abordados. If a reference implementation needs to be developed, I am more than happy to see an architect delegate it to someone else. Se uma referência aplicação tem de ser desenvolvida, estou mais que feliz em ver um arquiteto delegado-la para outra pessoa.
Rational is still around ~~shiver~~ as part of IBM’s Rational product line. Racional ainda está em torno de arrepio ~ ~ ~ ~ como parte do produto da IBM Rational linha. Very buggy and very costly IMHO (I opened three bug requests within one week of usage). Muito buggy e muito dispendiosa IMHO (I abriu três pedidos bug no prazo de uma semana de uso). Not to mention RAD is a beast. Já para não falar RAD é uma besta. 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. No que se refere UML vai, eu ainda levará um forte conjunto de usar casos, um objeto modelo e diagramas para a seqüência complexas funções no sistema. It works; it is proven across the fifty or so systems I have architected, developed and/or managed. Ele funciona; é comprovada em toda a cinquenta ou mais sistemas Tenho projetada, desenvolvida e / ou geridos. Outside of those three, I can get away with my own functional models outside of UML. Fora destas três, eu posso sair com os meus próprios modelos funcionais fora da UML.