Print Search
帖子排序:    
帖子发起人: Daniel.Yang   发起时间: 2005-08-11 14:34 下午   回复: 4
zyyang 离线,最后访问时间: 2008-8-6 9:30:09 Daniel.Yang



发帖数前10位
注册: 2005-07-24
发 贴: 300
An Overly Long Guide to Being A Software Architect[讨论]
 2005-08-11, 14:34 下午

原文:
http://www.from9till2.com/PermaLink.aspx?guid=0f47a7aa-66d8-4229-989f-afbe3ae7d8bf

第一感觉就是, 作者很是能侃.
作者列出了成为一个好的架构者的11个Guideline.
1. Politics. 一个architect应该会很多的政治手段. 作者以为这一条应该是最重要的. 关键在在这一句:

In most cases you need to sell ideas on their merit as well as your reputation.

大多数情况下, 你推销的不仅仅是你自己的观点的好处, 而是你自己的reputation.
还有

The software architect's role is about 49% technical at best. Talk, listen, smooch, follow-through. Carnegie. Communicate.

49%的技术就OK了, 剩下的能力和一个政客没有什么区别.
这句话比较有意思:

This doesn't mean you go around inanely grinning at everyone like Tony Blair

想处理好关系, 绝对不能像Blair那样, 整天跳来跳去的, 对谁都呲着牙笑.

2. 说的是wider perspective的问题. 作为一个architect, 一定需要take a series of views and a wider perspective on the system design, 其他的在作者眼里只是gravy(调味的咚咚)而已.

3.Specialize or Don't - But Do Decide. 这个就好理解了. 作者自己也说:

If you consider yourself the team's best Coder/Tester/Network Engineer/DBA/UI designer/Manager, then as a software architect you won't be much fun to work with.
4. Patterns, Logic and Algorithms. 经验积累的问题吧.
the next time you get 'syntax anxiety' in that you can't remember how to do something from memory in code XYZ, try to step back and find the essence of what is the same from what you already know.
而不是干出"一个星期成为C#泛型专家"这种无聊的事情.

5.  New Technology Fetishes.  大家都热爱技术. 但是, 这是缺点, 并不是一个architect应该做的. 要做的是:
make sure you contain yourself and your enthusiasm when presented with an unfamiliar technology.
Pilot it, research it, go slow
if you can - but don't just go and rush to 3rd base with it just
because your friend said they did.



谨慎的审视他们, 越慢的接受越好, 不要因为你的朋友, 同事说他们已经搞定了这些新技术. 不要手痒.呵呵.

6. Build vs Buy - 要不要重新发明车轮, 这仍然是一个问题. 作者的建议是:

make sure you know what you are getting into and that you probably has an obligation to try not to invent anything.

7. Resources, Money and Economics. 作为一个employee, 你必须要给employer最好的ROI. 在这个前提下, you go-around
8. Requirements and The Domain.
   1) software projects fail in two main ways:
      a. The system doesn't work that well.
      b. The system works well but doesn't do what you need it to do.
   2)For requirements, at least spend as much time listening to the users as you do your implementation team.
   3)Try to actively look for aspects of the system you know are difficult to implement and go around with active questioning on those early on.
这句比较搞笑:

怎么应付open-ended需求所可能导致的over-extensibility: This is very hard and it is so tempting to add points throughout the system
design where you
try to foolishly anticipate growth.

应该体会这两句的不同:
- Please tell me what fields you need on the Insurance form?
- Do you need user defined fields on the Insurance form?

9.Trust and Communication. 这一点我有所体会. 不多说.
-Trust is the key to not going insane in any sort of team.
-The team, however large or small, is what makes the software and that conception and orchestration are important roles that have a limit like any other in the team.

10.Learning. 作者憋出一句有哲理的话:
continually learning and enjoying the feeling of not knowing something.

continually learning and enjoying the feeling of not knowing something.
不断的学习, 并且享受无知(这个词大了)所带来的乐趣.

