	{"id":2350,"date":"2013-07-06T10:21:05","date_gmt":"2013-07-06T03:21:05","guid":{"rendered":"http:\/\/science-technology.vn\/?p=2350"},"modified":"2013-07-06T10:21:05","modified_gmt":"2013-07-06T03:21:05","slug":"lap-trinh-cap-doi","status":"publish","type":"post","link":"https:\/\/science-technology.vn\/?p=2350","title":{"rendered":"L\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i"},"content":{"rendered":"<p><span style=\"font-size: 14px;\">M\u1ed9t trong nh\u1eefng th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t trong l\u1eadp tr\u00ecnh c\u1ef1c \u0111oan (XP) l\u00e0 l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i.\u00a0Kh\u00e1i ni\u1ec7m n\u00e0y l\u00e0 \u0111\u01a1n gi\u1ea3n: \u201cHai ng\u01b0\u1eddi t\u1ed1t h\u01a1n m\u1ed9t ng\u01b0\u1eddi\u201d cho n\u00ean b\u1eb1ng vi\u1ec7c c\u00f3 hai ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n t\u00edch c\u1ef1c x\u00e2y d\u1ef1ng m\u00e3 s\u1ebd c\u00f3 k\u1ebft qu\u1ea3 ph\u1ea7n m\u1ec1m ch\u1ea5t l\u01b0\u1ee3ng t\u1ed1t h\u01a1n. V\u1edbi XP, m\u1ecdi m\u00e3 \u0111\u1ec1u ph\u1ea3i \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n b\u1eb1ng l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i. Tuy nhi\u00ean, kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t ng\u01b0\u1eddi vi\u1ebft m\u00e3 v\u00e0 ng\u01b0\u1eddi kia ch\u1ec9 theo d\u00f5i m\u00e0 c\u1ea3 hai c\u00f9ng \u0111\u1ed5i l\u01b0\u1ee3t vi\u1ebft m\u00e3 v\u00e0i l\u1ea7n m\u1ed7i ng\u00e0y. Khi ng\u01b0\u1eddi n\u00e0y vi\u1ebft m\u00e3, ng\u01b0\u1eddi kia ngh\u0129 v\u1ec1 c\u00e1ch ki\u1ec3m th\u1eed n\u00f3 v\u00e0 c\u00e1ch t\u00edch h\u1ee3p m\u00e3 v\u00e0o ph\u1ea7n m\u1ec1m \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u01b0a ra tr\u01b0\u1edbc \u0111\u00e2y \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o ch\u1ea5t l\u01b0\u1ee3ng t\u1ed1i \u0111a v\u00e0 l\u1ed7i t\u1ed1i thi\u1ec3u.<\/span><\/p>\n<p>Sau khi l\u00e0m vi\u1ec7c c\u00f9ng nhau nh\u01b0 m\u1ed9t c\u1eb7p trong v\u00e0i ng\u00e0y, nh\u1eefng ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n ph\u1ea3i ho\u00e1n chuy\u1ec3n sang c\u1eb7p kh\u00e1c \u0111\u1ec3 cho h\u1ecd c\u00f3 c\u01a1 h\u1ed9i l\u00e0m vi\u1ec7c tr\u00ean c\u00e1c ch\u1ee9c n\u0103ng kh\u00e1c nhau c\u1ee7a ph\u1ea7n m\u1ec1m. Khi h\u1ecd ho\u00e1n chuy\u1ec3n sang c\u1eb7p kh\u00e1c, h\u1ecd ph\u1ea3i h\u1ecdc nh\u1eefng \u0111i\u1ec1u m\u1edbi, cu\u1ed1i c\u00f9ng h\u1ecd s\u1ebd hi\u1ec3u to\u00e0n th\u1ec3 h\u1ec7 th\u1ed1ng thay v\u00ec ch\u1ec9 v\u00e0i ch\u1ee9c n\u0103ng. \u0110\u1ec3 nh\u1eefng ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n l\u00e0m vi\u1ec7c tr\u00ean m\u1ecdi ph\u1ea7n c\u1ee7a h\u1ec7 th\u00f3ng c\u0169ng s\u1ebd l\u00e0m ph\u01a1i ra v\u1ea5n \u0111\u1ec1 \u1ea9n k\u00edn cho n\u00ean n\u00f3 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eeda nhanh ch\u00f3ng v\u00e0 hi\u1ec7u qu\u1ea3. L\u00e0m vi\u1ec7c theo c\u1eb7p bu\u1ed9c ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n ph\u1ea3i vi\u1ebft ra m\u00e3 t\u1ed1t h\u01a1n, c\u1ea9n th\u1eadn h\u01a1n v\u1ec1 \u0111i\u1ec1u h\u1ecd l\u00e0m (b\u1edfi v\u00ec ai \u0111\u00f3 \u0111ang theo d\u00f5i), tu\u00e2n theo qui tr\u00ecnh chu\u1ea9n (\u0111\u1ed1i t\u00e1c c\u1ee7a b\u1ea1n c\u0169ng l\u00e0m vi\u1ec7c nh\u01b0 SQA) v\u00e0 cu\u1ed1i c\u00f9ng nh\u1eefng ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n s\u1ebd h\u1ecdc v\u1ec1 l\u00e0m vi\u1ec7c nh\u01b0 m\u1ed9t t\u1ed5. D\u1ef1 \u00e1n c\u00f3 th\u1ec3 c\u00f3 l\u1ee3i t\u1eeb vi\u1ec7c \u00edt ph\u1ee5 thu\u1ed9c v\u00e0o v\u00e0i ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n then ch\u1ed1t v\u00e0 c\u00f4ng vi\u1ec7c s\u1ebd lan to\u1ea3 nhi\u1ec1u h\u01a1n ngay c\u1ea3 gi\u1eefa c\u00e1c th\u00e0nh vi\u00ean t\u1ed5.<\/p>\n<p>Tuy nhi\u00ean, nhi\u1ec1u ng\u01b0\u1eddi qu\u1ea3n l\u00ed d\u1ef1 \u00e1n KH\u00d4NG th\u00edch l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i. H\u1ecd tin r\u1eb1ng \u0111\u1ec3 hai ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n ng\u1ed3i c\u1ea1nh nhau l\u00e0 ph\u00ed th\u1eddi gian. Khi t\u00f4i d\u1ea1y XP cho ng\u01b0\u1eddi qu\u1ea3n l\u00ed d\u1ef1 \u00e1n, t\u00f4i bao gi\u1edd c\u0169ng gi\u1ea3i th\u00edch \u00edch l\u1ee3i c\u1ee7a l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i nh\u01b0 th\u1ef1c hi\u1ec7n ki\u1ec3m \u0111i\u1ec3m m\u00e3 li\u00ean t\u1ee5c. Kh\u00f4ng c\u00f3 n\u00f3, d\u1ef1 \u00e1n s\u1ebd c\u1ea7n c\u00f3 gi\u00e1m \u0111\u1ecbnh m\u00e3 th\u00eam, ki\u1ec3m \u0111i\u1ec3m tu\u00e2n th\u1ee7 qui tr\u00ecnh SQA th\u00eam, v\u00e0 ki\u1ec3m \u0111i\u1ec3m ch\u00ednh th\u1ee9c th\u00eam. T\u1ea5t c\u1ea3 nh\u1eefng ho\u1ea1t \u0111\u1ed9ng n\u00e0y s\u1ebd th\u00eam nhi\u1ec1u th\u1eddi gian, nhi\u1ec1u n\u1ed7 l\u1ef1c v\u00e0 nhi\u1ec1u chi ph\u00ed cho d\u1ef1 \u00e1n. X\u1ebfp c\u1eb7p c\u0169ng \u0111\u1ec3 cho ng\u01b0\u1eddi qu\u1ea3n l\u00ed d\u1ef1 \u00e1n t\u00ecm ra nhanh ch\u00f3ng ai l\u00e0 gi\u1ecfi v\u00e0 ai c\u1ea7n \u0111\u00e0o t\u1ea1o th\u00eam, ai c\u00f3 hi\u1ec7u n\u0103ng t\u1ed1t h\u01a1n v\u00e0 n\u0103ng su\u1ea5t cao h\u01a1n v\u00e0 ai bao gi\u1edd c\u0169ng l\u00e0 v\u1ea5n \u0111\u1ec1 cho t\u1ed5.<\/p>\n<p>Nhi\u1ec1u ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n KH\u00d4NG th\u00edch l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i b\u1edfi v\u00ec n\u00f3 c\u00f3 th\u1ec3 l\u00e0m ph\u01a1i ra m\u1ed9t s\u1ed1 nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a h\u1ecd cho ng\u01b0\u1eddi kh\u00e1c. H\u1ecd tin r\u1eb1ng l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i c\u00f3 th\u1ec3 t\u1ea1o ra xung \u0111\u1ed9t c\u00e1 nh\u00e2n. Khi t\u00f4i d\u1ea1y XP cho ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n, t\u00f4i bao gi\u1edd c\u0169ng gi\u1ea3i th\u00edch \u00edch l\u1ee3i c\u1ee7a l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i nh\u01b0 c\u00e1ch t\u1ed1t \u0111\u1ec3 d\u1ea1y cho nh\u00e2n vi\u00ean m\u1edbi. N\u1ebfu b\u1ea1n \u0111\u1ec3 nh\u1eefng ng\u01b0\u1eddi l\u1eadp tr\u00ecnh kh\u00f4ng c\u00f3 kinh nghi\u1ec7m n\u00e0y m\u1ed9t m\u00ecnh l\u00e0m vi\u1ec7c, h\u1ecd s\u1ebd kh\u1ed5 v\u00ec h\u1ecd ph\u1ea3i h\u1ecdc nhi\u1ec1u th\u1ee9 trong th\u1eddi gian ng\u1eafn. B\u1eb1ng vi\u1ec7c x\u1ebfp c\u1eb7p h\u1ecd v\u1edbi ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n c\u00f3 kinh nghi\u1ec7m h\u01a1n, h\u1ecd c\u00f3 th\u1ec3 quan s\u00e1t v\u00e0 h\u1ecdc nhanh h\u01a1n nhi\u1ec1u. H\u1ecd c\u00e0ng l\u00e0m vi\u1ec7c theo c\u1eb7p nhi\u1ec1u l\u1ea7n, h\u1ecd c\u00e0ng h\u1ecdc v\u00e0 \u0111\u00f3ng g\u00f3p nhi\u1ec1u h\u01a1n.<\/p>\n<p>\u0110\u1ec3 \u0111\u1ea3m b\u1ea3o th\u1ef1c hi\u1ec7n XP \u0111\u00fang \u0111\u1eafn, c\u00f4ng ti ph\u1ea3i c\u00f3 hu\u1ea5n luy\u1ec7n vi\u00ean XP \u0111\u1ec3 h\u01b0\u1edbng d\u1eabn m\u1ecdi ng\u01b0\u1eddi theo chi\u1ec1u h\u01b0\u1edbng \u0111\u00fang. Ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m l\u00e0 n\u1ed7 l\u1ef1c t\u1ed5 v\u00e0 m\u1ecdi t\u1ed5 \u0111\u1ec1u ph\u1ea3i c\u00f3 hu\u1ea5n luy\u1ec7n vi\u00ean (nh\u01b0, Scrum c\u00f3 th\u1ea7y Scrum v\u00e0 \u0111\u1ed9i b\u00f3ng \u0111\u00e1 c\u00f3 hu\u1ea5n luy\u1ec7n vi\u00ean). Hu\u1ea5n luy\u1ec7n vi\u00ean ph\u1ea3i l\u00e0 ai \u0111\u00f3 c\u00f3 \u0111\u00e0o t\u1ea1o \u0111\u00fang v\u1ec1 XP v\u00e0 c\u00f3 kinh nghi\u1ec7m v\u1edbi c\u00e1c d\u1ef1 \u00e1n XP \u0111\u1ec3 cho ng\u01b0\u1eddi \u0111\u00f3 c\u00f3 th\u1ec3 gi\u00e1m s\u00e1t c\u00e1c ho\u1ea1t \u0111\u1ed9ng l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i, ch\u1eafc ch\u1eafn k\u0129 thu\u1eadt XP l\u00e0 \u0111\u01b0\u1ee3c th\u1ef1c thi \u0111\u00fang, v\u00e0 s\u1eeda v\u1ea5n \u0111\u1ec1 tr\u01b0\u1edbc khi ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c \u0111\u01b0a ra cho kh\u00e1ch h\u00e0ng.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8212;-English version&#8212;-<\/p>\n<p>&nbsp;<\/p>\n<p>Pair Programming<\/p>\n<p>One of the best practice in extreme programming (XP) is Pair programming.\u00a0The concept is simple: \u201cTwo are better than one\u201d so by having two developers actively building code will result in better quality software. With XP, all code must be done by pair programming. However,\u00a0it is not one person coding and another just watching but both take turn to code several times each day. When one person code, the other is thinking about how to test it and how to integrate the code to previously released software to ensure maximum quality and minimum defects.<\/p>\n<p>After working together as a pair for few days, developers must switch with another pair so they have a chance to work on different functions of the software. As they are moving to different pair, they have to learn new things, eventually they will understand the entire system rather than just few functions. Having developers working on every part of the system will also expose any hidden problem so it can be fixed quickly and efficiently. Working in pair forces developers to write better code, to be more careful on what they do (Because someone is watching), to follow standard process (Your partner is also working as SQA) and eventually developers will learn about working as ateam. The project can benefit from less depending on few key developers and the works would be spread more evenly among team members.<\/p>\n<p>However, many project managers do NOT like pair programming. They believe that having two\u00a0developers sit next to each other is a waste of time. When I teach XP to project managers, I always explain the benefit of pair programming as performing continuous code review. Without it, project will need to have additional code inspections, additional SQA process compliance review, and additional formal reviews. All of these activities will add more time, more efforts and more costs to the project. Pairing also lets project managers find out quickly who is good and who will need additional trainings, who has better performance and high productivity and who will always be a problem for the team.<\/p>\n<p>Many developers do NOT like pair programming because it can expose some of their weakness to others. They believe that pair programming can create personal conflict. When I teach XP to developers, I always explain the benefit of pair programming as a good way to teach new employees. If you let these inexperienced developers alone to do works, they will suffer as they have to learn many things in a short time. By pairing them with a more experienced developers, they can observe and learn much faster. The more time they work in pair, the more they learn and contribute.<\/p>\n<p>To ensure XP implementation correctly, company must have a XP coach to guide people in the right directions. Software development is a team effort and every team must have a coach (i.e., Scrum has Scrum master and soccer team has coach). The coach must be someone who had proper XP training and experienced with XP projects so he can monitor the pair programming activities, making sure the XP technique is executed correctly, and fixing problems before software is released to the customers.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u1ed9t trong nh\u1eefng th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t trong l\u1eadp tr\u00ecnh c\u1ef1c \u0111oan (XP) l\u00e0 l\u1eadp tr\u00ecnh c\u1eb7p \u0111\u00f4i.\u00a0Kh\u00e1i ni\u1ec7m n\u00e0y l\u00e0 \u0111\u01a1n gi\u1ea3n: \u201cHai ng\u01b0\u1eddi &hellip; <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,20],"tags":[],"class_list":["post-2350","post","type-post","status-publish","format-standard","hentry","category-khoa-hoc-may-tinh","category-ki-nghe-phan-mem"],"_links":{"self":[{"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/posts\/2350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/science-technology.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2350"}],"version-history":[{"count":1,"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/posts\/2350\/revisions"}],"predecessor-version":[{"id":2351,"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/posts\/2350\/revisions\/2351"}],"wp:attachment":[{"href":"https:\/\/science-technology.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/science-technology.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/science-technology.vn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}