Don’t Rely on “Magic Happens Here”

Don’t Rely on “Magic Happens Here”

Alan Griffiths

iF YOU LOOK AT ANY ACTiViTY, process, or discipline from far enough away, it looks simple. Managers with no experience of development think what pro- grammers do is simple, and programmers with no experience of management think the same of what managers do.

Programming is something some people do—some of the time. And the hard part—the thinking—is the least visible and least appreciated by the uninitiated. There have been many attempts to remove the need for this skilled think- ing over the decades. One of the earliest and most memorable is the effort by Grace Hopper to make programming languages less cryptic—which some accounts predicted would remove the need for specialist programmers. The result (COBOL) has contributed to the income of many specialist programmers over subsequent decades.

The persistent vision that software development can be simplified by removing programming is, to the programmer who understands what is involved, obvi- ously na?ve. But the mental process that leads to this mistake is part of human nature, and programmers are just as prone to making it as everyone else.

On any project, there are likely many things that an individual programmer doesn’t get actively involved in: eliciting requirements from users, getting bud- gets approved, setting up the build server, deploying the application to QA and production environments, migrating the business from the old processes or programs, etc.

??58 97 Things Every Programmer Should Know

?

???????????????When you aren’t actively involved in things, there is an unconscious tendency to assume that they are simple and happen “by magic.” While the magic con- tinues to happen, all is well. But when—it is usually “when” and not “if ”—the magic stops, the project is in trouble.

I’ve seen projects lose weeks of developer time because no one understood how they relied on “the right” version of a DLL being loaded. When things started failing intermittently, team members looked everywhere else before someone noticed that “a wrong” version of the DLL was being loaded.

Another department was running smoothly—projects delivered on time, no late-night debugging sessions, no emergency fixes. So smoothly, in fact, that senior management decided that things “ran themselves,” and it could do without the project manager. Within six months, the projects in the depart- ment looked just like the rest of the organization—late, buggy, and continually being patched.

You don’t have to understand all the magic that makes your project work, but it doesn’t hurt to understand some of it—or to appreciate someone who understands the bits you don’t.

Most importantly, make sure that when the magic stops, it can be started again.

时间: 2024-10-30 13:49:37

Don’t Rely on “Magic Happens Here”的相关文章

【转】The magic behind array length property

Developer deals with arrays every day. Being a collection, an important property to query is the number of items: Array.prototype.length. In JavaScript the length does not always indicate the number of existing elements (for sparse arrays) and modify

Warning: date(): It is not safe to rely on the system's timezone settings.

PHP调试的时候出现了警告: It is not safe to rely on the system解决方法,其实就是时区设置不正确造成的,本文提供了3种方法来解决这个问题. 实际上,从PHP 5.1.0开始当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息,而又在php中,date.timezone这个选项,默认情况下是关闭的,无论用什么php命令都是格林威治标准时间,但是PHP5.3中如果没有设置部

HDU 4421 Bit Magic(2-sat)

HDU 4421 Bit Magic 题目链接 题意:就依据题目,给定b数组.看能不能构造出一个符合的a数组 思路:把每一个数字的每一个二进制位单独考虑.就变成一个2-sat题目了,依据题目中的式子建立2-sat的边.然后每一位跑2-sat.假设每位都符合.就是YES,假设有一位不符合就是NO 代码: #include <cstdio> #include <cstring> #include <cstdlib> #include <vector> #incl

php中的魔术方法(Magic methods)和魔术常亮

PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或empty()时调用 __unset(),

magic number介绍

magic number:魔数,这是放在linux的目录中的文件信息块中的一个标识符,一般只有几位,用来标识该文件是什么类型的文件,可以被什么样的应用使用.这个魔数不是固定的,有时候一个文件信息中的魔数可能会不断变化.这个东西不重要的,对用户造不成多少影响.两个例子:1.ELF文件的头部,前4个字节是魔数.这个常用于识别文件类型等.linux上,二进制的可执行文件的前四个字节是7f45,而在AIX上,二进制可执行文件的前四个字节是0x01df.2.内核程序中,给一些 IO 操作进行编号时,也会用

CES聚焦:荣耀Magic凭什么成最闪耀的星

就在美国科技博客TechCrunch以<要是这款高颜值高智慧的荣耀Magic能来美国就好了>为题的评论发布不到半个月,荣耀就借刚刚于拉斯维加斯召开的CES国际消费电子展的契机,将这款很"Magic"的产品带出国门,推向了全球市场.这款曾在国内引发广泛争议的焦点产品,凭借着手机端人工智能的开拓性创新,在素有"科技风向标"和"潮流科技博览会"美誉的CES上备受关注,甚至于有好事者将之称为"2016~2017手机界最闪耀的一颗星&

codeforces 710C C. Magic Odd Square(构造)

题目链接: C. Magic Odd Square Find an n × n matrix with different numbers from 1 to n2, so the sum in each row, column and both main diagonals are odd. Input The only line contains odd integer n (1 ≤ n ≤ 49). Output Print n lines with n integers. All the

PHP Warning: Unknown: It is not safe to rely on the system&#39;s timezone settings

PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings 解决: 2.找到date.timezone,修改为 date.timezone = RPC,后保存. [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone =  修改为 [D

ZOJ 3622 Magic Number(数)

题意  假设一个正整数y满足  将随意正整数x放到y的左边得到的数z满足 z%y==0  那么这个数就是个Magic Number   给你一个范围  求这个范围内Magic Number的个数 令 l表示y的位数  ly=10^l  那么z=x*ly + y  要z%y==0   easy看出  仅仅需 x*ly%y==0 又由于x是随意的  所以一个Magic Number必须满足 ly%y==0 y<2^31  所以l最大为10 直接枚举l  找到全部符合的y即可了 当 ly%y==0