Courage is one of the Values of Extreme Programming. To wit:
We will tell the truth about progress and estimates. We don’t document excuses for failure because we plan to succeed. We don’t fear anything because no one ever works alone. We will adapt to changes when ever they happen.
Courage underlies several XP and Agile practices, and several practices are designed to increase how courageous the team can be (or at least, to eliminate fear). For example, refactoring complex software is a daunting task, but one can find courage in facing this task with another team member via pair programming, as well as from the fact that during and after the refactoring, tests writting via test-driven development confirm the software continues to behave correctly. Integrating and shipping software can be scary as well, but this fear can be reduced through the application of continuous integration and the use of small releases.
Courage is an important value in software development because it requires courage to be transparent and honest with customers and stakeholders, and it requires courage to identify weaknesses in ourselves, our team, and our organization and to work to improve these weaknesses.
“The only thing we have to fear is fear itself.” – Franklin D. Roosevelt