I think it's a combination of technical and social factors that leads to all the defects in deployed software.

I try to avoid long-range plans and visions - that way I can more easily deal with anything new that comes up.

The coach doesn't have to play the sport as well as you do. They have to watch you and get you to be your best.

I'm a technical manager, but I don't have to take care of people. I only have to worry about technology itself.

I've never regretted not making Linux shareware: I really don't like the pay for use binary shareware programs.

When you choose a language, you're choosing more than a set of technical trade-offs-you're choosing a community.

First you learn the value of abstraction, then you learn the cost of abstraction, then you're ready to engineer.

I don't expect to go hungry if I decide to leave the University. Resume: Linux looks pretty good in many places.

And 1.1.81 is officially BugFree(tm), so if you receive any bug-reports on it, you know they are just evil lies.

Part of doing Linux was that I had to communicate a lot more instead of just being a geek in front of a computer.

It was such a relief to program in user mode for a change. Not having to care about the small stuff is wonderful.

I've never regretted not making Linux shareware: I really don't like the "pay for use" binary shareware programs.

Google is more than a business. Google is a belief system. And we believe passionately in the open Internet model.

C++ also supports the notion of friends: cooperative classes that are permitted to see each other's private parts.

The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast.

That's what makes Linux so good: you put in something, and that effort multiplies. It's a positive feedback cycle.

When to use iterative development? You should use iterative development only on projects that you want to succeed.

I want my office to be quiet. The loudest thing in the room - by far - should be the occasional purring of the cat.

I work day-to-day on C# and .Net and work at home two days a week so I can do deep thinking, writing and reflecting.

If your goals is to produce something of permanent value, you start to think differently about you want on the site.

The way to do good basic design isn't actually to be really smart about it, but to try to have a few basic concepts.

Facial recognition, completely unmonitored, can be used for very bad things. It can be used for stalking, for example.

I don't like the feeling, but I've got to say that a little fear makes me a more focused, more responsible programmer.

The correct form factor for a laptop is obviously 12" and 2 lbs, and I don't understand why everybody gets that wrong.

The idea of abstracting away the one thing that must be blindingly fast, the kernel, is inherently counter productive.

Only wimps use tape backup. Real men just upload their important stuff on ftp and let the rest of the world mirror it.

Technology is always evolving, and companies.. not just search companies.. can't be afraid to take advantage of change.

I have never seen an experienced programmer who routinely made detailed flow charts before beginning to write programs.

Peel back the facade of rigorous methodology projects and ask why the project was successful, and the answer is people.

Whoever came up with "hold the shift key for eight seconds to turn on 'your keyboard is buggered' mode" should be shot.

I've been employed by the University of Helsinki, and they've been perfectly happy to keep me employed and doing Linux.

Agility is the ability to adapt and respond to change … agile organizations view change as an opportunity, not a threat.

The system metaphor is a story that everyone--customers, programmers, and managers--can tell about how the system works.

The fundamental problem with program maintenance is that fixing a defect has a substantial chance of introducing another.

Talk to your customers. Find out what they need. Don't pay any attention to the competition. They're not relevant to you.

Capitalism is based on ruthless exploitation and competition, and leads inevitably to the development of mega monopolies.

I like to think that I've been a good manager. That fact has been very instrumental in making Linux a successful product.

I spend most of my time assuming the world is not ready for the technology revolution that will be happening to them soon.

If you don't handle [exceptions], we shut your application down. That dramatically increases the reliability of the system.

If you thought when you got your job at 20 that it would never change you were misinformed. Retrain yourself to be curious.

There is a strong movement towards increased accountability for software developers and software development organizations.

The world is changing, and I believe that, if I want to stay employed as a programmer, I'm going to have to change with it.

Listening, Testing, Coding, Designing. That's all there is to software. Anyone who tells you different is selling something.

A rational model of software is to design it quickly - the economic pressure to improvise presents an interesting challenge.

Real quality means making sure that people are proud of the code they write, that they're involved and taking it personally.

I spend a lot more time than any person should have to talking with lawyers and thinking about intellectual property issues.

If you think penguins are fat and waddle, you have never been attacked by one running at you in excess of 100 miles per hour.

It's what I call "mental masturbation", when you engage is some pointless intellectual exercise that has no possible meaning.

The pathology of setting a deadline to the earliest articulable date essentially guarantees that the schedule will be missed.

I don't believe society understands what happens when everything is available, knowable and recorded by everyone all the time.

Share This Page