Monday, October 11, 2010

Extreme Programming (eXtreme Programming) Summary


顥?顥?extreme Programming (eXtreme Programming) is a development of discipline, simplicity, communication, feedback and courage as the basic aim. Its approach is practical and effective rules for the whole team closer together, through adequate feedback to enable the team to keep aware of their current situation and the proper regulation of the rules to suit their particular circumstances.

顥?顥?In Extreme Programming, every contributor is a project "team" full part. This team was built around a team every day and sit together to work together with business representatives - the "Client" set up.

顥?顥?core practice: the whole team

顥?顥?Extreme Programming teams use a simple approach to planning and tracking to determine what to do next and to predict when the project will be completed. Focus on business value, the team passed through a series of customer-defined test and fully integrated to create small software publishers.

顥?顥?core practice: planning strategies, small releases, customer test

顥?顥?extreme programmers the way through paired and group work together, through simple design and compulsory testing of code, constantly improve the design to ensure the design is always appropriate to the current needs.

顥?顥?core practices: simple design, pair programming, test-first development, design improvements

顥?顥?Extreme Programming team will always maintain a system to integrate and run all the time. The way programmers write in pairs all the product code, and have to work all the time. They form a similar code to ensure that all members can be required to understand and improve all the code.

顥?顥?core practice: continuous integration, collective code ownership, coding standards

顥?顥?Extreme Programming team shares a simple system of public and blueprint. All members can keep up from time to time in accordance with a kind of rhythm work.

顥?顥?core practice: the system metaphor, an acceptable pace

顥?顥?team as a whole

顥?顥?an XP project all participants as a team member sit together. The team must include a representative of the business - "customers" needs him to set the priority degree and the direction in charge of the entire project. Best to the client or his assistant is an end-user to understand the field, know what is needed. Team, of course, there are programmers. Team may include testers, who help customers define customer acceptance testing. Analysts as customer assistant, to help customers define requirements. Usually there will be a guide, he helped the team to track, promote the development process. There may be a manager, he provides resources to deal with foreign exchanges and the division of work. None of these duties must be unique to an individual: each of XP team members in any way they can do to participate, the best team no experts, only a few have special skills to participate in general persons.

顥?顥?planning strategy

顥?顥?XP software development projects to solve two key problems: the responsibility to predict what things will be completed during the period, and determine what needs to be done next. Grasp of the project focused on the right track - it is quite straightforward - more than hope that something will need to accurately predict which and how much time possible - this is very difficult. In XP there are two key planning steps to solve these two problems:

顥?顥?release plan is a practical demonstration programmers allow customers to obtain the desired characteristics, and programmers to assess their degree of difficulty. When the hand with the cost of assessment and the importance of these characteristics of cognitive processes, the customer to arrange a project plan. The initial release plan need to leave enough room for: priority and the assessment are not real reliable, and know the team before starting work, we can not exactly understand the progress of the development team. Even the initial release plan is not precise enough to be decisive, so XP teams often released from time to time correction program.

顥?顥?iteration plan is to take a practice for the development team a few weeks every direction. XP teams through two weeks of "iteration" to create a software system, the end of each iteration can be run to provide the practical use of software systems. During iteration plans, customer presentations within the next two weeks hope to complete features. Programmers to separate them into several tasks, and to assess their cost (up plans to release detailed some). Based on the previous iteration to complete the work, the team signed the current iteration of work will have to bear.

顥?顥?These plans are very simple, but they offer very good information and excellent steering control. Every few weeks, how much progress can be at a glance. In XP, there is no "90% complete": a feature story either completed or not completed. Concerned about the visual result is a nice little way of opposing arguments: on the one hand, the very intuitive, if progress is not satisfactory, the customer can cancel the project in a particular location. On the other hand, progress is obvious to, and determine the capacity of those things that will be completed very well, so XP projects are often less able to do more under the pressure of need.

顥?顥?customer test

