	{"id":2254,"date":"2013-07-05T12:49:27","date_gmt":"2013-07-05T05:49:27","guid":{"rendered":"http:\/\/science-technology.vn\/?p=2254"},"modified":"2013-07-05T12:49:27","modified_gmt":"2013-07-05T05:49:27","slug":"vong-doi-phat-trien-phan-mem","status":"publish","type":"post","link":"https:\/\/science-technology.vn\/?p=2254","title":{"rendered":"V\u00f2ng \u0111\u1eddi ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m"},"content":{"rendered":"<p><span style=\"font-size: 14px;\">Tu\u1ea7n tr\u01b0\u1edbc, m\u1ed9t sinh vi\u00ean g\u1eedi cho t\u00f4i m\u1ed9t email: \u201cEm l\u00e0 sinh vi\u00ean n\u0103m th\u1ee9 nh\u1ea5t v\u1ec1 Khoa h\u1ecdc m\u00e1y t\u00ednh. Em b\u1ecb l\u1eabn l\u1ed9n v\u1ec1 v\u00f2ng \u0111\u1eddi ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. C\u00f3 bao nhi\u00eau v\u00f2ng \u0111\u1eddi v\u1eady? L\u00e0m sao em ch\u1ecdn \u0111\u01b0\u1ee3c v\u00f2ng \u0111\u1eddi n\u00e0y so v\u1edbi v\u00f2ng \u0111\u1eddi kh\u00e1c? Xin th\u1ea7y l\u1eddi khuy\u00ean.&#8221;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>\u0110\u00e1p: C\u00f3 v\u00e0i v\u00f2ng \u0111\u1eddi ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. Ph\u1ed5 bi\u1ebfn nh\u1ea5t v\u00e0 d\u1ec5 hi\u1ec3u nh\u1ea5t l\u00e0 v\u00f2ng \u0111\u1eddi Th\u00e1c \u0111\u1ed5. Theo \u00fd ki\u1ebfn t\u00f4i, m\u1ecdi th\u1ee9 kh\u00e1c l\u00e0 c\u1ea3i ti\u1ebfn c\u1ee7a v\u00f2ng \u0111\u1eddi n\u00e0y qua th\u1eddi gian. L\u00e0 sinh vi\u00ean, b\u1ea1n ph\u1ea3i hi\u1ec3u m\u1ecdi pha c\u1ee7a v\u00f2ng \u0111\u1eddi n\u00e0y. M\u1ed9t khi b\u1ea1n bi\u1ebft r\u00f5 ch\u00fang, b\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc v\u1ec1 c\u00e1c v\u00f2ng \u0111\u1eddi kh\u00e1c. Sau \u0111\u00e2y l\u00e0 m\u00f4 t\u1ea3 ng\u1eafn g\u1ecdn:<\/p>\n<p>V\u00f2ng \u0111\u1eddi th\u00e1c \u0111\u1ed5 l\u00e0 qui tr\u00ecnh ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m tu\u1ea7n t\u1ef1 n\u01a1i m\u1ecdi ho\u1ea1t \u0111\u1ed9ng ph\u00e1t tri\u1ec3n \u0111\u1ec1u ph\u1ea3i tu\u00e2n theo nh\u1eefng pha n\u00e0o \u0111\u00f3 nh\u01b0 y\u00eau c\u1ea7u, thi\u1ebft k\u1ebf, vi\u1ebft m\u00e3, ki\u1ec3m th\u1eed v\u00e0 b\u1ea3o tr\u00ec. B\u1ea1n ph\u1ea3i ho\u00e0n th\u00e0nh m\u1ed9t pha tr\u01b0\u1edbc khi chuy\u1ec3n sang pha ti\u1ebfp, c\u0169ng nh\u01b0 n\u01b0\u1edbc ch\u1ea3y t\u1eeb tr\u00ean \u0111\u1ec9nh xu\u1ed1ng \u0111\u00e1y trong m\u1ed9t th\u00e1c n\u01b0\u1edbc. V\u1edbi v\u00f2ng \u0111\u1eddi n\u00e0y, kh\u00e1ch h\u00e0ng ph\u1ea3i \u0111\u1ee3i cho t\u1edbi khi m\u1ecdi pha \u0111\u01b0\u1ee3c ho\u00e0n th\u00e0nh, cho t\u1edbi khi ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c ki\u1ec3m th\u1eed \u0111\u1ea7y \u0111\u1ee7 tr\u01b0\u1edbc khi h\u1ecd c\u00f3 th\u1ec3 d\u00f9ng s\u1ea3n ph\u1ea9m. V\u1ea5n \u0111\u1ec1 v\u1edbi c\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y l\u00e0 n\u1ebfu c\u00f3 thay \u0111\u1ed5i v\u1ec1 sau trong v\u00f2ng \u0111\u1eddi, c\u00f3 th\u1ec3 r\u1ea5t kh\u00f3 s\u1eeda v\u00ec b\u1ea5t k\u00ec vi\u1ec7c l\u00e0m l\u1ea1i n\u00e0o c\u0169ng s\u1ebd c\u00f3 ch\u1ee9a r\u1ee7i ro v\u00e0 kh\u1ea3 n\u0103ng tr\u1ec5 l\u1ecbch bi\u1ec3u. Th\u00e1c n\u01b0\u1edbc c\u00f3 t\u00e1c d\u1ee5ng t\u1ed1t n\u1ebfu y\u00eau c\u1ea7u l\u00e0 r\u00f5 r\u00e0ng, \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh t\u1ed1t v\u00e0 v\u1edbi thay \u0111\u1ed5i t\u1ed1i thi\u1ec3u.<\/p>\n<p>V\u00ec thay \u0111\u1ed5i x\u1ea3y ra trong d\u1ef1 \u00e1n ph\u1ea7n m\u1ec1m, m\u1ed9t c\u00e1ch ti\u1ebfp c\u1eadn t\u1edbi gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1 n\u00e0y l\u00e0 ph\u00e1t tri\u1ec3n v\u00e0i l\u1ea7n \u0111\u01b0a ra hay l\u1eb7p. T\u1eebng l\u1ea7n l\u1eb7p \u0111\u1ec1u bao qu\u00e1t to\u00e0n b\u1ed9 v\u00f2ng \u0111\u1eddi th\u00e1c \u0111\u1ed5 v\u00e0 b\u1ea5t k\u00ec thay \u0111\u1ed5i n\u00e0o x\u1ea3y ra sau s\u1ebd \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ec5 cho l\u1ea7n l\u1eb7p ti\u1ebfp.\u00a0\u0110i\u1ec1u n\u00e0y l\u00e0m cho s\u1ea3n ph\u1ea9m ph\u1ea7n m\u1ec1m \u0111\u01b0a ra nhanh h\u01a1n, l\u1ea5y \u0111\u01b0\u1ee3c ph\u1ea3n h\u1ed3i c\u1ee7a ng\u01b0\u1eddi d\u00f9ng nhanh h\u01a1n v\u00e0 cho t\u1ed5 d\u1ef1 \u00e1n kh\u1ea3 n\u0103ng ph\u1ea3n \u1ee9ng v\u1edbi v\u1ea5n \u0111\u1ec1 l\u00e0 khi\u1ebfm khuy\u1ebft s\u1edbm h\u01a1n. Cho d\u00f9 vi\u1ec7c \u0111\u01b0a ra t\u0103ng l\u00ean n\u00e0y l\u00e0 c\u1ea3i ti\u1ebfn t\u1ed1t cho v\u00f2ng \u0111\u1eddi th\u00e1c \u0111\u1ed5 truy\u1ec1n th\u1ed1ng nh\u01b0ng v\u1eabn c\u00f3 m\u1ed9t s\u1ed1 kh\u00f3 kh\u0103n trong vi\u1ec7c thi\u1ebft k\u1ebf l\u1ea1i v\u00e0 l\u00e0m l\u1ea1i v\u00e0 s\u1eeda ph\u1ea7n m\u1ec1m \u0111i\u1ec1u t\u0103ng th\u00eam chi ph\u00ed cho d\u1ef1 \u00e1n.<\/p>\n<p>\u0110\u1ec3 gi\u1ea3m chi ph\u00ed v\u00e0 r\u1ee7i ro do s\u1ed1 thay \u0111\u1ed5i v\u1edbi d\u1ef1 \u00e1n, c\u1ea3i ti\u1ebfn ti\u1ebfp cho v\u00f2ng \u0111\u1eddi th\u00e1c \u0111\u1ed5 l\u00e0 c\u00e2n nh\u1eafc to\u00e0n th\u1ec3 vi\u1ec7c ph\u00e1t tri\u1ec3n nh\u01b0 m\u1ed9t s\u1ed1 b\u01b0\u1edbc t\u0103ng nh\u1ecf v\u1edbi l\u1eadp k\u1ebf ho\u1ea1ch, y\u00eau c\u1ea7u, ph\u00e2n t\u00edch v\u00e0 l\u00e0m b\u1ea3n m\u1eabu li\u00ean t\u1ee5c \u0111\u1ec3 c\u1ea3i ti\u1ebfn y\u00eau c\u1ea7u. Trong c\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y, k\u0129 thu\u1eadt l\u00e0m b\u1ea3n m\u1eabu \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng \u0111\u1ec3 l\u1ea5y ph\u1ea3n h\u1ed3i c\u1ee7a ng\u01b0\u1eddi d\u00f9ng tr\u01b0\u1edbc khi thi\u1ebft k\u1ebf, ki\u1ec3m th\u1eed v\u00e0 \u0111\u00e1nh gi\u00e1. Ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng t\u0103ng d\u1ea7n, t\u1eebng l\u1ea7n l\u1eb7p \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean l\u1ea7n l\u1eb7p tr\u01b0\u1edbc cho t\u1edbi khi m\u1ecdi y\u00eau c\u1ea7u \u0111\u1ec1u \u0111\u01b0\u1ee3c bi\u1ebft. V\u00ec v\u00f2ng n\u00e0y gi\u1ed1ng nh\u01b0 xo\u00e1y \u1ed1c, cho n\u00ean c\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c n\u00f3i t\u1edbi l\u00e0 ph\u01b0\u01a1ng ph\u00e1p &#8220;xo\u00e1y \u1ed1c&#8221;.<\/p>\n<p>T\u1ea5t c\u1ea3 c\u00e1c c\u00e1ch ti\u1ebfp c\u1eadn tr\u00ean (th\u00e1c \u0111\u1ed5, l\u1eb7p, v\u00e0 xo\u00e1y \u1ed1c) c\u00f3 t\u00e1c d\u1ee5ng t\u1ed1t trong d\u1ef1 \u00e1n c\u1ee1 v\u1eeba v\u00e0 l\u1edbn. Tuy nhi\u00ean v\u1edbi d\u1ef1 \u00e1n nh\u1ecf, nh\u1eefng c\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y v\u1eabn m\u1ea5t th\u1eddi gian v\u00e0 c\u00f3 th\u1ec3 kh\u00f4ng \u0111\u00e1p \u1ee9ng \u0111i\u1ec1u kh\u00e1ch h\u00e0ng c\u1ea7n \u0111\u1ec3 c\u00f3 c\u00e1i g\u00ec \u0111\u00f3 nhanh ch\u00f3ng. \u0110\u00f3 l\u00e0 l\u00ed do t\u1ea1i sao c\u00e1ch ti\u1ebfp c\u1eadn Agile \u0111\u01b0\u1ee3c t\u1ea1o ra. C\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y v\u1eabn d\u1ef1a tr\u00ean ph\u00e1t tri\u1ec3n t\u01b0\u01a1ng t\u00e1c v\u00e0 t\u0103ng d\u1ea7n nh\u01b0ng c\u00e1c y\u00eau c\u1ea7u v\u00e0 gi\u1ea3i ph\u00e1p ti\u1ebfn ho\u00e1 qua c\u1ed9ng t\u00e1c gi\u1eefa kh\u00e1ch h\u00e0ng v\u00e0 ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 c\u00e1c t\u1ed5 t\u1ef1 t\u1ed5 ch\u1ee9c ch\u00e9o ch\u1ee9c n\u0103ng. Agile bao g\u1ed3m v\u00e0i ph\u01b0\u01a1ng ph\u00e1p nh\u01b0 Scrum; L\u1eadp tr\u00ecnh c\u1ef1c \u0111oan &#8211; Extreme Programming (XP); Crystal; Ph\u01b0\u01a1ng ph\u00e1p lu\u1eadn ph\u00e1t tri\u1ec3n h\u1ec7 th\u1ed1ng \u0111\u1ed9ng &#8211; Dynamic System Development Methodology (DSDM); Ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m th\u00edch \u1ee9ng &#8211; Adaptive Software Development; Ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m g\u1ea7y &#8211; Lean software development; v\u00e0 Ph\u00e1t tri\u1ec3n \u0111\u01b0\u1ee3c d\u1eabn l\u00e1i theo t\u00ednh n\u0103ng &#8211; Feature-driven development. Trong s\u1ed1 n\u00e0y, Scrum c\u00f3 l\u1ebd l\u00e0 ph\u1ed5 bi\u1ebfn nh\u1ea5t trong c\u00f4ng nghi\u1ec7p ph\u1ea7n m\u1ec1m. V\u00ec t\u00f4i \u0111\u00e3 vi\u1ebft nhi\u1ec1u b\u00e0i v\u1ec1 Agile trong blog c\u1ee7a t\u00f4i, b\u1ea1n c\u00f3 th\u1ec3 xem l\u1ea1i ch\u00fang.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8212;-English version&#8212;-<\/p>\n<p>&nbsp;<\/p>\n<p>Software development life cycles<\/p>\n<p>Last week, a student sent me an email: \u201cI am a first year student in Computer Science. I am confused about the software development life cycles. How many of them are there? How do I chose one over the other? Please advise.&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p>Answer: There are several software development life cycles. The most popular and easiest to understand is the Waterfall life cycle. In my opinion, everything else is an improvement of this life cycle over time. As student, you must understand all phases of this life cycle. Once you know them well, you can learn about the other life cycles. Following is a short description:<\/p>\n<p>The waterfall lifecycle is a sequential software development process where all development activities must follow a certain phases such as requirements, design, code, test and maintenance. You must complete a phase before move to the next, just like water flowing from top to bottom in a waterfall. For this lifecycle, customers must wait until all phases are completed, until the software is fully tested before they can use the product. The problem with this approach is if there are changes late in the lifecycle, it could be very difficult to fix as any rework would incur risks and possible schedule delay. The waterfall works well if the requirements are clear, well defined and with minimum change.<\/p>\n<p>Since changes do happen in software projects, one approach to solve this problem is to develop several releases or iterations. Each iteration covers the entire waterfall lifecycle and any change happens late will be delayed to the next iteration.\u00a0This gets the software product out quicker, gets user feedback faster and gives the project team the ability to react to issues and defects earlier. Even this incremental release approach is a good improvement to the traditional waterfall life cycle but there still are some difficulties in re-designing, reworking and fixing the software which add costs to the project.<\/p>\n<p>To reduce costs and risks due to the number of changes to the projects, the next improvement to the waterfall life cycle is consider the entire development as several small incremental steps with continuous planning, requirements, analysis and prototyping to improve the requirements. In this approach, prototyping technique is applied to get user feedbacks before design, testing and evaluation. The software development is being built incrementally, each iteration is built on top of the previous one until all requirements are known. Since the cycle resembled a spiral, thus this was often referred to as the &#8220;spiral&#8221; method.<\/p>\n<p>All above approaches (Waterfall, Iterative, and spiral) work well in large and medium size project. However for small project, these approaches still take time and may not meet what customer need to have something quick. That is why the Agile approach is created. This approach is still based on iterative and incremental development but requirements and solutions evolve through the collaboration between customers and developers called self organizing cross functional teams. Agile consists of several methods such as Scrum; Extreme Programming (XP); Crystal; Dynamic Systems Development Methodology (DSDM); Adaptive software development; Lean software development; and Feature-driven development. Among them, Scrum is probably the most popular in the software industry. Since I have written several articles about Agile in my blog already, you can review them.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tu\u1ea7n tr\u01b0\u1edbc, m\u1ed9t sinh vi\u00ean g\u1eedi cho t\u00f4i m\u1ed9t email: \u201cEm l\u00e0 sinh vi\u00ean n\u0103m th\u1ee9 nh\u1ea5t v\u1ec1 Khoa h\u1ecdc m\u00e1y t\u00ednh. Em b\u1ecb l\u1eabn &hellip; <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,20],"tags":[],"class_list":["post-2254","post","type-post","status-publish","format-standard","hentry","category-quan-li-du-an","category-ki-nghe-phan-mem"],"_links":{"self":[{"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/posts\/2254","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=2254"}],"version-history":[{"count":1,"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/posts\/2254\/revisions"}],"predecessor-version":[{"id":2255,"href":"https:\/\/science-technology.vn\/index.php?rest_route=\/wp\/v2\/posts\/2254\/revisions\/2255"}],"wp:attachment":[{"href":"https:\/\/science-technology.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/science-technology.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/science-technology.vn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}