簡易檢索 / 詳目顯示

研究生: 楊耘臺
Yang, Yun-Tai
論文名稱: 藉由充分發揮開發者能力以達到協同合作
Achieving Full Strength of Collaboration by Optimizing Team Developer Capability
指導教授: 焦惠津
Jiau, Hewijin Christine
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 電腦與通信工程研究所
Institute of Computer & Communication Engineering
論文出版年: 2020
畢業學年度: 108
語文別: 英文
論文頁數: 49
中文關鍵詞: 協同合作自我組織型團隊開發流程
外文關鍵詞: collaboration, self-organizing team, development process
相關次數: 點閱:70下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 自我組織型團隊(self-organizing team)的開發者們仰賴協同合作(collaboration)去建構軟體。然而,目前為止並沒有一個清楚的做法去協助開發者們有效地組織彼此並進行協同合作。開發者們在專案開發過程中所展現合作行為的有效性,實際上會受到成員能力以及團隊組成的影響。如果沒有對成員做適當的安排,開發者們無法確保團隊可以達到真正的協同合作。為了解決這個問題,本研究提出一個協同合作的開發流程(developmenp process),藉由反覆地進行開發流程上的數個步驟去引導開發者們進行合作。透過這個開發流程,開發者們能夠選擇適合的成員,並且適當地分配成員到不同團隊去同步進行開發。開發者們不僅可以充分發揮彼此在軟體工程領域所著重的能力(developer capability),更可以透過每次反覆的過程不斷地調整並改善彼此進行合作的方式。根據一個案例研究的驗證結果,開發者們確實可以充分發揮能力以滿足專案需求,甚至可以依據第一個專案的合作紀錄回饋更有效地在第二個專案中進行合作。因此,此開發流程被證實是有效的。

    Developers in a self-organizing team rely on collaboration to construct software. However, it is still unclear yet concerning how to organize developers and assist them in collaborating with each other. Effectiveness of collaborative behaviors that developers act during project development is actually influenced by developer capability and team formation. If developers are not organized properly, it is challenging to ensure that developers would achieve real collaboration. To tackle the issue, an iterative process which is attached with collaboration, is proposed in this work, guiding developers to collaborate through several steps. Through the process, developers are able to select suitable members and arrange themselves properly into teams to work in parallel. Developers not only optimize their capabilities which are emphasized in software engineering, but they also adjust as well as improve themselves continuously by iterations. According to evaluation results from a case study, developers truly optimize their capabilities to well satisfy collaboration requirements of the project. Furthermore, they collaborate with each other more effectively in the second project based on assessment feedback from the first project. The process is hence verified to be effective in collaboration.

    摘要 ... i Abstract ... ii Acknowledgments ... iii Table of Contents ... iv List of Tables ... vi List of Figures ... vii Chapter 1. Introduction ... 1 Chapter 2. Background ... 4 2.1 Self-Organizing Agile Teams ... 4 2.2 Collaborative Behaviors ... 5 2.2.1 Awareness Providing ... 5 2.2.2 Knowledge Sharing ... 6 2.2.3 Work Coordinating ... 7 2.2.4 Process Improving ... 8 2.3 Developer Capability and Team Formation in Collaboration ... 8 Chapter 3. Collaboration ... 10 3.1 Current Collaboration: a Black Box ... 10 3.2 Proposed Collaboration: through an Iterative Process ... 12 Chapter 4. PreCollaboration ... 16 4.1 Steps in PreCollaboration ... 16 4.1.1 Step 1: Member Selection ... 17 4.1.2 Step 2: Sub-project Selection ... 19 4.1.3 Step 3: Member Arrangement ... 20 4.1.4 Step 4: Collaboration Assessment ... 21 4.1.5 Feedback ... 24 Chapter 5. Case Study ... 26 5.1 Case Description ... 26 5.1.1 Project W ... 26 5.1.2 Project X ... 27 5.2 Data Collection ... 27 5.2.1 Developer Capabilities ... 28 5.2.2 Messages in Instant Messaging ... 29 5.2.3 Meeting Behaviors ... 29 5.2.4 Wiki Records ... 30 5.2.5 Task Completion Records ... 31 5.3 Data Analysis ... 31 Chapter 6. Case Study Results ... 33 6.1 Ratios of Collaborative Behaviors ... 33 6.2 Correlation between Developer Capability and Actual Behaviors ... 35 6.3 Congruence Values in Teams ... 36 6.4 Overall Collaboration Effectiveness in Project W ... 39 6.5 Correlation between Collaboration Effectiveness and Development Efficiency ... 40 6.6 Collaboration Effectiveness in Project X based on Feedback of Project W ... 41 Chapter 7. Conclusion ... 44 References ... 46

    [1] P. Achimugu, A. Selamat, R. Ibrahim, and M. N. Mahrin. A systematic literature review of software requirements prioritization research. Information and Software Technology, 56(6):568–585, June 2014.
    [2] L. Anderson, G. B. Alleman, K. Beck, J. Blotner, W. Cunningham, M. Poppendieck, and R. WirfsBrock. Agile management an oxymoron?: Who needs managers anyway? In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’03, pages 275–277, New York, NY, USA, 2003. ACM.
    [3] J. R. Barker. Tightening the iron cage: Concertive control in self-managing teams. Administrative Science Quarterly, 38(3):408–437, 1993.
    [4] K. Beck, M. Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R. C. Martin, S. Mellor, K. Schwaber, J. Sutherland, and D. Thomas. Manifesto for agile software development, 2001.
    [5] S. Bick, K. Spohrer, R. Hoda, A. Scheerer, and A. Heinzl. Coordination challenges in large-scale software development: A case study of planning misalignment in hybrid settings. IEEE Transactions on Software Engineering, 44(10):932–950, Oct. 2018.
    [6] K. Blincoe, G. Valetto, and D. Damian. Facilitating coordination between software developers: A study and techniques for timely and efficient recommendations. IEEE Transactions on Software Engineering, 41(10):969–985, Oct. 2015.
    [7] M. Cataldo and J. D. Herbsleb. Coordination breakdowns and their impact on development productivity and software failures. IEEE Transactions on Software Engineering, 39(3):343–360, Mar. 2013.
    [8] M. Cataldo, P. A. Wagstrom, J. D. Herbsleb, and K. M. Carley. Identification of coordination requirements: Implications for the design of collaboration and awareness tools. In Proceedings of the 20th Anniversary Conference on Computer Supported Cooperative Work, CSCW ’06, pages 353–362, New York, NY, USA, 2006. ACM.
    [9] C. Chen and K. Zhang. The effects of continuous awareness on distributed software development. In Proceedings of the 2014 IEEE 9th International Conference on Global Software Engineering, ICGSE '14, page 56–64, USA, 2014. IEEE Computer Society.
    [10] J. Chong and T. Hurlbutt. The social dynamics of pair programming. In Proceedings of the 29th International Conference on Software Engineering, ICSE '07, page 354–363, USA, 2007. IEEE Computer Society.
    [11] A. Cockburn and J. Highsmith. Agile software development: The people factor. IEEE Computer, 34(11):131–133, Nov. 2001.
    [12] C. R. B. de Souza and D. F. Redmiles. The awareness network, to whom should i display my actions? and, whose actions should i monitor? IEEE Transactions on Software Engineering, 37(3):325–340, May 2011.
    [13] P. Dourish and V. Bellotti. Awareness and coordination in shared workspaces. In Proceedings of the 1992 ACM Conference on Computer-supported Cooperative Work, CSCW ’92, pages 107–114, New York, NY, USA, 1992. ACM.
    [14] T. E. Fægri, V. Stray, and N. B. Moe. Shared knowledge in virtual software teams: A preliminary framework. In Proceedings of the 2016 IEEE 11th International Conference on Global Software Engineering, ICGSE '16, pages 174–178, Aug. 2016.
    [15] Z. Guan, S. Yang, H. Sun, M. Srivatsa, and X. Yan. Fine-grained knowledge sharing in collaborative environments. IEEE Transactions on Knowledge and Data Engineering, 27(8):2163–2174, Aug. 2015.
    [16] M. L. Guimarães and A. R. Silva. Improving early detection of software merge conflicts. In Proceedings of the 34th International Conference on Software Engineering, ICSE ’12, page 342–352. IEEE Press, 2012.
    [17] M. Handel and J. D. Herbsleb. What is chat doing in the workplace? In Proceedings of the 2002 ACM Conference on Computer Supported Cooperative Work, CSCW ’02, pages 1–10, New York, NY, USA, 2002. ACM.
    [18] J. E. Hannay, E. Arisholm, H. Engvik, and D. I. K. Sjoberg. Effects of personality on pair programming. IEEE Transactions on Software Engineering, 36(1):61–80, Jan. 2010.
    [19] J. Highsmith and A. Cockburn. Agile software development: The business of innovation. IEEE Computer, 34(9):120–127, Sept. 2001.
    [20] R. Hoda. Self-Organizing Agile Teams: A Grounded Theory. PhD thesis, Victoria University of Wellington, 2011.
    [21] R. Hoda. Power to the people. IEEE Software, 30(2):92–92, Mar. 2013.
    [22] R. Hoda, J. Noble, and S. Marshall. Self-organizing roles on agile software development teams. IEEE Transactions on Software Engineering, 39(3):422–444, Mar. 2013.
    [23] H. Ibarra and M. T. Hansen. Are you a collaborative leader?, 2011.
    [24] E. Kalliamvakou, C. Bird, T. Zimmermann, A. Begel, R. DeLine, and D. M. German. What makes a great manager of software engineers? IEEE Transactions on Software Engineering, 45(1):87–106, Jan. 2019.
    [25] Z. U. R. Kiani, D.S̆mite, and A. Riaz. Measuring awareness in cross-team collaborations – distance matters. In Proceedings of the 2013 IEEE 8th International Conference on Global Software Engineering, ICGSE '13, page 71–79, USA, 2013. IEEE Computer Society.
    [26] A. J. Ko, R. DeLine, and G. Venolia. Information needs in collocated software development teams. In Proceedings of the 29th International Conference on Software Engineering, ICSE '07, page 344–353, USA, 2007. IEEE Computer Society.
    [27] I. Kwan, A. Schroter, and D. Damian. Does socio-technical congruence have an effect on software build success? a study of coordination in a software project. IEEE Transactions on Software Engineering, 37(3):307–324, May 2011.
    [28] C. Larman and V. R. Basili. Iterative and incremental developments: A brief history. IEEE Computer, 36(6):47–56, June 2003.
    [29] P. L. Li, A. J. Ko, and J. Zhu. What makes a great software engineer? In Proceedings of the 37th International Conference on Software Engineering Volume 1, ICSE '15, page 700–710. IEEE Press, 2015.
    [30] S. Licorish, A. Philpott, and S. G. MacDonell. Supporting agile team composition: A prototype tool for identifying personality (in)compatibilities. In Proceedings of the 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering, CHASE '09, page 66–73, USA, 2009. IEEE Computer Society.
    [31] T. W. Malone, T. W. Malone, and K. Crowston. The interdisciplinary study of coordination. ACM Computing Surveys, 26(1):87–119, Mar. 1994.
    [32] C. Matthies. Agile process improvement in retrospectives. In Proceedings of the 41st International Conference on Software Engineering: Companion Proceedings, ICSE '19, page 150–152. IEEE Press, 2019.
    [33] N. B. Moe, D. S. Cruzes, T. Dybå, and E. Engebretsen. Coaching a global agile virtual team. In Proceedings of the 2015 IEEE 10th International Conference on Global Software Engineering, ICGSE '15, page 33–37, USA, 2015. IEEE Computer Society.
    [34] N. B. Moe, T. Dingsøyr, and T. Dybå. Understanding self-organizing teams in agile software development. In 19th Australian Conference on Software Engineering, pages 76–85, Mar. 2008.
    [35] N. B. Moe, T. Dingsyr, and O. Kvangardsnes. Understanding shared leadership in agile development: A case study. In 2009 42nd Hawaii International Conference on System Sciences, pages 1–10, Jan. 2009.
    [36] M. Palyart, G. C. Murphy, and V. Masrani. A study of social interactions in open source component use. IEEE Transactions on Software Engineering, 44(12):1132–1145, Dec. 2018.
    [37] P. N. Robillard. The role of knowledge in software development. Communications of the ACM, 42(1):87–92, Jan. 1999.
    [38] K. S. Rubin. Essential Scrum: A Practical Guide to the Most Popular Agile Process. Addison-Wesley Professional, 1st edition, 2012.
    [39] I. Rus and M. Lindvall. Knowledge management in software engineering. IEEE Software, 19(3):26–38, May 2002.
    [40] A. Samur. Collaborative leadership: moving from top-down to team-centric, 2019.
    [41] K. Schmidt. The problem with ‘awareness’: Introductory remarks on ‘awareness in cscw’. Computer Supported Cooperative Work, 11(3):285–298, Sept. 2002.
    [42] E. K. Smith, C. Bird, and T. Zimmermann. Build it yourself! homegrown tools in a large software company. In Proceedings of the 37th International Conference on Software Engineering Volume 1, ICSE '15, page 369–379. IEEE Press, 2015.
    [43] M. Storey, A. Zagalsky, F. F. Filho, L. Singer, and D. M. German. How social and communication channels shape and challenge a participatory culture in software development. IEEE Transactions on Software Engineering, 43(2):185–204, Feb. 2017.
    [44] V. Stray, N. B. Moe, and M. Noroozi. Slack me if you can! using enterprise social networking tools in virtual agile teams. In Proceedings of the 14th International Conference on Global Software Engineering, ICGSE '19, page 101–111. IEEE Press, 2019.
    [45] C. Treude and M. Storey. Effective communication of software development knowledge through community portals. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, ESEC/FSE ’11, pages 91–101, New York, NY, USA, 2011. ACM.
    [46] C. Treude and M. Storey. Work item tagging: Communicating concerns in collaborative software development. IEEE Transactions on Software Engineering, 38(1):19–34, Jan. 2012.
    [47] R. Vivian, H. Tarmazdi, K. Falkner, N. Falkner, and C. Szabo. The development of a dashboard tool for visualising online teamwork discussions. In Proceedings of the 37th International Conference on Software Engineering Volume 2, ICSE '15, page 380–388. IEEE Press, 2015.
    [48] F. Zieris. Qualitative analysis of knowledge transfer in pair programming. In Proceedings of the 37th International Conference on Software Engineering Volume 2, ICSE '15, page 855–858. IEEE Press, 2015.

    無法下載圖示 校內:2025-01-06公開
    校外:不公開
    電子論文尚未授權公開,紙本請查館藏目錄
    QR CODE