顥?顥?characteristics as required by each part of the demonstration, XP Customer defines one or more automated acceptance tests to indicate that the property has been able to achieve. Team to achieve these tests and use them to prove to themselves and their clients features have been correctly implemented. Due to time pressures, automation is very important, manual tests will be skipped. It's like when the night comes, you can turn off your lights.

顥?顥?best XP team will test their customers the same treatment as a programmer tests: once the test run, and ever since has been the team will maintain its ability to run correctly. This means that systems can only be improved, always forward, from not be reversed.

顥?顥?small release

顥?顥?XP teams practice through two important ways a small release:

顥?顥?first, the team released in each iteration can be run, tested the software system to provide customer choice of commercial value. Customers can use this software for any purpose system is to assess whether or distributed to end users (highly recommended). The most important way to the end of each iteration when the software is visible, and submit to the customer. This ensures that all things are open and real.

顥?顥?Second, XP teams release as often as possible to their end users. XP Web projects to publish every day, home projects are published monthly or more frequently. Even simple products can be packaged to ship every quarter.

顥?顥?so often seem to create a good version may not likely, but XP teams all the time during the release. More information can see continuous integration, and note that the frequent release of these can be seen everywhere through the XP test (as customers test and test-first development described) becomes reality.

顥?顥?simple design

顥?顥?XP teams build software for a simple design. They start simple, and programmers in the testing and design improvements throughout the process, they kept the design simple. An XP team is always just keep the design functional requirements for the system current. There is no extra input, and software systems for the future is always ready.

顥?顥?In XP, the completion of the design is not a one-time thing, not a top-down thing, it is a matter from beginning to end. In the release planning and iterative design steps are planned in the rapid design process and set the capacity of the team throughout the project to improve the structure of the design. This is similar to extreme programming in an incremental and iterative process, good design is essential. This is the whole development process must be more attention to design reasons.

顥?顥?pair programming

顥?顥?all the products in the XP software is composed of two programmers sit side by side, in the same machine together completed. This practice ensures that all the product code has at least one of the other programmers were examined, and the result is better design, better testing and better code.

顥?顥?two programmers to do "a programmer's work" may seem a little inefficient, but in fact just the opposite. Studies show that the pair programming to programmers working alone in the same period of time will be better code. This shows that: two minds together much better than the one!

顥?顥?many programmers have not yet tried the case against the pair on the program. It does take some practice to do it, and you need to seriously practice a few weeks time to see results. 90% of the studied pair programming, programmers will like it, so we strongly recommend to all the teams it.

顥?顥?Aside from providing better code and tests, the team also provided into the knowledge transfer among the team. Exchange partners as a programmer on the ground, each person will someone from the other learned new knowledge. Programmers in learning, improving their technology, in terms of their team and the company becomes more valuable. Pairs, even if it outside of the implementation process in XP is a great success for everyone.

顥?顥?test-first development

顥?顥?feedback around extreme programming, and in software development, good feedback requires good testing. The best XP team practice "test-first development", in a small increase in a test cycle, then it can work. Almost easy, the code team has a test program is nearly 100% covered, in most cases this is a very important step forward. (If your programmers have provided more existing test procedure, you will have more power. Will they survive, they will provide help!)

顥?顥?just wrote a test program is not enough: you have to run them. Here, Extreme Programming is extreme. These "programmer tests", or "unit testing" is a complete set, when programmers publish any code to the code base of the time (paired programmers are usually published twice or more times a day), Every programmer tests must run correctly. Are 100 percent all the time to run! This means that programmers can immediately be done about how their feedback. Furthermore, these tests provide invaluable software design support for improvement.

顥?顥?design improvement

顥?顥?extreme programming in each iteration are focused on providing business value. In the course of the project in order to complete this goal, the software system must have a good design. Selectivity may be reduced and ultimately stagnation. So XP uses a process of continuous improvement design, called "reconstruction", the title comes from Martin Fowler, "Reconstruction: Improving the design of existing code."

