Software Doesn’t Really Exist

?

Software Doesn’t Really Exist

Chad LaVigne

SoFTWARE EnginEERing iS oFTEn CoMpAREd to well-established dis- ciplines such as civil engineering. There’s a problem with these analogies; unlike the very tangible products created by these traditional practices, soft- ware doesn’t really exist. Not in the traditional sense anyway. Those of us in the world of ones and zeros aren’t constrained by the same physical rules that bind classic engineering paradigms. While applying engineering principles to the software design phase works well, assuming you can implement the design in the same manner used by more traditional engineering approaches is unrealistic.

Both business and software are living, moving entities. Business requirements change rapidly due to things like newly acquired business partners and market- ing strategies. This makes it very difficult to approach a software project in the same manner as a traditional engineering pursuit such as bridge construction. It is highly unlikely that you’ll be asked to move the location of a bridge halfway through a construction project. However, it is very likely that the acquisition of a business partner will require you to add support for organization-based content management to an application. This comparison should put things into perspective. We often say that software architecture decisions are difficult to change but not nearly so much as things that are literally and figuratively set in stone.

Knowing the products we build are pliable and that the requirements sur- rounding them are likely to change puts us in a different position than someone building an immovable object. Engineering endeavors of the physical flavor are much easier to implement in a “plan the work, work the plan” nature. With software, things need to be tackled in more of a “plan the work, massage the plan” fashion.

?

??These differences aren’t always bad news—at times they can be advantageous. For example, you’re not necessarily constrained to building the components of a software system in a specific order so you can tackle high-risk issues first. This is in direct contrast to something like bridge construction, where there are many physical limitations surrounding the order in which tasks are accomplished.

However, the flexibility of software engineering does present some issues, many of which are self-imposed. As architects, we are very aware of the “soft” nature of our craft and we like to solve problems. Worse yet, the business own- ers are vaguely aware of these facts. This makes it easy for them to push big changes. Don’t be too eager to accommodate large architectural changes just because it appeals to your solution-providing nature. Decisions like that can break an otherwise healthy project.

Remember that a requirements document is not a blueprint, and software doesn’t really exist. The virtual objects that we create are easier to change than their physical-world counterparts, which is a good thing because many times they’re required to. It’s OK to plan as though we’re building an immovable object; we just can’t be surprised or unprepared when we’re asked to move said object.

时间: 2024-10-11 21:39:53

Software Doesn’t Really Exist的相关文章

http://www.apple.com/customer-letter/

Typora Writingshtml, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size:

Check Your Code First Before Looking to Blame Others

Check Your Code First Before Looking to Blame Others Allan Kelly DEVELOPERS-ALL OF US!-often have trouble believing our own code is bro- ken. It is just so improbable that, for once, it must be the compiler that's broken. Yet, in truth, it is very (v

Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

A method of transferring data between a software defined network (SDN) and an information-centric network (ICN), wherein the method comprises receiving a request from an SDN node for a specific named content stored on an ICN, wherein the request is e

software architecture

12 what is a stakeholder. 11 what kind is UML? UML is a seminotation way. 10 List notation ways for architecture documentation and give their differences. there are three notation ways: Informal notations, semiformal Notation and Formal notations. in

Oracle设置默认数据库,ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist

Oracle 设置默认数据库 如果我们的服务器上或者电脑上安装了多个数据库,当我们使用sqlplus时如果为指定数据库时登录到的是哪一个数据库呢?今天遇到了一个老问题: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist 以前也遇到过:根据网上的博文一步一步操作下就OK了,可是今天试了下不行,经过分析发现原来是我登录进入是另一个数据库,可如果每次都指定登录到那个数据库太麻烦了,就去查询了些资料

13 Free GIS Software Options: Map the World in Open Source

13 Free GIS Software Options: Map the World in Open Source A LIST OF FREE OPEN SOURCE MAPPING SOFTWARE 1025 SHARES FacebookTwitterSubscribe Your search for free GIS software is now over You don't have to pay a king's ransom to map the world. This is

The Independent JPEG Group's JPEG software Android源码中 JPEG的ReadMe文件

The Independent JPEG Group's JPEG software========================================== README for release 6b of 27-Mar-1998==================================== This distribution contains the sixth public release of the Independent JPEGGroup's free JPEG

a note of R software write Function

Functionals “To become significantly more reliable, code must become more transparent. In particular, nested conditions and loops must be viewed with great suspicion. Complicated control flows confuse programmers. Messy code often hides bugs.” — Bjar

启动Tomcat报异常host-manager does not exist or is not a readable directory

前几天重新安装了Tomcat6,安装完Tomcat6后在wepapps下面会有一些tomcat自带的项目(root.manager.host- manager等几个),这几天项目没什么用我就删掉了,后来在MyEclipse中配置好Tomcat,新建web项目,在启动Tomcat是会出现 严重: Error starting static Resources java.lang.IllegalArgumentException: Document base D:/Program Files/Apa