{"id":1750,"date":"2008-06-16T22:01:21","date_gmt":"2008-06-16T14:01:21","guid":{"rendered":"http:\/\/ihower.idv.tw\/blog\/?p=1750"},"modified":"2015-09-05T10:42:38","modified_gmt":"2015-09-05T02:42:38","slug":"practices-of-an-agile-developer-1-professional","status":"publish","type":"post","link":"https:\/\/ihower.tw\/blog\/1750-practices-of-an-agile-developer-1-professional","title":{"rendered":"\u5be6\u6230\u654f\u6377\u958b\u767c Practices of an Agile Developer (1) \u5c08\u696d\u614b\u5ea6\u7bc7"},"content":{"rendered":"<p><a href='http:\/\/www.pragprog.com\/titles\/pad\/practices-of-an-agile-developer'><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1755\" data-permalink=\"https:\/\/ihower.tw\/blog\/1750-practices-of-an-agile-developer-1-professional\/pad\" data-orig-file=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2008\/06\/pad.jpg\" data-orig-size=\"190,228\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"pad\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2008\/06\/pad.jpg\" data-large-file=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2008\/06\/pad.jpg\" src=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2008\/06\/pad.jpg\" alt=\"\" title=\"Practices of an Agile Developer\" width=\"190\" height=\"228\" class=\"alignnone size-medium wp-image-1755\" \/><\/a><\/p>\n<p>\u654f\u6377\u8edf\u9ad4\u958b\u767c\u4e00\u76f4\u662f\u6211\u5011\u5167\u90e8\u958b\u767c\u7684\u6838\u5fc3\u6982\u5ff5\uff0c\u5f37\u8abf\u500b\u4eba\u3001\u5408\u4f5c\u3001\u56de\u61c9\u548c\u4f7f\u7528\u5de5\u4f5c\u8edf\u9ad4(wiki, version control, unit testing, build automaion)\uff0c2001\u5e74\u7531\u4e00\u7fa4\u8edf\u9ad4\u958b\u767c\u8005\u767c\u8868\u5ba3\u8a00\u5982\u4e0b\uff1a<\/p>\n<ol>\n<li>\u500b\u4eba\u53ca\u4e92\u52d5\u52dd\u65bc\u6d41\u7a0b\u8207\u5de5\u5177<\/li>\n<li>\u53ef\u7528\u7684\u8edf\u9ad4\u52dd\u65bc\u8a73\u76e1\u7684\u6587\u4ef6<\/li>\n<li>\u8207\u5ba2\u6236\u5408\u4f5c\u52dd\u65bc\u5408\u7d04\u8ac7\u5224<\/li>\n<li>\u56de\u61c9\u8b8a\u5316\u52dd\u65bc\u58a8\u5b88\u8a08\u756b<\/li>\n<\/ol>\n<p>\u8edf\u9ad4\u958b\u767c\u662f\u9023\u7e8c(continuous)\u7684\uff0c\u4e0d\u662f\u6700\u5f8c\u624d\u6e2c\u8a66\uff0c\u4e5f\u4e0d\u662f\u6700\u5f8c\u624d\u4f48\u7f72\uff0c\u66f4\u4e0d\u6703\u505c\u6b62\u6536\u96c6\u9700\u6c42\u8ddffeedback\u3002\u6b63\u662f\u56e0\u70ba\u958b\u767c\u8edf\u9ad4\u662f\u5982\u6b64\u8907\u96dc\u7684\u6d3b\u52d5\uff0c\u4efb\u4f55\u7a2e\u985e\u7684\u932f\u8aa4\u5982\u679c\u4e0d\u5118\u5feb\u4fee\u6b63\uff0c\u5f80\u5f80\u6700\u5f8c\u5c31\u6703\u7121\u6cd5\u63a7\u5236\u7684\u5931\u6557\uff0c\u56e0\u6b64\u552f\u6709\u6bcf\u5929\u4e0d\u65b7\u7684\u4e00\u9ede\u4e00\u6ef4\u7684\u53bb\u4fee\u6b63\uff0c\u6bcf\u5929\u89e3\u6c7a\u4e00\u4e9b\u6bd4\u8f03\u5c0f\u7684\u554f\u984c\u800c\u4e0d\u662f\u6700\u5f8c\u812b\u97c1\u91ce\u99ac\u7684\u5927\u554f\u984c\uff0c\u9019\u624d\u662f\u89e3\u6c7a\u7684\u8fa6\u6cd5\u3002<\/p>\n<p>\u4f55\u8b02 Agility \u7684\u5b9a\u7fa9\uff0c\u4f5c\u8005\u7d66\u4e86\uff1a<br \/>\n<strong>&#8220;Agile development uses feedback to make constant adjustments in a highly collaborative environment.&#8221; (\u654f\u6377\u958b\u767c\u662f\u4e00\u7a2e\u5728\u9ad8\u5ea6\u5408\u4f5c\u7684\u74b0\u5883\u4e2d\u4e0d\u65b7\u6839\u64da\u56de\u61c9\u4f86\u505a\u4fee\u6b63\u7684\u958b\u767c\u65b9\u5f0f)<\/strong><\/p>\n<p>\u900f\u904e\u7d93\u5e38\u6027\u5730\u5efa\u69cb\u51fa\u53ef\u4ee5\u5be6\u969b\u4f7f\u7528\u7684\u8edf\u9ad4\uff0c\u6211\u5011\u6301\u7e8c\u5f97\u5230 feedback\u3002\u7a0b\u5f0f\u78bc\u6703\u56e0\u70ba\u9700\u6c42\u64f4\u5145\u800c\u4e0d\u65b7\u5730\u88ab\u4fee\u6539\u91cd\u69cb\u6f14\u9032\u3002\u5de5\u4f5c\u7684\u6d41\u7a0b\u88ab\u62c6\u6210\u4e00\u81f3\u56db\u5468\u7684\u77ed iterations\uff0c\u6bcf\u6b21\u900f\u904e demo \u5f97\u5230 feedback\uff0c\u78ba\u4fdd\u65b9\u5411\u6b63\u78ba\u3002<\/p>\n<p>\u654f\u6377\u958b\u767c\u6700\u5927\u7684\u4e0d\u540c\u5230\u5e95\u662f\u4ec0\u9ebc\u5462? \u9019\u672c\u66f8\u4e0d\u8ac7\u65b9\u6cd5\u8ad6\u6d41\u7a0b(XP\u3001Scurm\u7b49)\uff0c\u800c\u662f\u8ac7\u4eba\u672c\u8eab\uff0c\u8ac7\u5718\u968a\u672c\u8eab\uff0c\u8ac7\u5982\u4f55\u6210\u70ba\u4e00\u500b\u654f\u6377\u7684\u958b\u767c\u4eba\u54e1\u3002\u66f8\u7684\u6bcf\u4e00\u7ae0\u7531\u6578\u500b Tips \u7d44\u6210\uff0c\u6574\u672c\u66f8\u517145\u500b Tips \u4f86\u6558\u8ff0\u4ec0\u9ebc\u662f\u654f\u6377\u7684\u505a\u6cd5\u3002\u9019\u672c\u66f8\u4e5f\u5f97\u52302007\u5e74\u7684<a href=\"http:\/\/www.ddj.com\/architect\/201001328\"> Jolts Productivity Award<\/a>\u3002<\/p>\n<p>\u524d\u5169\u7ae0 Beginning Agility \u8ddf Feeding Agility \u8b1b\u7684\u662f\u57fa\u672c\u7684\u5c08\u696d\u614b\u5ea6\uff1a<\/p>\n<p><!--more--><\/p>\n<h3>Work for Outcome (\u7522\u51fa\u81f3\u4e0a)<\/h3>\n<p>\u8cac\u602a\u4e0d\u80fd\u89e3\u6c7a\u554f\u984c\u3002\u7576\u51fa\u554f\u984c\u7684\u6642\u5019\uff0c\u5be6\u969b\u89e3\u6c7a\u554f\u984c\u624d\u662f\u7522\u51fa\uff0c\u800c\u4e0d\u662f\u627e\u5147\u624b\u3002<\/p>\n<h3>Quick Fixes Become Quicksand <\/h3>\n<p>\u70ba\u4e86\u5f88\u5feb\u5730\u4fee\u597dbug\uff0c\u5373\u4f7f\u4e0d\u662f\u5f88\u4e86\u89e3 code \u600e\u9ebc\u904b\u4f5c\uff0c\u9084\u662f\u4e0d\u660e\u7a76\u7406\u5730\u52a0\u4e86\u5947\u602a\u7684code\u4fee\u597d\u4e86 (word-around)\uff0c\u56e0\u70ba\u5beb\u9019\u6a23\u6703\u70b8\uff0c\u6240\u4ee5\u52a0\u4e86\u4e00\u884c\u4f8b\u5916\u689d\u4ef6\uff0cblahblah&#8230; \u7136\u5f8c\u6c92\u4eba\u77e5\u9053\u52a0\u90a3\u500b\u689d\u4ef6\u662f\u70ba\u4ec0\u9ebc\u3002anyway&#8230; \u4e0b\u4e00\u500b programmer \u770b\u5230\u9019\u884c\u600e\u9ebc\u8fa6\uff1f \u6709\u4e9b programmer \u4e5f\u8a31\u5c31\u8df3\u904e\u770b\u4e0d\u61c2\u7684\u9019\u884c\uff0c\u53cd\u6b63\u53ef\u4ee5 work \u5c31\u597d\u3002\u597d\u7684programmer \u6703\u641e\u6e05\u695a&#8221;\u70ba\u4ec0\u9ebc&#8221;\u9700\u8981\u9019\u884c\uff0c\u66f4\u91cd\u8981\u7684\u662f\u66f4\u6703\u601d\u8003\u6703\u6709\u4ec0\u9ebc\u526f\u4f5c\u7528\u3002<\/p>\n<p>\u7576\u4e00\u5e74\u4e00\u5e74\u904e\u53bb\uff0c\u5982\u679c\u90fd\u6c92\u6709\u597d\u7684 programmer \u5728 refactor\uff0c\u53ef\u60f3\u5f97\u77e5\u9019\u4e9b code \u6703\u6050\u6016\u5230\u4ec0\u9ebc\u7a0b\u5ea6\uff0c\u65b0\u589e\u529f\u80fd\u6216fixed bug \u5c07\u8d8a\u4f86\u8d8a\u56f0\u96e3\u3002<\/p>\n<p>\u7c97\u6dfa\u7684\u4fee\u6b63\u800c\u6c92\u6709\u6df1\u5ea6\u4e86\u89e3\u554f\u984c\u53ca\u53ef\u80fd\u7684\u5f8c\u679c\uff0c\u4e5f\u8a31\u7576\u4e0b it look like it works\uff0c\u4f46\u662f\u4ed6\u50b7\u5bb3\u7684\u7a0b\u5f0f\u53ef\u8b80\u6027\uff0c\u4f60\u53ef\u80fd\u6703\u78b0\u5230\u6709\u4eba\u8aaa&#8221;\u4e0d\u8981\u6539\u90a3\u88e1\uff0c\u56e0\u70bablah blah&#8221;\uff0c\u4f46\u7576\u4ed6\u96e2\u8077\u4e86\uff0c\u5c31\u6c92\u6709\u77e5\u9053\u90a3\u88e1\u662f\u5e79\u9ebc\u7684\u3002<\/p>\n<p>\u6709\u5e7e\u7a2e\u65b9\u5f0f\u53ef\u4ee5\u6539\u5584\uff1a<\/p>\n<p>1.\u4e0d\u8981\u8b93 developer \u5b8c\u5168\u7368\u7acb\u5beb code\uff0cdeveloper \u8981\u82b1\u6642\u9593\u53bb\u770b\u5225\u4eba\u7684 code\uff0c\u78ba\u4fdd\u7a0b\u5f0f\u7684\u53ef\u8b80\u6027\u53ca\u53ef\u4ee5\u7406\u89e3\u3002\u7a0b\u5f0f\u662f\u5beb\u7d66\u4eba\u770b\u7684\uff0c\u4e0d\u662f\u7d66\u6a5f\u5668\u770b\u7684\u3002<\/p>\n<p>2.\u5beb unit testing\uff0c\u5728\u5beb testing \u7684\u904e\u7a0b\u4e2d\uff0c\u4f60\u6703\u8f49\u63db\u601d\u7dad\u6210\u5982\u4f55\u8a2d\u8a08 API\uff0c\u9019\u5c07\u5e6b\u52a9\u4f60\u8a2d\u8a08\u51fa\u66f4\u597d\u547c\u53eb\u53ca\u66f4\u6e05\u695a\u7684\u7a0b\u5f0f\u3002\u597d\u7684 unit testing \u751a\u81f3\u53ef\u4ee5\u7576\u505a\u4e00\u7a2e\u53ef\u57f7\u884c\u7684\u6587\u4ef6\uff0c\u9019\u4e5f\u662f BDD \u6240\u5f37\u8abf\u7684\u601d\u7dad\u3002<\/p>\n<h3>Criticize Ideas, Not People (\u5c0d\u4e8b\u4e0d\u5c0d\u4eba)<\/h3>\n<p>\u7576\u6709\u4eba\u63d0\u51fa\u4e00\u500b\u9ede\u5b50\u7684\u6642\u5019\uff0c\u4e0d\u8981\u6307\u8cac\uff0c\u4e0d\u8981\u6279\u5224\uff0c\u53ea\u8981\u8aaa\u660e\u4f60\u95dc\u5fc3\u7684\u554f\u984c\u9ede\u5373\u53ef\uff0c\u8a0e\u8ad6\u9019\u500b\u554f\u984c\u800c\u4e0d\u662f\u722d\u5435\u3002\u4fdd\u6301\u5c08\u696d\uff0c\u76e1\u91cf\u554f\u5efa\u8a2d\u6027\u7684\u95dc\u9375\u554f\u984c\uff0c\u800c\u4e0d\u662f\u91dd\u5c0d\u500b\u4eba\u7684\u60c5\u7dd2\u6027\u767c\u8a00\u3002<\/p>\n<p>\u6bcf\u500b\u4eba\u90fd\u6709\u597d\u60f3\u6cd5\u8ddf\u4e0d\u597d\u7684\u60f3\u6cd5\uff0c\u5225\u5bb3\u6015\u90fd\u63d0\u51fa\u3002\u8a66\u8457\u91dd\u5c0d\u512a\u7f3a\u9ede\u8a0e\u8ad6\uff0c\u5927\u90e8\u5206\u7684\u9078\u9805\u90fd\u662f\u6709 trade-offs \u7684\u3002\u8207\u5176\u8aaa\u6c7a\u5b9a\u6700\u597d\u7684\u89e3\u6cd5\uff0c\u4e0d\u5982\u8aaa\u8981\u5927\u5bb6\u540c\u610f\u5728\u9019\u500b\u60c5\u5883\u4e0b\u4ec0\u9ebc\u89e3\u6c7a\u8f03\u597d\u3002<\/p>\n<h3>Damn the Torpedoes, Go Ahead<\/h3>\n<p>\u505a\u6b63\u78ba\u7684\u4e8b\uff0c\u6562\u65bc\u6e9d\u901a\u5be6\u8a71\u3002\u4f8b\u5982\u63a5\u5230\u4e00\u500b\u721b\u7a0b\u5f0f\u8981\u65b0\u589e\u529f\u80fd\uff0c\u4f60\u662f\u8981\u8b93\u4ed6\u721b\u5230\u6700\u5f8c\uff0c\u9084\u662f\u63d0\u51fa\u512a\u7f3a\u53cd\u61c9\u8aaa\u9019\u500b\u5f88\u721b\u8981\u597d\u597d\u6539\u5beb\u3002<\/p>\n<p>\u7576\u4f60\u958b\u767c\u5230\u4e00\u534a\uff0c\u767c\u73fe\u81ea\u5df1\u7684\u65b9\u5411\u4e0d\u5c0d\u4e86\uff0c\u52c7\u65bc\u8aaa\u51fa\u81ea\u5df1\u7684\u65b0\u89e3\u6cd5\uff0c\u5373\u4f7f\u9700\u8981\u66f4\u591a\u6642\u9593\uff0c\u8a62\u554f\u770b\u770b\u5176\u4ed6\u4eba\u7684\u60f3\u6cd5\u3002\u800c\u4e0d\u662f\u9ed8\u9ed8\u7684\u4ea4\u5dee\u4e86\u4e8b\u3002\u8aa0\u5be6\u8207\u52c7\u6c23\u8d0f\u5f97\u4fe1\u4efb\u3002<\/p>\n<p>\u50cf<a href=\"http:\/\/hlb.yichi.org\/\">\u5e03\u4e01<\/a>\u5927\u4eba\u5c31\u5e38\u56b4\u53b2\u5730\u8aaa\uff1a&#8221;\u9019\u6a23\u5c0d\u55ce\uff1f&#8221;&#8230;. \u7576\u4f60\u77e5\u9053\u4ec0\u9ebc\u662f\u5c0d\u7684\uff0c\u5c31\u61c9\u8a72\u53bb\u505a\uff0c\u800c\u4e0d\u662f\u542b\u6df7\u4e86\u4e8b\u3002\u7576\u4f60\u4e86\u89e3\u73fe\u5728\u7684\u932f\u8aa4\uff0c\u8981\u6709\u52c7\u6c23\u8ddf\u4f60\u7684\u5718\u968a\/\u8001\u95c6\u751a\u81f3\u662f\u5ba2\u6236\u8aaa\u660e\uff0c\u5373\u4f7f\u9019\u6a23\u53ef\u80fd\u6703\u5f71\u97ff\u6642\u7a0b\u3002<\/p>\n<p>\u5be6\u505a\u4e00\u500b\u65b0\u529f\u80fd\u6642\uff0c\u4e5f\u8a31\u4f60\u767c\u73fe\u524d\u4eba\u7528\u7684\u662f copy-paste \u5927\u6cd5\uff0c\u4f60\u4e5f\u53ef\u4ee5\u9019\u6a23\u505a\uff0c\u800c\u4e14\u4e5f\u8a31\u4e00\u4e0b\u5c31\u505a\u597d\u4e86\u3002\u8acb\u9f13\u8d77\u52c7\u6c23\u8ddf\u5927\u5bb6\u8aaa\u4f60\u8981\u91cd\u69cb\u4ed6\u3002<\/p>\n<p>\u7576\u5718\u968a\u4e0d\u540c\u610f\u4f60\u7684\u4f5c\u6cd5\u7684\u6642\u5019\uff0c\u4e5f\u8a31\u662f\u4f60\u7684\u7406\u7531\u89e3\u91cb\u7684\u4e0d\u5920\uff0c\u70ba\u4ec0\u9ebc\u9019\u662f\u5c0d\u7684\u3002\u7576\u5718\u968a\u4f9d\u7136\u4e0d\u540c\u610f\u4f60\u7684\u4f5c\u6cd5\u7684\u6642\u5019\uff0c\u4e5f\u8a31\u4ed6\u5011\u624d\u662f\u5c0d\u7684\u3002<\/p>\n<p>\u7576\u7136\uff0c\u770b\u5230\u5947\u602a\u7684code\uff0c\u4e0d\u8981\u7b2c\u4e00\u6642\u9593\u628a\u4ed6\u4e1f\u6389\u6539\u5beb\uff0c\u6c92\u6709\u8db3\u5920\u7684\u4e86\u89e3\u4e0d\u662f\u52c7\u6c23\u800c\u662f\u83bd\u649e\u3002<\/p>\n<h3>Keep up with change (\u8ddf\u4e0a\u79d1\u6280\u8b8a\u5316)<\/h3>\n<p>\u6709\u4eba\u8aaa\u79d1\u6280\u9032\u6b65\u5f88\u5feb\uff0c\u6c38\u9060\u8ddf\u4e0d\u4e0a\u4e7e\u8106\u5c31\u4e0d\u5b78\u4e86\u3002\u4f46\u6771\u897f\u591a\u534a\u662f\u6f38\u9032\u6b65\u7684\uff0c\u5e38\u5e38\u8ddf\u4e0a\u624d\u4e0d\u6703\u8ddf\u4e0d\u4e0a\u3002<br \/>\n\u4e0d\u7528\u7cbe\u5c08\u6bcf\u9805\u65b0\u6280\u8853\uff0c\u4f46\u4fdd\u6301\u8b66\u89ba\u4e0d\u8981\u5ffd\u7565\uff0c\u6301\u7e8c\u898f\u5f8b\u5730\u5b78\u7fd2\u8ddf\u4e0a\u8173\u6b65\u3002\u9019\u4e00\u884c\u4e0d\u662f\u5b78\u6821\u7562\u696d\u5c31\u53ef\u4ee5\u505c\u6b62\u5b78\u7fd2\u3002<br \/>\n\u4e86\u89e3\u70ba\u4f55\u65b0\u6280\u8853\u9019\u9ebc\u91cd\u8981? \u662f\u8981\u89e3\u6c7a\u4ec0\u9ebc\u554f\u984c? \u4ed6\u8981\u7528\u5728\u54ea\u88e1?<\/p>\n<h3>Invest in Your Team (\u6295\u8cc7\u4f60\u7684\u5718\u968a)<\/h3>\n<p>\u4e0d\u8981\u85cf\u79c1\uff0c\u5206\u4eab\u80fd\u8b93\u5718\u968a\u8208\u596e\u7684\u6280\u8853\u6216\u6280\u5de7\uff0c\u63d0\u6607\u5718\u968a\u80cc\u666f\u77e5\u8b58\u7d55\u5c0d\u6709\u52a9\u65bc\u6e9d\u901a\u8207\u958b\u767c\u6548\u7387\u3002\u5efa\u8b70\u53ef\u4ee5\u6bcf\u9031\u5b89\u6392\u4e00\u5834\u7c21\u77ed\u7684\u6280\u8853 presentation\u3002<\/p>\n<h3>Know when to unlearn (\u77e5\u9053\u4ec0\u9ebc\u662f\u904e\u6642\u7684\u6280\u8853)<\/h3>\n<p>\u6280\u8853\u5728\u9032\u6b65\uff0c\u6709\u6642\u5019\u5fc5\u9808\u628a\u820a\u6771\u897f\u7d66\u4e1f\u6389\u5b78\u65b0\u7684\uff0c\u4f8b\u5982CPU\u8b8a\u5feb\u4e86\uff0cDeveloper time \u8b8a\u91cd\u8981\u4e86\uff0c\u5f88\u591a\u4ee5\u5f80\u7684\u820a\u5beb\u6cd5\u4e0d\u518d\u9069\u7528\u5fc5\u9808\u4e1f\u6389\u3002\u4e0d\u904e\u6700\u56f0\u96e3\u7684\u7b2c\u4e00\u6b65\u5c31\u662f\u4e86\u89e3\u5230\u662f\u5426\u7528\u4e86\u904e\u671f\u7684\u89e3\u6cd5\u3002<\/p>\n<h3>Question until you understand (\u554f\u70ba\u4ec0\u9ebc\u76f4\u5230\u4e86\u89e3)<\/h3>\n<p>\u4e0d\u8981\u4eba\u5bb6\u544a\u8a34\u4f60\u4ec0\u9ebc\u901a\u76e4\u63a5\u53d7\uff0c\u5728 debugging\u3001\u4e86\u89e3 requirement \u8ddf design \u6642\uff0c\u8981\u597d\u597d\u4e86\u89e3\u4e26\u63d0\u554f\u3002\u7cfb\u7d71\u5f88\u8907\u96dc\uff0c debug \u4e0d\u80fd\u53ea\u770b\u8868\u9762\u5fb5\u5146\u800c\u5df2\uff0c\u800c\u662f\u8981\u4e86\u89e3\u4ec0\u9ebc\u662f\u771f\u6b63\u7684\u554f\u984c\u6240\u5728\u3002\u591a\u554f why \u60f3\u60f3\u5230\u5e95\u662f\u4ec0\u9ebc\u539f\u56e0\u3002\u4f8b\u5982\u4eba\u5bb6\u8ddf\u4f60\u8aaa\u7cfb\u7d71\u6bcf\u9031 reboot \u5c31\u597d\u5566\uff0c\u4f46\u662f why?<\/p>\n<h3>Feel the Rhythm (\u7bc0\u594f)<\/h3>\n<p>\u6301\u7e8c\u6709\u7bc0\u594f\u5730\u898f\u5f8b\u8655\u7406\u5c0f\u4efb\u52d9\u7e3d\u662f\u6bd4\u8f03\u7c21\u55ae\uff0c\u4e0d\u8981\u8b93\u554f\u984c\u7d2f\u7a4d\u5230\u67d0\u4e00\u5929\u7a81\u7136\u70b8\u51fa\u4f86\u800c\u7121\u6cd5\u8655\u7406\u3002\u5718\u968a\u4f7f\u7528 interation \u7684\u65b9\u6cd5\uff0c\u5c07\u5c08\u6848\u7684\u5de5\u4f5c\u4efb\u52d9\u4ee5\u4e00\u5230\u56db\u9031\u70ba\u55ae\u4f4d\u3002<\/p>\n<p>\u800c\u5c0d\u500b\u4eba\u4f86\u8aaa\uff0c\u4ee5\u5929\u70ba\u55ae\u4f4d\uff0c\u4eca\u5929\u7d50\u675f\u524d\u5c31\u61c9\u8a72\u628a\u6771\u897f\u6e2c\u8a66\u904e\u7136\u5f8c check in\uff0c\u5982\u679c\u4eca\u5929\u6c92\u8fa6\u6cd5\u544a\u4e00\u6bb5\u843d\uff0c\u5f88\u53ef\u80fd\u6700\u597d\u660e\u5929\u5f97\u91cd\u4f86\u3002\u800c stand-up meeting \u4e5f\u6703\u662f\u6bcf\u5929\u898f\u5f8b\u7684\u5de5\u4f5c\u9805\u76ee\u3002<\/p>\n<hr \/>\n<p>\u5ff5\u5230\u9019\u88e1\uff0c\u96d6\u7136\u90fd\u662f\u770b\u4f3c\u4e00\u4e9b\u5f88\u57fa\u672c\u7684 coding \u5c08\u696d\u614b\u5ea6\uff0c\u4f46\u9019\u4e9b\u50f9\u503c\u89c0\u537b\u5f80\u5f80\u6bd4\u6240\u8b02\u7684\u958b\u767c\u6d41\u7a0b\u9084\u91cd\u8981\u4e0d\u662f\u55ce\uff1f<\/p>\n<p>Update: \u672c\u7cfb\u5217\u6587\u5171\u6709\u516d\u7bc7\uff1a<\/p>\n<ul>\n<li><a href=\"https:\/\/ihower.tw\/blog\/archives\/1750\">\u5c08\u696d\u614b\u5ea6\u7bc7<\/a><\/li>\n<li><a href=\"https:\/\/ihower.tw\/blog\/archives\/1756\">\u9700\u6c42\u7bc7<\/a><\/li>\n<li><a href=\"https:\/\/ihower.tw\/blog\/archives\/1758\">\u6e2c\u8a66\u7bc7<\/a><\/li>\n<li><a href=\"https:\/\/ihower.tw\/blog\/archives\/1898\">\u7a0b\u5f0f\u7bc7<\/a><\/li>\n<li><a href=\"https:\/\/ihower.tw\/blog\/archives\/2333\">\u9664\u932f\u7bc7<\/a><\/li>\n<li><a href=\"https:\/\/ihower.tw\/blog\/archives\/2369\">\u5718\u968a\u958b\u767c\u7bc7<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u654f\u6377\u8edf\u9ad4\u958b\u767c\u4e00\u76f4\u662f\u6211\u5011\u5167\u90e8\u958b\u767c\u7684\u6838\u5fc3\u6982\u5ff5\uff0c\u5f37\u8abf\u500b\u4eba\u3001\u5408\u4f5c\u3001\u56de\u61c9\u548c\u4f7f\u7528\u5de5\u4f5c\u8edf\u9ad4(wiki, version co &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/ihower.tw\/blog\/1750-practices-of-an-agile-developer-1-professional\" class=\"more-link\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">\u3008\u5be6\u6230\u654f\u6377\u958b\u767c Practices of an Agile Developer (1) \u5c08\u696d\u614b\u5ea6\u7bc7\u3009<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[51,9],"tags":[],"class_list":["post-1750","post","type-post","status-publish","format-standard","hentry","category-agile","category-books","entry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1q6tG-se","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/1750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/comments?post=1750"}],"version-history":[{"count":11,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/1750\/revisions"}],"predecessor-version":[{"id":8268,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/1750\/revisions\/8268"}],"wp:attachment":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/media?parent=1750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/categories?post=1750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/tags?post=1750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}