It is about being open about what we are capable of doing and then doing it. And, allowing and expecting others to do the same. It is about getting past our adolescent surety that "I know better than everyone else and all I need is to be left alone to be the greatest." It is about finding our adult place in the larger world, finding our place in the community including the realm of business/work. It is about the process of becoming more of our best selves and in the process our best as developers. And, it is about writing great code that is really good for business.
Good relationships lead to good business. Productivity and confidence are related to our human relationships in the workplace as well as to our coding or other work activities. You need both technique and good relationships to be successful. XP addresses both.
Prepare for success. Don't protect yourself from success by holding back. Do your best and then deal with the consequences. That's extreme. You leave yourself exposed. For some people that is incredibly scary, for others it's daily life. That is why there are such polarized reactions to XP.
XP is a style of software development focusing on excellent application of programming techniques, clear communication, and teamwork which allows us to accomplish things we previously could not even imagine. XP includes:
A philosophy of software development based on the values of communication, feedback, simplicity, courage, and respect.
A body of practices proven useful in improving software development. The practices complement each other, amplifying their effects. They are chosen as expressions of the values.
A set of complementary principles, intellectual techniques for translating the values into practice, useful when there isn't a practice handy for your particular problem.
A community that shares these values and many of the same practices.
XP is a path of improvement to excellence for people coming together to develop software. It is distinguished from other methodologies by:
Its short development cycles, resulting in early, concrete, and continuing feedback.
Its incremental planning approach, which quickly comes up with an overall plan that is expected to evolve through the life of the project.
Its ability to flexibly schedule the implementation of functionality, responding to changing business needs.
Its reliance on automated tests written by programmers, customers, and testers to monitor the progress of development, to allow the system to evolve, and to catch defects early.
Its reliance on oral communication, tests, and source code to communicate system structure and intent.
Its reliance on an evolutionary design process that lasts as long as the system lasts.
Its reliance on the close collaboration of actively engaged individuals with ordinary talent.
Its reliance on practices that work with both the short-term instincts of the team members and the long-term interests of the project.
No comments:
Post a Comment
Your comments are welcome!