One Simple Way To Spot Bad Architects 1 개의 간단한 방법이 나쁜 건축 현장
This is a rejoinder to Frank’s 이것은 답변을 프랭크 article 기사 on the same topic. 동일한 주제를합니다. He discusses 13 scenarios. 그는 13 시나리오를 설명합니다. I would like to point to one simple way to spot a bad architect and also how you can spot a good architect. 싶습니다 1 개의 간단한 방법이 자리를 가리 키도록 나쁜 건축 또한 건축 수있는 방법에 좋은 장소.
A bad architect will inevitably show lack of practical knowledge and use specifications and authorities to justify his statement. 피할 수없는 나쁜 건축은 실용적인 지식과 사용에 대한 자세한 사양과 당국 결여를 정당화하기 위해 그의 진술합니다. 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. 그들은 현실을 좌우에 유행하고 접지 손실된 것입은 아무것도 새로운 경향을 채택하고 강제에 반짝 이는 가난한 개발자를합니다. They are also the over-engineering types. 그들은 또한 오버 - 엔지니어링 유형합니다. The tendency to over-complicate design is a sure-fire sign of poor architects. - 복잡하게 설계는 이상에 대한 경향을 확실히 나쁜 건축 - 화재 서명합니다. It is easy to spot them. 그것은 그들을 쉽게 자리합니다. Jot down the points above and go to your next meeting. 당신의 이상의 지점을 적어 둔다 다음 회의로 이동합니다. You will know how good your architect is. 당신은 당신의 건축은 얼마나 잘 알고있습니다.
A real architect will have a strong grounding on reality. 진정한 건축은 현실에 강한 접지합니다. He knows when to use any technology and when not to. 그는 아는가되지 않았을 때 우리가 사용하는 기술 및합니다. He will justify with solid understandable logic when questioned and will not rely upon highfalutin words and specifications. 그는 질문을 때 정당화 논리와 고체 이해할 수 highfalutin 단어 및 사양에 의존되지 않습니다. A good architect will also choose the simplest solution that meets the requirements. 좋은 건축은 또한 간단한 해결책을 선택하십시오의 요구 사항을 충족합니다.
PS. 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. 나는 항상 이렇게 잔소리 심한 치기 의혹이 건축가의 UML (이 사람의 UML 문서를 작성했으며, 거의 아무것도 다른 사람의 reams)는 건축 나쁘지보다 자주합니다. 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. 최근에 테이블을하려고했는데 구성 요소를 사용하여 프로젝트를 jsp의 깨끗한 디자인과의 UML 다이어그램을 반복적으로 강매한 않았다 5 분 정도도 사용자 안내서합니다. After honest effort to decipher the nearly non-existent documentation and doc-less javadocs I gave up and chose Ext Grid component instead. 이후 거의 아닌 정직한 노력을 암호문을 해독 - 기존 문서와 문서 - 적은 javadocs 그리드 구성 요소를 다 포기하고 대신에 내선을 선택합니다. Have you seen any correlation between UML thumpers and bad architects? 본 적의 UML thumpers와 나쁜 건축 사이에 어떤 상관 관계?
Filed under 밑에 Enterprise Software 엔터 프라이즈 소프트웨어를 , Headline News 헤드 라인 뉴스 , How To 하는 방법을 , Java Software 자바 소프트웨어 , PHP php , Programming 프로그래밍 , Ruby 루비 , Software Outsourcing 소프트웨어 하청함 | |
| |
RSS 2.0 rss 2.0 | |
Trackback 트랙백 this Article | 이 문서 |
Email this Article 전자 우편이 문서
You may also like to read 같은를 읽을 수있습니다 |




