中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 测试
Software Development: Science or Art? @ JDJ
作者:未知 时间:2005-08-10 22:20 出处:Java频道 责编:chinaitpower
              摘要:Software Development: Science or Art? @ JDJ

Many of the problems related to software development are at the individual level, with those who create bad code rather than with any specific technology issue. Therefore the goal of anyone staffing a project is to attract employees most likely to ensure success. The infamous 1968 study by Sackman, Erikson, and Grant, "Exploratory experimental studies comparing online and offline programming performance," concluded that productivity variation between good and bad developers was a factor of 10. The test was based on how quickly their subjects could write a program to solve a maze algorithm, and implicit in this was the assumption that the coders who solved it fastest were superior. It's not an illogical conclusion to make. Most computer science faculties do the same when they grade students based on their ability to write sort routines or their intimate knowledge of Knuth's programming fundamentals.

Frederick P. Brooks in The Mythical Man-Month writes, "The hard part of building software is the specification, design, and testing of the conceptual construct, not the labor of representing it." In other words, it's the thought process that is essential to success, rather than coding horsepower. If the act of programming is more aligned to a creative process than to one requiring a traditional engineering discipline, why is this not encouraged and recognized more? The most successful teams I've worked on are usually composed of well-rounded individuals who aren't chasing the latest technology fad to pump up their résumé. These people have both feet firmly on the ground. They stay focused on delivering sensible solutions to the immediate problems.

Writing good software involves foregoing gratuitous complexity, concentrating rather on such concepts as reuse, maintainability, and reliability. Often those most qualified for this aren't professional computer scientists but instead graduates of other disciplines who, instead of focusing on being one-person programming machines, have developed their analytical, creative, and communication skills while at college. It's hard to formalize what traits good programmers need, but I think people interested in subjects outside of computing, the musically minded for instance, make the best coders.

Mathematics disciplines are often separated into pure and applied: number theory versus building a bridge that won't fall down. Perhaps computer science needs the same, so that future generations of programmers will be more grounded in the practicalities of building and maintaining application code. The two most important movements in software of recent years - design patterns and extreme programming - were not born out of any academic research institute but instead came from experienced developers looking for ways to improve the production process.

In "Hackers and Painters", Paul Graham draws parallels between a programmer and an artist. The artist doesn't need to know the chemistry of paint, but instead is responsible for knowing how to mix and match colors to create the finished canvas. The best coders likewise are not immersed in esoteric computing theory, but have a picture of the finished product in their minds and understand the techniques required and the tools available to arrive at completion.

In terms of degree results and employment placements, the safe route for college computer science departments is to recruit mathematically minded students. These can be drilled with little effort, or thought, frankly, into the next generation of speed coders. Each year they collect their degrees only to join business IT departments or software companies. Computer science was born out of a marriage of mathematics and engineering, but surely it's time for the faculty to take a step away from academic roots and try to attract and nurture the more practical side of programming. Universities must attract creative individuals as the next generation of programmers, and dispel the myth that successful software development is a sport practiced by mathmo nerds. Instead it's more akin to poetry for machines, with computer language syntax being the artist's medium.

References

  • Sackman, Erikson, and Grant: Click Here !
  • The Mythical Man-Month: www.awbc.com
  • Hackers and Painters: www.paulgraham.com/hp.html
  • 关闭本页
     
    首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
    Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有