Mindomorichiede le funzioni javascript del tuo browser attivate e l'ultima versione del plugin di Adobe Flash Player.


Get Adobe Flash player

After getting used to testing, you will code with much more confidence. When faced with a big refactoring, you have to take it in small incemental steps. In strict ownership code diverges from team's understanding. Discourage communication that doesn't help Things that have to be communicated, must get communicated when they need to be communicated, in the amount of detail they need to be communicated. Constant refactoring breaks the system into little objects and little methos, which will also lower the change that two pairs of programmers will change the same class or method at the same time. If several tasks each take an hour, combine them to form a larger task. If you accidently break something at a distance, you will know it in matter of hours, not in days, weeks or months. Trust in your own, your partner's and team's abilities. Prevents complex code from entering the system. Management Pares requirements and approaches? While partner is typing, the other one is thinking at a more strategic level. Have tools that support a fast integration/build/test cycle. Integration must not take couple of hours. Refactoring Structured communication Programming and testing together is faster than just programming. Fine tuning Do what is needed to do and feel relaxed while doing it. Good design organizes the logic. Coding Programmers must be able to tell where and what are the problems in the code, explain the consequences of other people's decisions, express their fears, get support and be free to deliver bad news without getting punished. Aim to quality. It will also sustain confortability and enjoyment toward the work. Too much, too early? Too much details in a discussion might conceal an important part of the communication. Fixing a major flaw might take a few days of concentrated effort and while doing that half of the tests might get broken. Customer Both, generating code and drawing diagrams is coding. To-do cards Increases your feeling of personal power on a project. Coach You will be less likely to break something. Communication You will have an entirely different discussion, if you are chewing at the same time. Food is a hallmark of XP projects. Each party believes that the other has their best interest at heart, and the interests of the larger community. Each party is willing to let the other do their job, joining the skills, experience and perspective of both. Too tight budget? Should be given two or three iterations of asking lots of questions, acting as a pair programming partner, and reading lots of tests and code. Collective ownership In-production Tests must not interact with each other as that way you avoid the problem that one test fails and causes hundred other failures. Coding together enables seeing the ideas in partner's mind taking shape on their way in finding a logically expressed form. Be prepared to change the team structure and consider rotating all the programmers to man the help desk as there are things to be learned from supporting the product that way. Turns easily into learning. Designing with pictures is suitable only till to the point, where a question can be answered with code. Pictures, which might be drawn on a whiteboard, aren't saved. Progress tracker When you need to refactor or fix a bug, write a test first. Test things that might break. Should be put into, as soon after it begins to make sense, as that way it can be felt what the system is like in action and discover how it can best be exploited. Information rapidly diffuses throughout the team just as the dye spreads throughout a pool. Should be available as development partner, particularly for new programmers beginning to take responsibility or for difficult technical tasks. Tests If the computers are in the wrong place, they are moved. If the partitions are in the way, they are taken down. If the lights are too bright, they are taken out. Instinct Team members need to be able to see each other, to hear shouted one-off questions, to accidently hear conversations to which they have vital contributions. Chaos would arise, if everyone would just be making changes that fit to their own purposes -- especially when related objects and lines of code have some kind of relationship. Environment Tasks that take more than a few days must be split . Throwing code away. Courage Until all the tests run, you aren't done. Generally the tasks are smaller than the whole story. Don't take your eyes off the road, even when things seem to be going perfectly. If something is best expressed as pictures, then it should definately be done and maintained as such. If you can't estimate a task at a few days, break it down into smaller tasks. Other roles Product Can also test nonfunctional requirements like performance and adherence of code standards. Code gives a change to communicate clearly and concisely. Be well rested, and you will have more courage and are less likely to make mistakes. Might arise from concurrent learning and implementing. One might wish to work with a particular partner, but more commonly you just find someone who is available. Frustration Reserve a little of the nicest space off to one side for a communal space. Put in an espresso maker, couches, some toys, something to draw people there. Play to win Watches the complemention of the tasks to give the whole team feedback. Budget and resources Reasonably complete test suite must run in a few minutes. Continuous integration Not all ideas can be justified for putting into the system for current release, and therefore you make a visible list so everyone can see where you will be going after this release. New team member Gap between partners will not be so noticeable after couple of months. eXtreme Programming Should review the schedule every two or three weeks to see if the team's overall velocity matches the plan. Pair-programming Perfect in the late of the game as you will have gathered more knowledge about design of the system and have realistic estimates about production load on the system. Overtime is a symptom of serious problem on the project. You must not work a second week of overtime. Playing to not lose would be Developing by the book for the reason of being able to say it wasn't my fault . Under stress, people revert and they will stop writing tests, put off refactoring and avoid integrating. Changes are that your programming partner is feeling himself more calm and can lead the progress more further. While shifting between old and new code, you might notice tendency in avoiding the old code, but this avoidance should be resisted and all the code brought forward. Making a decision without testing it, will increase the probability of the risks compound.