<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    OOPAA

    Focusing on OO, Patterns, Architecture, and Agile
    posts - 29, comments - 75, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    由某手機廠商現狀漫談敏捷

    Posted on 2008-12-18 13:58 mingj 閱讀(3647) 評論(6)  編輯  收藏 所屬分類: agile 敏捷
    跟同事聊天,他原先是在一著名手機廠商研發中心工作,主要是做該廠商手持終端設備上的系統軟件,于是自然聊到“摩托,也要騾拉”上來。近幾年該廠的發展很不景氣,好幾年也沒見一款拿得出手的手機,在中國的市場占有率從前三降到排名之外,連在國貿的冠名大廈都賣掉了。同事說起來也是頗多無奈,講述了他看到的情況。

    據他觀察,該公司內部是出現了這個幾個問題:
    1. 基礎平臺不穩定,大量功能被任意加到平臺里面,導致越來越復雜,后期維護擴展完全不可能
    2. 產品設計部的設計到產品研發,中間經歷太長時間,不能響應市場需求
    3. 產品研發到最后才發現功能缺陷或者性能缺陷,最后只能 cancel

    這些問題的產生原因相信見仁見智。撇開管理層和多部門間合作的問題,個人覺得這是傳統軟件開發模式下出現的典型問題,特別是基于瀑布模式的軟件開發。不能很快地響應變化,前期環節很難得到后面環節的反饋。由于開發模型是線性的,只有等到整個過程的末期才能見到開發成果,從而增加了開發的風險;早期的錯誤可能要等到開發后期的測試階段才能發現,進而帶來嚴重的后果。這樣就會導致很多啟動初期信心滿滿都看好的項目最后只能前赴后繼地陷入“焦泥坑”。實際過程中會加入更多的開發人員,使用更多的先進開發工具試圖解決問題,但對于開發問題的解決,這些都是作用不大的,甚至是幫倒忙的。Brooks' law 告訴我們,“Adding manpower to a late software project makes it later.”

    “開發過程中變數太多了!”同事感慨到,于是又說到敏捷方法的擁抱變化。其實敏捷何嘗能減少變化。軟件開發的過程就是將問題域映射到軟件系統,然后提供軟件層面的解決方案。這里面天然存在兩個“再創造”的過程:問題域的分析建模,軟件的實現運行。任何一個環節的復雜性都會被放大累積進整個過程的復雜性,那么有沒有一勞永逸的辦法來解決這兩個問題?同樣是 Fred Brooks 告訴我們 “there is no Silver Bullet.”

    軟件開發的復雜性可以分為兩種:本質復雜性和附加復雜性。其中附加復雜性包括人的復雜、工具技術的復雜,外部的復雜等。這些附加復雜性都是希望被限制到最小限度,可能造成的影響被限制在最小范圍內。這也是各種軟件開發方法試圖解決的主要問題。至于本質復雜性,主要是問題域本身的業務復雜,這是社會、組織,甚至各種因素造成的不可逃避的問題,是任何軟件方法都不可能抹掉的。因此,如何減少附加復雜性,盡可能解決本質復雜性,就是軟件開發方法的使命,也是判斷軟件方法是否有效的唯一標準。可悲的是,傳統的軟件開發大多是著眼于通過增加附加復雜性來解決本質復雜性,或者通過文檔、或者通過層層審批、或者通過freeze code base等等,但最后都被證明是刻舟求劍、緣木求魚。

    與傳統方法不同,敏捷方法就是試圖解決軟件開發過程中的附加復雜性,把對解決本質復雜性的關注重新放到舞臺的中央,并提供應對本質復雜性的足夠可能。對于解決附加復雜性,敏捷宣言有“可工作的軟件勝于詳盡冗繁的文檔”,也有很多相關的實踐來保持對附加復雜性的不侵入,就不贅述了。那么敏捷是如何擁抱本質復雜性呢?那就是保持簡單和客戶 involved。

    簡單,于是可以足夠輕量來調整原來的實現;簡單,于是團隊內部容易達到領域知識共享;簡單,于是開發過程透明性大大增強......這一切的結果都指向“響應變化”。user case 簡單了,就很容易來進行確認,包括前期和客戶的需求確認,也包括后期開發結果的確認。代碼簡單了,就很容易進行重構,增進設計,逐步兼容添加問題域中的復雜性。開發計劃簡單了,現在不用關心幾個月后的事情,只需要關注到下一個迭代和當前 release 涉及的需求。“簡約,而不簡單”,大家都輕松了,有時間培養自己的業余興趣了。

    這是從開發團隊的角度來看到響應變化。客戶 involved 就使得這些變化能被客戶感知和認同,讓客戶盡可能主動思考現實問題域中的復雜性是否有改進的地方,規避了可能的風險,也有利于培養出長期積極的合作關系。這是一個很良性的互動過程,也是一個逐步走向雙贏的過程。這也是項目管理層和公司決策層會喜歡看到的結果。

    “這些都很美好,但執行起來還得看人”,同事又拋出了這樣的論點。我默然,世界上最復雜的莫過于人了。不管方法理論上多么完美,實踐起來多么容易,只有真正有合適的人,讓合適的人去做合適的事,才能不致于明珠暗投,徒然神傷了。嗚呼



    評論

    # re: 由某手機廠商現狀漫談敏捷  回復  更多評論   

    2008-12-18 15:04 by jsf fans
    所以敏捷的核心還是人和這些人組成的團隊

    # re: 由某手機廠商現狀漫談敏捷  回復  更多評論   

    2008-12-18 16:27 by 批發網
    團隊力量是無可比的啊

    # re: 由某手機廠商現狀漫談敏捷  回復  更多評論   

    2008-12-18 22:31 by dell筆記本訂購
    人才呀

    # re: 由某手機廠商現狀漫談敏捷  回復  更多評論   

    2008-12-19 13:52 by 路過
    軟文 敏捷并未解決軟件開發的銀彈問題 倒是那幾個敏捷公司(如ThoughtWorks) 拼命鼓吹自己的敏捷教練和配套工具 當然不是免費的了... 乖乖 好端端的東西都變味了 沒辦法 一切向錢看 這就是生活啊

    # re: 由某手機廠商現狀漫談敏捷  回復  更多評論   

    2008-12-20 00:52 by mingj
    @路過
    沒有萬能的銀彈
    可惜很多時候人們會被冗繁的日常工作蒙蔽了決心和判斷
    這時候,敏捷教練或者工具就可以起一個mentor的作用了
    當然,敏捷教練是深入到開發過程中去,了解具體的pain point再對癥下藥
    所以有位同事風趣地將其形容為“挽起袖子做咨詢”:)

    # re: 由某手機廠商現狀漫談敏捷  回復  更多評論   

    2008-12-20 14:41 by Kurt
    Moto 的平臺確實是超級復雜,繁重的process工作像一輛破車一樣難以快速前行!更要命的是這種高級的規范并沒有帶來多少代碼的質量提高,code還是那樣難于閱讀維護!
    主站蜘蛛池模板: 精品免费国产一区二区三区| 日韩亚洲国产高清免费视频| 免费看成人AA片无码视频吃奶| 久久99免费视频| 精品免费久久久久久久| 在线观看人成视频免费| 亚洲精品久久久www| 亚洲AV无码一区二区乱孑伦AS| 亚洲最大在线视频| 在线观看亚洲网站| 两个人的视频www免费| 亚洲美女视频免费| 四只虎免费永久观看| 日本红怡院亚洲红怡院最新 | 国产亚洲真人做受在线观看| 亚洲韩国在线一卡二卡| 亚洲Av无码国产一区二区| 成人免费av一区二区三区| 24小时在线免费视频| 国产又黄又爽又刺激的免费网址| 国产亚洲成av片在线观看| jlzzjlzz亚洲jzjzjz| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲视频一区二区在线观看| 亚洲精品日韩一区二区小说| 两性色午夜免费视频| 成人性生免费视频| 亚洲日韩激情无码一区| 久久久国产亚洲精品| 久久不见久久见免费影院www日本| 亚洲电影免费观看| 亚洲精品成人在线| 亚洲乱码日产精品BD在线观看| 深夜久久AAAAA级毛片免费看| 无码区日韩特区永久免费系列| 亚洲情侣偷拍精品| 7777久久亚洲中文字幕| a色毛片免费视频| 性做久久久久免费看| 久久青草亚洲AV无码麻豆| 日韩精品无码区免费专区|