Quotes of All Topics . Occasions . Authors
Make it work, make it right, make it fast.
If you're having trouble succeeding, fail.
Extreme programming is an emotional experience.
If testing costs more than not testing, then don't test.
I mean, source code in files; how quaint, how seventies!
The community isn't nearly as afraid as it thinks it is.
Testing is not the point. The point is about responsibility.
Sometimes the problem has to mature before the solution can mature.
I'm not a great programmer; I'm just a good programmer with great habits.
If I'd had a charisma-ectomy in the beginning, XP would have gone nowhere.
My great-grandfather played organ for silent movies. Talkies in, Gramps out.
Optimism is an occupational hazard of programming; feedback is the treatment.
A plan is an example of what could happen, not a prediction of what will happen.
There's a huge latent market for software development that's just flat-out honest.
Learning research tells us that the time lag from experiment to feedback is critical.
Whether you draw diagrams that generate code or you type at a browser, you are coding.
I found out that most programmers don't like to test their software as intensely as I do.
The problem is, in software design, often the consequences of your decisions don't become apparent for years.
I think it's a combination of technical and social factors that leads to all the defects in deployed software.
First you learn the value of abstraction, then you learn the cost of abstraction, then you're ready to engineer.
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 system metaphor is a story that everyone--customers, programmers, and managers--can tell about how the system works.
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.
I've known people who have not mastered their tools who are good programmers, but not a tool master who remained a mediocre programmer.
Developer testing is an important step towards accountability. It gives developers a way to demonstrate the quality of the software they produce.
Agitator and the Agitar Management Dashboard lower the barriers to accountability in software development and increase the value of developer testing.
Sheet music, recording, radio, television, cassettes, CD burners, and file sharing have all invalidated, to some extent, the old model of making a living making music.
I tell people to start implementing when they are pretty sure there aren't more important stories out there. An iteration's worth of data is worth months of speculation.
One of the advantages of having to live with JUnit for 8 years is now we can look back and see which decisions we made worked nicely and which we would have done differently.
Design should be easy in the sense that every step should be obviously and clearly identifiable. Simplify elements to make change simple so you can manage the technical risk.
When Pandora doesn't pay, and bars don't pay, and weddings don't pay, and nobody buys CDs or shirts or concert tickets or lessons, then the musician can't make a living making music.
Organizations want small changes in functionality on a more regular basis. An organization like Flickr deploys a new version of its software every half hour. This is a cycle that feeds on itself.
How good the design is doesn't matter near as much as whether the design is getting better or worse. If it is getting better, day by day, I can live with it forever. If it is getting worse, I will die.
The marketing of XP is very deliberate and conscious. Part of it is in co-opting the power of the media; I make sure I'm newsworthy from time to time. Part is in co-opting some of my publisher's ad budget.
We could talk, act, and dress funny. We were excused for socially inappropriate behavior: 'Oh, he's a programmer'. It was all because we knew this technology stuff that other people found completely mystifying.
I lived near Santa Cruz for ten years, and the whole time, it bothered me what an exclusionary definition of 'inclusion' was in force. Social censure was applied to those who expressed unpopular or uncomfortable ideas.
Of the four project development variables - scope, cost, time and quality - quality isn't really a free variable. The only possible values are "excellent" and "insanely excellent", depending on whether lives are at stake.
The business changes. The technology changes. The team changes. The team members change. The problem isn't change, per se, because change is going to happen; the problem, rather, is the inability to cope with change when it comes.
Responsible Development is the style of development I aspire to now. It can be summarized by answering the question, How would I develop if it were my money? I'm amazed how many theoretical arguments evaporate when faced with this question.
I used Agitator on some code I had unit-tested, and it made me a better tester. As an Agitar Fellow, I look forward to the leverage of working with an outstanding organization as together we continue to improve the value of developer testing.
Received wisdom is that if you spend time up front getting the design right, you avoid costs later. But the longer you spend getting the design right, the more your upfront costs are, and the longer it takes for the software to start earning.
People are looking for software development that actually does something useful... People are looking for partners who deliver when promised, and at a reasonable and transparent price. I believe that the days of being able to value price software are numbered.
Responsible Development shares many practices with XP but the roots are different. Responsible Development's values are honesty, transparency, accountability and responsibility. These lead me to pairing, test-first, incremental design, continuous integration and so on because they support the values.
There are musicians who want to make a living making music. There are listeners who want to listen to music. Complicating this relationship is a whole bunch of history: some of the music I want to listen to was made a while ago in a different economy. Some of the models of making a living making music are no longer valid but persist.
Code wants to be simple... I had to give up the idea that I had the perfect vision of the system to which the system had to conform. Instead, I had to accept that I was only the vehicle for the system expressing its own desire for simplicity. My vision could shape initial direction, and my attention to the desires of the code could affect how quickly and how well the system found its desired shape, but the system is riding me much more than I am riding the system.