One Simple Way To Spot Bad Architects Un modo semplice per spot Bad architetti
This is a rejoinder to Frank’s Si tratta di una controreplica a Frank's article articolo on the same topic. sullo stesso argomento. He discusses 13 scenarios. Egli discute 13 scenari. I would like to point to one simple way to spot a bad architect and also how you can spot a good architect. Desidero a punto un semplice modo per individuare un cattivo architetto e anche come si può individuare un buon architetto.
A bad architect will inevitably show lack of practical knowledge and use specifications and authorities to justify his statement. Un cattivo architetto inevitabilmente mostrano la mancanza di esperienza e di uso specifiche e le autorità per giustificare la sua dichiarazione. 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. Esse sono influenzate da mode e privi di una terra sulla realtà tenderà ad adottare e vigore nulla di nuovo e brillante sui poveri sviluppatori. They are also the over-engineering types. Sono anche i più tipi di genio. The tendency to over-complicate design is a sure-fire sign of poor architects. La tendenza a un eccesso di complicare design è un sicuro segno di fuoco poveri architetti. It is easy to spot them. E 'facile da individuare. Jot down the points above and go to your next meeting. Raccogli le punti al di sopra e passare alla successiva riunione. You will know how good your architect is. Sapete bene come è il tuo architetto.
A real architect will have a strong grounding on reality. Un vero e proprio architetto avrà una forte realtà a terra. He knows when to use any technology and when not to. Egli sa quando di utilizzare qualsiasi tecnologia e quando non. He will justify with solid understandable logic when questioned and will not rely upon highfalutin words and specifications. Egli giustifica con una solida logica comprensibile quando interrogato e non fare affidamento su di highfalutin parole e le specifiche. A good architect will also choose the simplest solution that meets the requirements. Un buon architetto anche scegliere la soluzione più semplice che soddisfa i requisiti.
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. Ho sempre avuto il sospetto che nagging UML thumping architetti (che generano questo risme di UML documenti e quasi niente altro) sono la maggior parte dei casi non male architetti. 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. Sono stato di recente cercando di utilizzare un componente Tabella JSP da un progetto che touted ripetutamente il suo design pulito e diagramma UML, ma non ha nemmeno 5 minuti a guida. After honest effort to decipher the nearly non-existent documentation and doc-less javadocs I gave up and chose Ext Grid component instead. Dopo onesto tentativo di decifrare la quasi inesistente la documentazione e doc-meno javadocs ci ho rinunciato e si è scelto int Grid componente. Have you seen any correlation between UML thumpers and bad architects? Hai visto alcuna correlazione tra UML THUMPERS e cattivi architetti?
Filed under Elencato sotto Enterprise Software Enterprise Software , Headline News Headline News , How To Come , Java Software Software Java , PHP , Programming Programmazione , Ruby Rubino , Software Outsourcing Outsourcing del software | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | questo articolo |
Email this Article Invia questo articolo
You may also like to read Si può anche leggere come |




