Simon Brown 全球知名软件架构独立咨询师、讲师,创办了专门讨论软件架构问题的网站“编码架构”(codingthearchitecture.com)。他自称是写代码的软件架构师和明白架构的软件开发者。自2008年以来的7年时间里,Simon在全球28个国家做过有关软件架构、技术领导力及其与敏捷的平衡等主题的百余场演讲,并于2012年8月在中国举办的ArchSummit全球架构师峰会上以“郁闷的架构师”和“如何设计安全的架构”为主题发表演讲,深受与会者好评。
Simon已为全球20多个国家的软件团队提供咨询和培训,他的客户既有小型技术初创企业,也不乏全球家喻户晓的品牌公司。Simon著有《程序员必读之软件架构》,关于写作这本书的初衷,他如是说:
跟很多人一样,我的职业生涯从软件开发开始,从前辈那里得到指导,和团队一起工作,交付软件系统。久而久之,我也开始设计软件系统中的一小部分,最后我的职务变成了这样:承担我现在认为是设计软件架构的任务。
我的职业生涯多数是为IT咨询机构工作,这意味着我参与过的大多数项目要么是为客户构架软件系统,要么是和客户一起完成构建。IT咨询机构要发展壮大,就需要更多的人和团队。要组建更多团队,又需要更多的软件架构师。这就是我写这本书的理由。
软件架构应该容易理解。第一次设计软件架构时,尽管有一些优秀的导师,但我还是搞不清自己该干些什么。的确,有很多软件架构方面的书籍,但它们的写作视角不一样。我发现其中大多数都偏研究方向,甚至完全是学术派,而我是一个寻求现实建议的软件开发者。我想写一本对我职业生涯的那个阶段有用的书,即面向软件开发者的软件架构书。
所有软件项目都需要架构。我真心喜欢敏捷方法,但其中很多方法缺乏对软件架构的明确重视,这让我如坐针毡。敏捷方法不是说不应该做任何预先设计,但它们通常也不明确探讨这一点。我发现这会让人们得出错误的结论,我也看到了缺乏预先思考可能造成的后果。我非常清楚大型预先设计也不能解决问题。我感觉适当地做一些预先思考能提供一种愉快的中间状态,而这特别适合与不同经验和背景的团队一起工作的情形。我更喜欢轻量的软件架构方法,这样我就可以尽早让一些结构单元到位,从而提高成功率。
传播轻量级软件架构实践。这些年我学习和实践了很多对设计软件架构很有帮助的做法。这些实践涉及软件设计流程,并通过发现技术风险来沟通和记录软件架构。我总是认为这些实践都合理,但情况并非如此。过去几年,我向上千人教授这些实践,并见证了他们的变化。写书可以帮助我把这些想法传递给更多人,希望其他人也能从中受益。
作品选读:软件架构的坏名声
最终入选问题的提问者,将获得图灵社区送出的图灵电子书一本。
往期活动回顾:
《代码本色:用编程模拟自然系统》作者Daniel Shiffman访谈问题有奖征集,问题入选的获奖者有:华元,旁观者,fdy1045,samael,2gua,孤光
Jolt大奖获奖作者Venkat Subramaniam访谈问题有奖征集,问题入选的获奖者有:cornell,2gua,fairjm,fdy1045
算法信息论奠基人格雷戈里·蔡汀访谈问题有奖征集,问题入选的获奖者有:pwh0996,旁观者,wlyg,赵丹 Diana Zhao,imt,坚持,华元,dlitchi,fdy1045,sssgggyyy,大廖
《硅谷百年史》作者皮埃罗•斯加鲁菲访谈问题有奖征集,问题入选的获奖者有:wlyg,cage,华元,fdy1045,Leo_M
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。