《软件工艺》——中译本序

(《软件工艺》一书即将由人民邮电出版社出版,详情参见http://www.china-pub.com/computers/subject/huodong/ry12.23/tyzt.htm。本文是作者Pete McBreen专门为中译本所作的序言。)

中译本序

看见“软件工艺”的思想在全世界得到日益广泛的认同,我欣喜若狂。这本《软件工艺》,是为软件开发的工艺学送上的赞歌。在过去的30年中,很多人试图把软件开发变成一种机械化的行为。尽管如此,优秀的开发者们仍然知道:真正起决定性作用的,还是编写软件的人,是他们的技能和经验。没错,现在有很多精良的工具和技术,但最关键的还是使用这些工具的人,是他们的才华。

从事软件开发的企业为什么会把这一切置诸脑后?我不知道。不止一次,我看到早期的文献中强调“软件编写者的能力”的重要性。软件工艺的思想毫不新鲜,在我着手撰写本书之前,Jim CoplienSteve McConnell(以及其他很多人)早已在各自的著作中提到过它。掌握软件开发中的工具和技术需要耗费很多时间,但在那之后,开发者还需要学会并习惯交付优秀的软件。

在过去的一段时间里,人们似乎太热衷于追寻一蹴而就的终南捷径,静听“掌握软件开发技艺”的传统似乎已经不再流行。但是,时间早已证明,只有精通自己的技艺,才是获得成功的不二法门。对于软件开发之外的很多行业,这个道理是众所周知的。即便是批量生产的标准件取代了手工作坊,人们在内心深处依然坚信:哪怕是司空见惯的日常用品,也只有工艺大师才能做出精品。

自出版以来,本书已经先后被翻译为日文和韩文,现在又有了中文译本。本书中的思想与西方的工艺学传统、学徒传统有着紧密的联系,看着这些思想被如此贴切地翻译到另一种文化中,是一件颇有兴味的事情。曾经有很多人错误地认为软件开发是一项机械性的行为,希望本书能帮助你避免重蹈覆辙——这就是我给本书读者的祝愿。

Pete McBreen

20038

 

This book asks some tough questions. Is software engineering appropriate for projects of less than 100 developer-years? Is the specialization inherent in software engineering a good idea? Can software development even be expressed in engineering terms? It also asks some sensitive ones: Are less experienced developers paid too much, and should senior developers be paid more than almost anyone else in their organization? Should tools that are less than ten years old be used on long-term projects? And at its heart, this book asks the big question: How can we reorganize the process of building software so that it works? The book has some controversial answers: It suggests that we've lost sight of a simple truth—large methodologies and formal structures don't write software; people do. To fix a growing crisis in software development, we need to start by producing better developers. To do that, Pete looks back to a system that has worked well for hundreds of years—craftsmanship. Craftsmanship is far more than a tag for high-quality work. In the full meaning of the word, craftsmanship is a self-sustaining system in which masters arrange for the training of their replacements and where status is based purely on the work you've done. Apprentices, journeymen, and craftsman all work together as a team, learning from each other. Customers select these teams based on the team's reputation, and teams accept only work that they feel will enhance their reputation. Can this full system of craftsmanship work in our industry? Frankly, I don't know. Many entrenched interests will certainly oppose the idea. But I do know that being apprenticed to masters works. It worked for me. I was lucky enough to attend a great university, where I learned much theory (there was less theory back then). What really made the experience shine, however, was an apprenticeship that I served. One of the graduate students took me under his wing. He didn't explicitly teach me, but he showed me by example how a great programmer thinks. Working next to him month after month, I absorbed more practical knowledge about design, coding, and debugging than any course could impart. Later, I joined a start-up in London where I served a different sort of apprenticeship. My new boss showed me that software development was as about people as it was about technology. He helped me understand the business side of the equation and taught me how great development builds personal relationships from a base of technical strength. I “graduated” from these two very different apprenticeships a far, far better developer than I started out. Based on my personal experience, I'm a believer. Working with masters is the best way to learn a craft. This book offers more than ideas about training the next generation of developers. It is also about a philosophy. Craftsmanship stands for taking personal responsibility: for your work, for your personal development, and for your profession. It doesn't matter how you develop software. You could be working 9-to-5 in a CMM level 5 shop, or you could be pulling 100-hour, caffeine-drenched weeks developing the next cool first-person shooter. You could use RUP, XP, or SCRUM—or no process at all. Whatever the structure of your work, the real value in software development is added when skilled developers write high-quality, appropriate code, delivering what the customer needs. Methodologies don't produce these skilled developers. Honoring and practicing craftsmanship, along with the other ideas in this book, just might. You'll do yourself and your career a favor if you spend some time with Pete McBreen's tough questions. David Thomas The Pragmatic Programmers
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值