顥?顥?concerned about the reconstruction process of removing duplicate (a clear sign of poor design), and to improve code "cohesion", as well as reduce the "coupling." High cohesion and low coupling in the last three decades been recognized as good design features. The result is that XP teams simple design from a good start, and always let the software system has a good simple design. This allows them to maintain their development speed, and often in practice to improve the speed of project development.

顥?顥?reconstruction is of course through comprehensive testing to provide strong support, these tests used to identify the time when the design changes will not damage anything in the system. The customer tests and programmer tests are a valid assessment of factors. XP is the practice of mutual support: they will be more robust than their independence.

顥?顥?Continuous Integration

顥?顥?Extreme Programming team is always to keep the system fully integrated. We say that a daily build version is available for the weak: XP teams build the system many times every day. (A 40-person XP team integrates at least daily from 8 to 10 times!)

顥?顥?benefits of this practice can recall you may have heard of (or is personally involved in) projects to understand: When the system is built every week or when a lower frequency, usually into "integration hell" , where all things can not run and no one knows why.

顥?顥?little software project will bring to integrate a range of issues. First, although integration is the issue of good working conditions for the code, but the team is not to practice it, and often it is delegated to those who do not quite understand the whole system of people. Second, very few integrated code is often - I always prefer to say - flawed.

顥?顥?collective code ownership

顥?顥?In an extreme programming project, each pair of programmers can improve at any time any one of the code. This means that all the code in many people's attention more under the revenue code that enhance the quality and reduce defects. There is another important benefit: When the code is only by a single individual responsible for the time required features are often placed in the wrong place, because a programmer discovered that he needs a feature, but that code does not return his management.浠g爜鐨勬墍鏈夎?澶繖涔愯?涓嶈兘鍘诲鍔犺繖涓壒鎬э紝鎵?互杩欎釜绋嬪簭鍛樺彧濂芥妸杩欎釜鐗规?鍔犺繘浜嗚繖涓壒鎬ф湰涓嶅簲璇ュ瓨鍦ㄧ殑浠栬嚜宸辩殑浠g爜涓?杩欏鑷翠簡闅剧湅鐨勶紝闅句簬缁存姢鍒颁唬鐮侊紝鍏呮枼鐫?噸澶嶅拰浣庯紙宸級鐨勫唴鑱氥?

顥ヮ棩濡傛灉鏈変汉鍦ㄤ粬浠墍涓嶇悊瑙g殑浠g爜涓婅繘琛岀洸鐩殑淇敼鏃讹紝闆嗕綋浠g爜鎵?湁鏉冨彲鑳藉甫鏉ラ棶棰樸?XP閫氳繃涓ょ鍏抽敭鎶?湳鏉ラ伩鍏嶈繖绫荤殑闂锛氶?杩囩▼搴忓憳娴嬭瘯鏉ユ崟鑾烽敊璇紝鎴愬缂栫▼鍒欒〃鏄庡湪涓嶇啛鎮夌殑浠g爜涓婂伐浣滅殑鏃跺?鏈?匠閫斿緞鏄壘涓?釜杩欐柟闈㈢殑涓撳浣滀负浼欎即銆備负浜嗙‘淇濆湪闇?鏄繘琛屽ソ鐨勪慨鏀癸紝杩欑瀹炶返灏嗙煡璇嗗欢浼稿埌浜嗘暣涓洟闃熴?

顥ヮ棩缂栫爜鏍囧噯

顥ヮ棩XP鍥㈤槦閬靛惊涓?釜鍏叡鐨勭紪鐮佹爣鍑嗭紝鍥犳绯荤粺涓墍鏈夌殑浠g爜鐪嬩笂鍘婚兘鍍忓嚭鑷崟鐙竴涓?鈥旈潪甯告湁鑳藉姏鐨勨?鈥斾汉涔嬫墜銆傝繖涓爣鍑嗙殑瑙勫畾骞朵笉閲嶈锛氶噸瑕佺殑鏄璁╂墍鏈夌殑浠g爜鐪嬩笂鍘诲緢鐩镐技锛岀敤鏉ユ敮鎸侀泦浣撲唬鐮佹墍鏈夋潈銆?br />
顥ヮ棩绯荤粺姣斿柣