July 3rd, 2007 at 2:10 am 2007년 7월 3일에서 오전 2시 10분
Uhh… so the one simple way is… what…. 으윽…… 때문에, 1 개의 간단한 방법은 무슨…. UML use? 의 UML 사용하는가?
Actually, that sounds about right to me. 사실, 그 소리에 대한 권리를 내게합니다.
July 4th, 2007 at 3:06 pm 2007년 7월 4일에서 오후 3시 6분
UML is brain damaged. 의 UML은 두뇌 손상으로합니다.
For starters, UML is specified in… UML. 우선,…의 UML의 UML에 지정된합니다. This means that UML means… whatever UML means, because it is specified in itself. 즉, 수단의 UML의 UML… 어떤 의미를 지정하기 때문에 그 자체. People who know algebra or geometry will be laughing. 대수 기하학가 아는 사람이나 웃는합니다.
There are no successful projects delivered using UML. 성공적인 사업가없습니다 전달의 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. 웃을지 몰라도 에너지 유출의 UML은 이후 증명할 수있는 방법은없습니다의 디자인을하실 수있습니다의 UML은 바로이나 잘못된 따라서는 폐기물을 해석하기 때문에이 열려있습니다. Most successful projects ignore UML completely and avoid it like the plague. 대부분의 성공적인 프로젝트의 UML을 무시 전염병처럼 완전하고 피하게합니다. This is not coincidence, but a serious decision to make. 이것은 우연의 일치지만 심각한 결정을 내려야합니다.
Java was not designed using UML, nor it’s class library. 자바를 사용하여 설계되지 않았습니다의 UML,도 아니다 그것의 클래스 라이브러리를합니다. Still there are no compelling UML design for the Java class library and it has been around for at least 10 years. 아직도의 UML 디자인을 경쟁력있는가없습니다 자바 클래스 라이브러리와 적어도 10 년 동안 주위를졌다. How come? 왜 그렇습니까? Nobody can do it or it is found that it wouldn’t be useful? 아무도 할 수있어, 혹은 그것은 없을 것으로 나타났습니다 유용합니까?
I have another explanation: Wouldn’t it be possible that real engineers know that UML is a scam? 또 다른 설명 : 가능성이 진정한 엔지니어가되지의 UML 대해 사기인지 여부를 알고?
Have you ever seen diagram of design patterns (Java best practices)? 그림을 본 적 있으십니까 디자인 패턴 (자바 최상의 방법)? There are at least 24 design patterns with name and example code, but all UML diagrams made for them look the same. 이미 적어도 24 디자인 패턴과 이름 및 예제 코드, 그들을 위해 우리 모두의 UML 다이어그램을 만들어 보는 것은 동일합니다. Would you use UML to document the design patterns you used? 이 문서의 UML을 사용의 디자인 패턴을 사용 하시나요? 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? 물론 아니 겠지, 왜냐하면 그것을 낭비으로 간주됩니다했지만, 그 후 귀하의 설계하는 방법 설명해 줄 수 그려 수 없다면?
UML class diagrams do not show polymorphism in your programs and polymorphism is the key to object orientation. 클래스 다이어그램의 UML 프로그램과 다에 다 표시하지 않음에있어서의 핵심은 객체 지향합니다. Why is that so? 왜 그렇습니까?
UML sequence diagrams do not show polymorphism and break encapsulation. 다 표시하지 않음과 휴식의 UML 다이어그램을 시퀀스를 캡슐 화합니다. Encapsulation and polymorphism are at the center of object orientation. 개체를 캡슐 화 및 오리 엔테이션의 중심에 다가합니다. Why is UML marketed as an object oriented tool if it works against object orientation? 시판의 UML 도구로서 객체 지향 이유는 무엇입니까 성공하면 반대 객체 지향?
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 유스 케이스는 단순히 escenario - 지향 문서, 지정하는 "단계"사용자가 시스템을 사용하는 반면에 우리가 알고 현대적인 사용자 인터페이스 (1984 년 이후)이 이벤트 - 지향, 그리고 사용자에 따라서는 강제로 어떤 단계를 수 없다 그 이후의 단계에서 사용자를 선택하고 싶어 하죠.
Furthermore, Rational was the company behind UML. 또한, 합리적인 회사는 배후의 UML합니다. Where is Rational now? 합리적인 지금 어디에? Why their people lost so much momentum? 너무 많은 사람들이 손실을 보여주고있습니다 왜?
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). 마지막으로, 합리적인 상품을 판매하는 장미의 열쇠는 합리적인,하지만이 제품은 분명 비대한 (너무 커서),이 저조한 (느리다), 사용 불능 (하드 디스크를 사용) 및 버그 (다이어그램을 연장하는 페이지는 일반적으로 1을 넘어 저장하지 못했습니다).
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. 대부분의 UML 건축 수 없다는 사실을 서명하는 것을 보여줍니다 코드는 그들이 모르고있는 얘기를이 무엇인지, 아직 그들은 매우 강한 의견을 배경으로 기업의 UML 디자인 도구를 만드는, 전체 생태계를합니다. Architects should be able to code and give recomendations on how to code, pointing to design patterns when necesary. recomendations 줄 수 있어야 할 코드를 건축하는 방법에 코드를 필요할 때 디자인 패턴을 가리키며합니다. 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. 코드를 작성하는 코드 리뷰 및 규칙, 예를 들면, 20 % 이상이어야합니다 매일 매일의 시간을 보냈다 어떤 심각한 자바 건축가합니다.
July 5th, 2007 at 12:54 am 2007년 7월 5일에서 오전 12시 54분
The purpose of UML was to communicate architectural and design ideas to developers. 의 UML은 의사 소통의 목적은 건축과 디자인 아이디어를 개발합니다. Unfortunately the means to communicate (UML) is often more complicated than the ideas themselves and also often incomplete. 불행히도 의사 소통의 수단 (의 UML)은 종종 자신의 생각보다 더 복잡하고 불완전한도 종종있습니다.
We need a better and simpler alternative. 더 나은 대안이 필요하고 간단합니다.
July 5th, 2007 at 9:35 am 2007년 7월 5일에서 오전 9시 35분
There is an alternative. 이 대안합니다. It is called Functional Dependencies. 기능적 의존성이라고합니다.
Functional dependencies are the basis of database modelling, but also can be applied to system design. 종속성이 데이터베이스 기능을 기준으로 모델링,뿐만 아니라 시스템 설계에 적용될 수있습니다.
For example, if you can find out that the color of the website will depend on the user logged in, then your write: 예를 들면, 만약의 색깔을 찾을 수있습니다 의존하는 웹사이트는 사용자가 로그 인한 다음 귀하의 쓰기 :
user ->> website color 사용자 ->> 웹사이트에 색깔
If later you realize that the website color depends also on the time of the day: 만약 나중에이 사실을 깨닫지 색상의 웹사이트에 또 시간을 달려 일 :
(user, time) ->> website color (사용자, 시간) ->> 웹사이트에 색깔
You can replace all those dependencies (they are just text). 모든 사람 종속성을 바꿀 수있습니다 (그들은 그냥 텍스트).
Imagine now that you have several thousand dependencies expressed that way, and that you have a parser for your dependencies. 이제는 수천개의 종속성을 상상 표현하는 방법, 그리고 귀하의 종속성을위한 파서이 있으합니다. Voila! 짜잔! Your system is finished! 당신의 시스템이 완성!
July 10th, 2007 at 6:55 pm 2007년 7월 10일에서 오후 6시 55분
Are you assuming that a non-coding architect is a bad architect? - 코딩 설계자가 아닌 것이라고 생각하는데 당신은 나쁜 건축? If so, I disagree with you. 만일 그렇다면, 당신과 동의하지 않습니다. I have seen many non-coding architects who have been beneficial, if not vital, to the success of a project. 본 적이있어 많은 도움이 아닌 - 코딩 건축 사람이 아니라면 중대한 프로젝트의 성공에 도움이있습니다. A coding architect can result in a variety of issues for a project. 건축의 코딩의 문제로 인해 프로젝트를위한 다양한합니다. 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. 이 예제 코드는 종종 본 적이있어 설계자가 필요하지 않은 대부분의 신탁 기타 "낮은"개발자 및 응용 프로그램을하려고 할 코드를 너무 많이합니다. This results in a lack of attention to key concerns and issues, as well as project failure. 이 결과에 관심을 키 우려와 문제점이 부족뿐만 아니라 프로젝트를 실패합니다.
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. 나는 그 누구 페인트 아닌 - 코딩 건축가로 발견 "나쁜 건축가"5 월이 한 번 부정적인 경험, 그 다음에는 그들이 일반화 - 코딩 건축가로하지 않는 모든 나쁜합니다. Or, in some cases, the person is jealous of the architects’ skills, believing that coders are the more important part to a project. 또는, 어떤 경우에는 건축을 질투하는 사람은 '기술, 믿음이 더 중요한 부분을 프로그래머는 프로젝트를합니다.
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. 코딩을 식별하는 열쇠는 아니하거나 - 코딩 건축가,하지만 건축 수 있는지 여부를 확인할 수있습니다 주소를 적절하게 발견하고 프로젝트를위한 핵심 요소로 고려하고 다음을 해결합니다. In the end, it should not matter if the architect codes or does not code, so long as the concerns have been properly addressed. 결국, 건축 코드를해서는 안 문제 있거나 존재하지 않는 경우에는 코드를 너무 오래 우려가 올바로으로 해결합니다. If a reference implementation needs to be developed, I am more than happy to see an architect delegate it to someone else. 경우에 대한 참조 구현을 개발해야합니다, 나는 그것 이상의 행복을 다른 사람에게 위임하는 건축가 표시합니다.
Rational is still around ~~shiver~~ as part of IBM’s Rational product line. 이성은 여전히 주위 ~ ~ 전율 ~ ~ 합리적인 제품 라인의 일환으로 아이비엠합니다. Very buggy and very costly IMHO (I opened three bug requests within one week of usage). 그리고 아주 비용이 많이 드는 매우 버그가 imho (3 개의 버그 요청을 연 1 주일 이내에 사용하는 방법). Not to mention RAD is a beast. 신비는 말할 것도없고 짐승합니다. 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. 한의 UML 말한다면, 나는이 걸릴것 강한 일련의 유스 케이스, 개체 모델 및 순서 다이어그램 시스템에서 복잡한 기능을합니다. It works; it is proven across the fifty or so systems I have architected, developed and/or managed. 작동; 것이 입증된 건너 그래서 시스템 나는 50 또는 설계, 개발 및 / 또는 관리합니다. Outside of those three, I can get away with my own functional models outside of UML. 그 밖에 3, 나는 나의 자신의 기능을 빠져나갈 수있어 밖으로의 UML 모델을합니다.