11. Advice.
   这一条纯粹搞笑.

欢迎讨论.

IP 地址: 已记录   报告
dcding 离线,最后访问时间: 2006-11-7 13:48:14 dcding

发帖数前10位
注册: 2005-07-23
发 贴: 279
Re: An Overly Long Guide to Being A Software Architect[讨论]
 2005-08-11, 15:08 下午

我来谈谈自己的看法。

首先不能不承认,作者写得很不错。呵呵。

1.Politics.嗯,的确很重要。在一个企业和一个项目组中,SA往往是技术解决方案的Decision Maker或者具有很大影响力的人。从原文可以看出,

某些时候,善于倾听其实是积累你的信誉。

      当然49%的比例不太赞同。

2.Perspective and Views.完全赞同。而且的确应该善于积累必要的CheckList,“maybe just make up a checklist of all the perspectives on the system. Data Security, Bandwidth, Response time, Data growth, Integration are not the sort of things you can put on a design spec and ask someone to singularly 'make sure they code it well please'”。

     从某种程度上,SA的视角应该更宽一点。

3.Specialize or Don't - But Do Decide.善于利用专家的意见。SA不是万能的人,如果什么技术都要求可以,那作SA就太了无生趣了,也会变成一件痛苦的事情(you won't be much fun to work with)

4.Patterns, Logic and Algorithms. 要抓住技术背后的思想精华这一点很重要。"Rather than trying to be a complete C# generics expert next week, take a look at Eiffel or even Ada and look how they achieve polymorphic data-type signatures. Rather than review large pages of code or spaghetti models, try to step back and recognize what the base algorithm is doing. "

5.New Technology Fetishes. 热爱技术没有错,但是应该稳重,确信自己真正掌握熟悉了某个技术才谨慎评估决定是否采用。任何新技术都会带来风险的。

6.Build vs Buy. 同意。

7.Resources, Money and Economics. 同意。关注客户价值,花的都是投资者(Stakeholder)的Money啊。

8.Requirements and The Domain. 还是看作者的两个Tips吧。 1)不要只是被动的去问用户,而应主动站到用户的立场,静心理解体会用户业务(Domain Problems),否则你得到的都可能只是表面的东西。2)The second part of my tip is try to resist extensibility because of open-ended requirements. 最后说的两句话不同,我们的产品经理都应该深有体会了。

9.Trust and Communication. 的确不需多说。再加上两句话:Share & Open.

10.Learning。我的看法:作为SA,也应该Full of Passion,学吧。“活到老,学到老”,本身是乐趣啦。

11....

最后强调:好文!

IP 地址: 已记录   报告
zyyang 离线,最后访问时间: 2008-8-6 9:30:09 Daniel.Yang



发帖数前10位
注册: 2005-07-24
发 贴: 300
Re: An Overly Long Guide to Being A Software Architect[讨论]
 2005-08-11, 15:15 下午
粗粗的看了一遍, 只看到语言层次上的东西.
还需要回头仔细看看.
值得收藏.
IP 地址: 已记录   报告
dcding 离线,最后访问时间: 2006-11-7 13:48:14 dcding

发帖数前10位
注册: 2005-07-23
发 贴: 279
Re: An Overly Long Guide to Being A Software Architect[讨论]
 2005-08-11, 15:20 下午
很多东西还是要付诸行动的。
置顶吧。
IP 地址: 已记录   报告
rover 离线,最后访问时间: 2008-6-16 11:57:22 rover

发帖数前25位
注册: 2005-07-29
发 贴: 15
Re: An Overly Long Guide to Being A Software Architect[讨论]
 2006-09-01, 15:48 下午
这里的帖子都是二人传,没两个人看或者跟贴
IP 地址: 已记录   报告
合肥微软技术中心社区 » 技术讨论区 » 设计与架构 » Re: An Overly Long Guide to Being A Software Architect[讨论]

Powered by Community Server Powered by CnForums.Net