顥ヮ棩鏋佺缂栫▼鍥㈤槦瀵逛簬绋嬪簭濡備綍杩愪綔褰㈡垚涓?釜鍏辫瘑锛屾垜浠О涔嬩负鈥滅郴缁熸瘮鍠烩?銆傚湪鏈?匠鐘舵?鏃讹紝绯荤粺姣斿柣鏄叧浜庣▼搴忓浣曡繍浣滅殑涓?釜绠?崟鐨勭伒榄傛弿杩帮紝渚嬪鐢ㄢ?杩欎釜绋嬪簭宸ヤ綔鏃跺氨鍍忎竴绠卞瓙铚滆渹锛屽鍑哄鎵捐姳绮夊苟甯﹀洖铚傜鈥濅綔涓轰竴涓熀浜庝唬鐞嗙殑淇℃伅鏌ヨ绯荤粺鐨勬弿杩般?

顥ヮ棩鏈変簺鏃跺?涓?釜鍗佸垎璇楁剰鐨勬兂璞″彲鑳戒笉浼氬嚭鐜般?鍦ㄤ换浣曟儏鍐典笅锛屾棤璁烘湁娌℃湁鐢熷姩鐨勬瘮鍠伙紝XP鍥㈤槦閮戒細閫夌敤涓?釜鍏叡鐨勫懡鍚嶇郴缁熸潵纭繚姣忎釜浜洪兘鑳界悊瑙g郴缁熸槸濡備綍宸ヤ綔鐨勶紝浠ュ強鍒板摢閲屽幓鎵惧埌浣犳墍闇?鐨勫姛鑳斤紝鎴栬?鎵惧埌浣犺澧炲姞鍔熻兘鐨勬纭綅缃?

顥ヮ棩鍙帴鍙楃殑姝ヤ紣

顥ヮ棩鏋佺缂栫▼鍥㈤槦閮戒細鍦ㄨ繖閲屽緢闀跨殑涓?鏃堕棿銆備粬浠姫鍔涚殑宸ヤ綔锛屽苟涓斿湪涓?釜鑳藉涓嶆柇缁存寔鐨勬浼愪笅銆傝繖鎰忓懗鐫?湪鏈夋晥鐨勬椂鍊欎粬浠細鍔犵彮宸ヤ綔锛岃?涓斾粬浠粡甯歌繖鏍峰伐浣滄潵淇濊瘉姣忓懆閮芥湁鏈?ぇ鐨勭敓浜у姏銆傝繖鎭板綋鐨勮В閲婁簡姝讳骸绔炶禌寮忕殑椤圭洰鏃笉浼氭湁鐢熶骇鍔涗篃涓嶄細鍒涢?鏈夎川閲忕殑杞欢绯荤粺銆俋P鍥㈤槦鍦ㄨ繖閲屾槸瑕佽儨鍒╄?涓嶆槸瑕佹浜°?

顥ヮ棩灏忕粨

顥ヮ棩鏋佺缂栫▼鏄竴绉嶄互绠?崟鎬с?浜ゆ祦銆佸弽棣堝拰鍕囨皵涓哄熀鏈畻鏃ㄧ殑寮?彂绾緥銆傚畠鐨勫仛娉曟槸浠ユ湁鏁堢殑瀹炶返瑙勫垯灏嗘暣涓洟闃熺揣瀵嗚仈绯昏捣鏉ワ紝閫氳繃鍏呭垎鐨勫弽棣堜娇鍥㈤槦鑳介殢鏃剁煡閬撹嚜宸辩洰鍓嶇殑鐘跺喌鍜屾伆褰撳湴璋冭妭瀹炶返瑙勫垯浠ラ?搴旇嚜宸辩殑鐗规畩鎯呭喌銆?br />





相关链接:



FLV To PSP



OGM TO MP4



Drake ringtones over ringtone by drake



OGM to MKV



No comments:

Post a Comment