July 3rd, 2007 at 2:10 am 3 luglio 2007 a 2:10 am
Uhh… so the one simple way is… what…. Uhh… così un modo semplice per ciò che è……. UML use? UML?
Actually, that sounds about right to me. In realtà, che i suoni diritto su di me.
July 4th, 2007 at 3:06 pm 4 luglio 2007 a 3:06 pm
UML is brain damaged. UML è cervello danneggiato.
For starters, UML is specified in… UML. Per cominciare, UML è specificato nel… UML. This means that UML means… whatever UML means, because it is specified in itself. Ciò significa che significa… UML UML qualsiasi mezzo, perché è specificato in sé. People who know algebra or geometry will be laughing. Persone che conoscono l'algebra o la geometria sarà ridendo.
There are no successful projects delivered using UML. Non vi sono progetti di successo consegnati utilizzando 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. Si può ridere, ma UML è un drenaggio di energia, poiché non vi è alcun modo potete provare con un disegno UML è giusto né sbagliato, quindi è uno spreco, perché è aperto a interpretazione. Most successful projects ignore UML completely and avoid it like the plague. La maggior parte dei progetti di successo ignorare completamente UML e di evitare come la peste. This is not coincidence, but a serious decision to make. Questa non è una coincidenza, ma una grave decisione di mettere a.
Java was not designed using UML, nor it’s class library. Java non è stato progettato utilizzando UML, né è libreria di classi. Still there are no compelling UML design for the Java class library and it has been around for at least 10 years. Ancora non esistono UML design per la libreria di classi Java e si è in giro per almeno 10 anni. How come? Come mai? Nobody can do it or it is found that it wouldn’t be useful? Nessuno può farlo o si è constatato che non sarebbe utile?
I have another explanation: Wouldn’t it be possible that real engineers know that UML is a scam? Ho un'altra spiegazione: Non sarebbe possibile che reale ingegneri sanno che UML è un imbroglio?
Have you ever seen diagram of design patterns (Java best practices)? Avete mai visto diagramma di design pattern (Java migliori pratiche)? There are at least 24 design patterns with name and example code, but all UML diagrams made for them look the same. Ci sono almeno 24 modelli di progettazione con il nome ed il codice di esempio, ma tutti i diagrammi UML fatto per loro lo stesso sguardo. Would you use UML to document the design patterns you used? Vuoi usare UML per documentare il design pattern utilizzati? 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? Scommetto che non avrebbe, perché sarebbe considerato un rifiuto, ma poi come si può spiegare il suo disegno se non è possibile trarre?
UML class diagrams do not show polymorphism in your programs and polymorphism is the key to object orientation. Diagrammi di classe UML non mostrano polimorfismo nei programmi e polimorfismo è la chiave per oggetto l'orientamento. Why is that so? Perché è così che?
UML sequence diagrams do not show polymorphism and break encapsulation. Sequenza di diagrammi UML non mostrano polimorfismo e rompere l'incapsulazione. Encapsulation and polymorphism are at the center of object orientation. Incapsulamento e polimorfismo sono al centro di orientamento oggetto. Why is UML marketed as an object oriented tool if it works against object orientation? Perché UML è commercializzato come uno strumento orientato agli oggetti se funziona contro oggetto di orientamento?
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 casi d'uso sono semplicemente orientati escenario documenti, indicando "passi" per l'utente di utilizzare il sistema, mentre sappiamo che le moderne interfacce utente (dal 1984) sono orientate alla manifestazione e, pertanto, non è possibile vigore l'utente in tutte le misure dal momento che l'utente seleziona le misure che vuole fare.
Furthermore, Rational was the company behind UML. Inoltre, Rational è stata la società dietro UML. Where is Rational now? Dove ora è razionale? Why their people lost so much momentum? Perché il loro popolo perso così tanto slancio?
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). Infine, Rational Rose è stata la chiave di prodotto commercializzato razionale, ma il prodotto è stato ovviamente mastodontiche (troppo grandi), poco (troppo lento), non utilizzabile (difficile da usare) e buggy (un diagramma che si estendeva al di là di una pagina è stata di solito quella che si non poteva salvare).
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. Il fatto che la maggior parte architetti UML non può codice è un segno che dimostra che non sanno quello che stanno parlando, sono ancora molto forti opinioni sostenute dalle imprese che creano UML strumenti di progettazione, un intero ecosistema. Architects should be able to code and give recomendations on how to code, pointing to design patterns when necesary. Architetti dovrebbero essere in grado di codice e dare recomendations su come codice, che punta al design pattern in caso di necessità. 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. Facendo codice recensioni e la scrittura del codice convenzioni, ad esempio, dovrebbe essere di almeno il 20% del tempo dedicato ogni giorno di ogni serio architetto Java.
July 5th, 2007 at 12:54 am 5 luglio 2007 alle 12:54 am
The purpose of UML was to communicate architectural and design ideas to developers. Lo scopo di UML è stato di comunicare architettura e design idee agli sviluppatori. Unfortunately the means to communicate (UML) is often more complicated than the ideas themselves and also often incomplete. Purtroppo i mezzi per comunicare (UML) è spesso più complicata di quella delle idee stesse e spesso anche incompleto.
We need a better and simpler alternative. Abbiamo bisogno di una migliore e più semplice alternativa.
July 5th, 2007 at 9:35 am 5 luglio 2007 a 9:35 am
There is an alternative. Non vi è alternativa. It is called Functional Dependencies. Si chiama dipendenze funzionali.
Functional dependencies are the basis of database modelling, but also can be applied to system design. Dipendenze funzionali sono alla base della banca dati di modellazione, ma anche può essere applicato al sistema di progettazione.
For example, if you can find out that the color of the website will depend on the user logged in, then your write: Ad esempio, se si può scoprire che il colore del sito web dipenderà l'utente connesso, allora il tuo scrivere:
user ->> website color utente ->> sito web colore
If later you realize that the website color depends also on the time of the day: Se più tardi vi rendete conto che il sito web del colore dipende anche dal momento della giornata:
(user, time) ->> website color (utente, il tempo) ->> sito web colore
You can replace all those dependencies (they are just text). È possibile sostituire tutte quelle dipendenze (che sono solo testo).
Imagine now that you have several thousand dependencies expressed that way, and that you have a parser for your dependencies. Immaginate ora che si dispone di diverse migliaia di dipendenze espresso in questo modo, e che si dispone di un parser per il tuo dipendenze. Voila! Your system is finished! Il vostro sistema è già stato terminato!
July 10th, 2007 at 6:55 pm 10 Luglio 2007 alle 6:55 pm
Are you assuming that a non-coding architect is a bad architect? Sei supponendo che un non codificanti architetto è un cattivo architetto? If so, I disagree with you. Se sì, sono d'accordo con te. I have seen many non-coding architects who have been beneficial, if not vital, to the success of a project. Ho visto molti non codificanti architetti che sono stati positivi, se non vitale, per il successo di un progetto. A coding architect can result in a variety of issues for a project. Un architetto di codifica può risultare in una varietà di temi per un progetto. 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'esempio ho visto più spesso sono gli architetti di codifica che non si fidano di altri "inferiore" sviluppatori e cercare di codice troppa della domanda. This results in a lack of attention to key concerns and issues, as well as project failure. Ne risulta una mancanza di attenzione per le principali preoccupazioni e problemi, così come progetto fallimento.
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. Ho trovato quelle che dipingere non codificanti architetti come "cattivo architetti" possono aver avuto uno esperienza negativa, e dopo che tutti i generalizzare non codificanti architetti come cattivo. Or, in some cases, the person is jealous of the architects’ skills, believing that coders are the more important part to a project. O, in alcuni casi, la persona è geloso degli architetti 'competenze, credendo che sono i codificatori più importante parte di un progetto.
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 chiave non è quello di identificare un codice o non codificanti architetto, ma per essere in grado di identificare se l'architetto in grado di scoprire adeguatamente l'indirizzo e le principali preoccupazioni per un progetto e quindi risolverli. In the end, it should not matter if the architect codes or does not code, so long as the concerns have been properly addressed. Alla fine, non dovrebbe importa se l'architetto codici o non codice, fintanto che le preoccupazioni siano stati adeguatamente affrontati. If a reference implementation needs to be developed, I am more than happy to see an architect delegate it to someone else. Se una implementazione di riferimento deve essere sviluppato, sono più che felice di vedere un architetto delegare a qualcun altro.
Rational is still around ~~shiver~~ as part of IBM’s Rational product line. Razionale è ancora circa il brivido ~ ~ ~ ~ come parte di IBM Rational linea di prodotti. Very buggy and very costly IMHO (I opened three bug requests within one week of usage). Buggy molto e molto costose IMHO (ho aperto tre bug richieste entro una settimana di utilizzo). Not to mention RAD is a beast. Per non parlare di RAD è 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. Per quanto riguarda UML va, mi prenderà una forte serie di casi d'uso, un modello a oggetti e la sequenza diagrammi per funzioni complesse nel sistema. It works; it is proven across the fifty or so systems I have architected, developed and/or managed. Funziona, è dimostrato in tutta la cinquantina di sistemi Ho architected, sviluppato e / o gestiti. Outside of those three, I can get away with my own functional models outside of UML. Al di fuori di questi tre, posso uscire con i miei modelli funzionali al di fuori di UML.