本节书摘来华章计算机《软件工艺师:专业、务实、自豪》一书中的第3章 ,第3.6节,[英]桑德罗·曼卡索(Sandro Mancuso)著 爱飞翔 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.6 软件开发是手艺、生意、工程、科学,还是艺术
刚参与软件工艺活动时,笔者记得自己总在讨论什么是软件开发。一开始笔者觉得它是门艺术,过了好些年,又感觉它像是一门手艺。但笔者认识的许多人,包括自己所崇敬的一些人在内,却根本不赞同这种看法。有人觉得软件开发是生意,也有人认为它是工程。但很少有人把软件开发当成科学。
无论是把软件开发看作艺术、手艺、生意、工程,还是把它看成科学,主张不同的开发者都觉得自己的理由非常充分。只要去听一听这些支持各自论点的理由,你就会发现,其中许多理由都能说得通,虽然某些理由可能比另外一些理由更加充分,但总的来说,每条理由都或多或少能够成立。
另外一项较大的分歧在于软件工艺这个名称本身。有些人完全排斥这个词。他们认为,把富于创新精神且极速变化的软件行业和传统的手工业联系起来是没有意义的。这种想法确实有道理。
这些年来,笔者参与了好几场这样的争论,花费了极大的精力来说服别人接纳“软件工艺”这套比喻,并且告诉他们软件开发为何是一项手艺。在逐渐深入讨论的过程中,笔者突然发现,其实这根本就不重要。在需要讨论的事情里面,这是最微不足道的一件。虽说笔者自己确实很喜欢软件工艺这种比喻方式,并且乐于把软件开发当成一门手艺,但真正值得关注的,并不是应该采用哪种喻体来比喻软件开发,而是软件工艺所提倡的那些重要理念。
无论如何,软件工艺师关注的是提升专业水准,并且在帮助其他开发者的同时提高自身能力,以便成为专业的软件开发者,而不是那种只会服从命令的平庸工人。