|
原文: 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. 这一条纯粹搞笑.
欢迎讨论.
|