Skip to main content
Log in

A dependency taxonomy for agile software development projects

  • Published:
Information Systems Frontiers Aims and scope Submit manuscript

Abstract

Agile software development is designed to achieve collaborative software development. A supporting pillar of collaboration is effective coordination, which is necessary to manage dependencies in projects. Understanding the dependencies arising in agile software development projects can help practitioners choose appropriate coordinative practices from the large number of practices provided by the various agile methods. To achieve this understanding, this article analyses dependencies in three typical cases of co-located agile software development and presents the dependencies as a taxonomy with decision rules for allocating dependencies into categories. Findings show that knowledge, process, and resource dependencies are present, with knowledge dependencies predominant. In addition, there are agile practices with a coordinative function that address multiple dependencies in these agile software development projects. These practices would be a good choice for coordinating a project and supporting collaboration in agile software projects.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

References

  • Amrit, C., & van Hillegersberg, J. (2008). Detecting coordination problems in collaborative software development environments. Information Systems Journal, 25(1), 57–70.

    Google Scholar 

  • Aspray, W., Mayadas, F., & Vardi, M. Y. (Eds.). (2006). Globalization and offshoring of software: A report of the ACM job migration task force. http://www.acm.org/globalizationreport/pdf/fullfinal.pdf: Association for Computing Machinery.

  • Bailey, K. D. (1994). Typologies and taxonomies: An introduction to classification techniques. Thousand Oaks: Sage.

    Google Scholar 

  • Beck, K. (2000). Extreme Programming Explained: Embrace Change ((The XP series)). Boston: Addison-Wesley.

    Google Scholar 

  • Boehm, B., & Turner, R. (2004). Balancing Agility and Discipline. Boston: Addison-Wesley.

    Google Scholar 

  • Brooks, F. (1995). The mythical man month: Essays on software engineering. Reading: Addison-Wesley.

    Google Scholar 

  • Cao, L., Mohan, K., Ramesh, B., & Sarker, S. (2013). Adapting funding processes for agile IT projects: an empirical investigation. European Journal of Information Systems, 22(1), 191–205.

    Article  Google Scholar 

  • Cao, L., & Ramesh, B. (2008). Agile requirements engineering practices: an empirical study. IEEE Software, 60–67.

  • Cataldo, M., Mockus, A., Roberts, J. A., & Herbsleb, J. D. (2009). Software dependencies, work dependencies, and their impact on failures. IEEE Transactions on Software Engineering, 35(6), 864–878.

    Article  Google Scholar 

  • Chuang, S.-W., Luor, T., & Lu, H.-P. (2014). Assessment of institutions, scholars, and contributions on agile software development (2001–2012). The Journal of Systems and Software. doi:10.1016/j.jss.2014.03.006.

    Google Scholar 

  • Cockburn, A. (2002). Agile Software Development. Boston: Addison-Wesley.

    Google Scholar 

  • Conboy, K. (2009). Agility from first principles: reconstructing the concept of agility in information systems development. Information Systems Research, 20(3), 329–354.

    Article  Google Scholar 

  • Conboy, K., & Fitzgerald, B. (2007). The views of experts on the current state of agile method tailoring. In T. McMaster, D. Wastell, E. Ferneley, & J. DeGross (Eds.), IFIP International Federation for Information Processing (Vol. 235, pp. 217–234). Boston: Springer.

    Google Scholar 

  • Crowston, K. (1991). Towards a coordination cookbook: recipes for multi-agent action. Cambridge: Massachusetts Institute of Technology.

    Google Scholar 

  • Crowston, K., & Osborn, C. S. (2003). A coordination theory approach to process description and redesign. In T. W. Malone, K. Crowston, & G. A. Herman (Eds.), Organizing Business Knowledge: The MIT Process Handbook (pp. 335–370). Cambridge: The MIT Press.

    Google Scholar 

  • Curtis, B., Krasner, H., & Iscoe, N. (1988). A field study of the software design process for large systems. Communications of the ACM, 31(11), 1268–1287.

    Article  Google Scholar 

  • DeMarco, T., & Lister, T. (1987). Peopleware: Productive projects and teams. New York: Dorset House.

    Google Scholar 

  • Dingsoyr, T., Nerur, S., Balijepally, V., & Moe, N. (2012). A decade of agile methodologies: towards explaining agile software development. The Journal of Systems and Software, 85(6).

  • Doty, D. H., & Glick, W. H. (1994). Typologies as a unique form of theory building: toward improved understanding and modeling. The Academy of Management Review, 19(2), 230–251.

    Google Scholar 

  • Drury-Grogan, M., & O’Dwyer, O. (2013). An investigation of the decision-making process in agile teams. International Journal of Information Technology and Decision Making, 12(6), 1097–1120.

    Article  Google Scholar 

  • Dube, L., & Pare, G. (2003). Rigor in information systems positivist case research: current practice, trends, and recommendations. MIS Quarterly, 27(4), 597–635.

    Google Scholar 

  • Dyba, T., & Dingsoyr, T. (2008). Empirical studies of agile software development: a systematic review. Information and Software Technology, 50(9–10), 833–859.

    Article  Google Scholar 

  • Eisenhardt, K. M. (1989). Building theories from case study research. The Academy of Management Review, 14(4), 532–550.

    Google Scholar 

  • Espinosa, A. J., Lerch, F. J., & Kraut, R. E. (2004). Explicit versus implicit coordination mechanisms and task dependencies: One size does not fit all. In E. Salas & S. M. Fiore (Eds.), Team Cognition: Understanding the Factors that Drive Process and Performance (pp. 107–129). Washington DC: American Psychological Association.

    Chapter  Google Scholar 

  • Espinosa, A. J., Slaughter, S. A., Kraut, R. E., & Herbsleb, J. D. (2007). Team knowledge and coordination in geographically distributed software development. Journal of Management Information Systems, 24(1), 135–169.

    Article  Google Scholar 

  • Faraj, S., & Sproull, L. (2000). Coordinating expertise in software development teams. Management Science, 46(12), 1554–1568.

    Article  Google Scholar 

  • Fitzgerald, B., Hartnett, G., & Conboy, K. (2006). Customising agile methods to software practices at Intel Shannon. European Journal of Information Systems, 15(2), 200–213.

    Article  Google Scholar 

  • Glass, R. L., & Vessey, I. (1995). Contemporary application domain taxonomies. IEEE Software, 12(4), 63–76.

    Article  Google Scholar 

  • Goh, J. C., Pan, S. L., & Zuo, M. (2013). Developing the agile IS development practices in large-scale IT projects: the trust-mediated organizational controls and IT project team capabilities perspectives. Journal of the Association for Information Systems, 14(12), 722–756.

    Google Scholar 

  • Gregor, S. (2006). The nature of theory in information systems. MIS Quarterly, 30(3), 611–642.

    Google Scholar 

  • Grinter, R. E. (1996). Understanding dependencies: A study of the coordination challenges in software development. PhD Thesis, University of California, Irvine.

  • Gumm, D. C. (2006). Distribution dimensions in software development projects: a taxonomy. IEEE Software, 45–51.

  • Herbsleb, J. D. (2007). Global Software Engineering: The future of socio-technical coordination. In Proceedings of the International Conference on Software Engineering: Future of Software Engineering FOSE’07 (pp. 188–198). IEEE Xplore digitial library.

  • Highsmith, J. (2000). Adaptive Software Development: A Collaborative Approach to Managing Complex Systems. New York: Dorset House Publishing.

    Google Scholar 

  • Hoda, R., Noble, J., & Marshall, S. (2010). Organizing self-organizing teams. In Proceedings of the IEEE/ACM International Conference on Software Engineering, ICSE 2010, May 2–9, 2010 (pp. 285–294). New York: ACM.

    Google Scholar 

  • Hoegl, M., Weinkauf, K., & Gemuenden, H. (2004). Interteam coordination, project commitment, and teamwork in multiteam R&D projects: a longitudinal study. Organization Science, 15(1), 38–55.

    Article  Google Scholar 

  • Iivari, J., Hirschheim, R., & Klein, H. K. (2004). Towards a distinct body of knowledge for information systems experts: coding ISD process knowledge in two IS journals. Information Systems Journal, 14(4), 313–342.

    Article  Google Scholar 

  • Iivari, J., & Iivari, N. (2011). The relationship between organizational culture and the deployment of agile methods. Information and Software Technology, 53(5), 509–520. doi:10.1016/j.infsof.2010.10.008.

    Article  Google Scholar 

  • Kerzner, H. (2003). Project Management: A Systems Approach to Planning, Scheduling, and Controlling (8th ed.). Hoboken: Wiley.

    Google Scholar 

  • Kraut, R. E., & Streeter, L. A. (1995). Coordination in software development. Communications of the ACM, 38(3), 69–81.

    Article  Google Scholar 

  • Malone, T. W., & Crowston, K. (1994). The interdisciplinary study of coordination. ACM Computing Surveys, 26(1), 87–119.

    Article  Google Scholar 

  • Malone, T. W., Crowston, K., & Herman, G. A. (Eds.). (2003). Organizing Business Knowledge: The MIT Process Handbook. Cambridge: The MIT Press.

    Google Scholar 

  • Malone, T. W., Crowston, K., Lee, J., Pentland, B., Dellarocas, C., Wyner, G., et al. (1999). Tools for inventing organizations: toward a handbook of organizational processes. Management Science, 45(3), 425–443.

    Article  Google Scholar 

  • Marks, M. A., Mathieu, J. E., & Zaccaro, S. J. (2001). A temporally based framework and taxonomy of team processes. The Academy of Management Review, 26(8), 356–376.

    Google Scholar 

  • Martin, A., Biddle, R., & Noble, J. (2004). The XP customer role in practice: Three studies. In Agile Development Conference, 2004 (pp. 42–54). IEEE

  • McChesney, I. R., & Gallagher, S. (2004). Communication and coordination practices in software engineering projects. Information and Software Technology, 46(7), 473–489.

    Article  Google Scholar 

  • Meyer, B. (2014). Agile! The good, the hype and the ugly. Switzerland: Springer.

    Google Scholar 

  • Miles, M. B., & Huberman, A. M. (1994). Qualitative Data Analysis (2nd ed.). Thousand Oaks: Sage.

    Google Scholar 

  • Nickerson, R. C., Varshney, U., & Muntermann, J. (2012). A method for taxonomy development and its application in information systems. European Journal of Information Systems, 22(3), 336–359.

    Article  Google Scholar 

  • Nidumolu, S. (1995). The effect of coordination and uncertainty on software project performance: residual performance risk as an intervening variable. Information Systems Research, 6(3), 191–219.

    Article  Google Scholar 

  • Pare, G. (2004). Investigating information systems with positivist case study research. Communications of the Association for Information Systems, 13(1), 233–264.

    Google Scholar 

  • Pressman, R. S. (2010). Software engineering: A practitioner’s approach (7th ed.). Boston: McGraw-Hill Higher Education.

    Google Scholar 

  • Pries-Heje, L., & Pries-Heje, J. (2011). Why Scrum works. Proceedings of the Agile Conference 2011, Salt Lake City, UT (pp. 20–28). IEEE Xplore digital library.

  • Ramesh, B., Cao, L., & Baskerville, R. (2007). Agile requirements engineering practices and challenges: an empirical study. Information Systems Journal, 20(5), 449–480. doi:10.1111/j.1365-2575.2007.00259.x.

    Article  Google Scholar 

  • Ramesh, B., Cao, L., Mohan, K., & Xu, P. (2006). Can distributed software development be agile? Communications of the ACM, 49(10).

  • Sabherwal, R., & Grover, V. (2010). A taxonomy of political processes in systems development. Information Systems Journal, 20(5), 419–447.

    Article  Google Scholar 

  • Salas, E., Sims, D. E., & Burke, C. S. (2005). Is there a “big five” in teamwork? Small Group Research, 36(5), 555–599.

    Article  Google Scholar 

  • Schnitter, J., & Mackert, O. (2011). Large-scale agile software development at SAP AG. In L. A. Maciaszek & P. Loucopoulos (Eds.), Evaluation of Novel Approaches to Software Engineering. Communications in Computer and Information Science (Vol. 230, pp. 209–220). Heidelberg Berlin: Springer.

    Google Scholar 

  • Schwaber, K., & Beedle, M. (2002). Agile software development with Scrum ((Agile Software Development)). Upper Saddle River: Prentice Hall.

    Google Scholar 

  • Seddon, P. B., & Scheepers, R. (2012). Towards the improved treatment of generalization of knowledge claims in IS research: drawing general conclusions from samples. European Journal of Information Systems, 21, 6–21.

  • Sharp, H., & Robinson, H. (2010). Three ‘C’s of agile practice: collaboration, co-ordination and communication. In T. Dingsoyr, T. Dyba, & N. B. Moe (Eds.), Agile software development: current research and future directions. Heidelberg: Springer.

    Google Scholar 

  • Spradley, J. P. (1979). The Ethnographic Interview. New York: Holt, Rinehart and Winston.

    Google Scholar 

  • Stankovic, D., Nikolic, V., Djordjevic, M., & Cao, D.-B. (2013). A survey study of critical success factors in agile software projects in former Yugoslavia IT companies. Journal of Systems and Software, 86(6), 1663–1678.

    Article  Google Scholar 

  • Staudenmayer, N. (1997). Interdependency: Conceptual, practical, and empirical issues. Sloan working paper 3971.

  • Stavru, S. (2014). A critical examination of recent industrial surveys on agile method usage. The Journal of Systems and Software, 94, 87–97. doi:10.1016/j.jss.2014.03.041.

    Article  Google Scholar 

  • Strode, D. E. (2005). The agile methods: An analytical comparison of five agile methods and an investigation of their target environment. Master’s Thesis, Massey University, Palmerston North, New Zealand.

  • Strode, D. E. (2012). A theory of coordination in agile software development projects. PhD Thesis, School of Information Management, Victoria University of Wellington, Wellington, New Zealand.

  • Strode, D. E. (2013). Extending the dependency taxonomy of agile software development. In P. Antunes, M. A. Gerosa, A. Sylvester, J. Vassileva, & G. de Vreede (Eds.), Proceedings of the 19th International Conference on Collaboration and Technology, CRWIG 2013, Wellington, New Zealand, 30 October to 1 November. LNCS (Vol. 8224, pp. 274–289). Berlin Heidelberg: Springer.

    Google Scholar 

  • Strode, D. E., & Huff, S. L. (2012). A taxonomy of dependencies in agile software development. Proceedings of the 23rd Australasian Conference on Information Systems, ACIS 2012, 3–5 December, Geelong, Australia (pp. 1–10).

  • Strode, D. E., Huff, S. L., Hope, B., & Link, S. (2012). Coordination in co-located agile software development projects. The Journal of Systems and Software, 85(6), 1222–1238. doi:10.1016/j.jss.2012.02.017.

    Article  Google Scholar 

  • Takeuchi, H., & Nonaka, I. (1986). The new new product development game. Harvard Business Review, 64(1), 137–146.

    Google Scholar 

  • Thomas, D. R. (2006). A general inductive approach for analyzing qualitative evaluation data. American Journal of Evaluation, 27(2), 237–246. doi:10.1177/1098214005283748.

    Article  Google Scholar 

  • Thompson, J. D. (1967). Organization in Action. Chicago: McGraw-Hill.

    Google Scholar 

  • VersionOne (2014). 8th Annual state of agile survey. http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf. Accessed 3 March 2014.

  • Wageman, R. (1995). Interdependence and group effectiveness. Administrative Science Quarterly, 40(1), 145–180.

    Article  Google Scholar 

  • Wagstrom, P., & Herbsleb, J. D. (2006). Dependency forecasting in the distributed agile organization. Communications of the ACM, 49(10), 55–56. doi:10.1145/1164394.1164420.

    Article  Google Scholar 

  • Wang, X., Conboy, K., & Cawley, O. (2012). “Leagile” software development: an experience report analysis of the application of lean approaches in agile software development. The Journal of Systems and Software, 85(6), 1287–1299.

    Article  Google Scholar 

  • Weber, R. (2012). Evaluating and developing theories in the information systems discipline. Journal of the Association for Information Systems, 13(1), 1–30.

    Google Scholar 

  • Williams, L. (2010). Agile software development methodologies and practices. In M. V. Zelkowitz (Ed.), Advances in Computers (Vol. 80, pp. 1–44). Amsterdam: Elsevier.

    Google Scholar 

  • Yetton, P., Martin, A., Sharma, R., & Johnston, K. (2000). A model of information systems development project performance. Information Systems Journal, 10, 263–289.

    Article  Google Scholar 

  • Yin, R. K. (2003). Case Study Research (Applied social research methods series 3rd ed.). Thousand Oaks: Sage.

    Google Scholar 

Download references

Acknowledgements

The author acknowledges the research participants for informing this research with their experiences and the anonymous reviewers for improving the article with their insightful advice.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Diane E. Strode.

Appendix

Appendix

The interview schedule for an individual project team member.

Notes:

  • If participants choose to be interviewed in pairs or small groups that is acceptable.

  • If questions arise in this schedule that participants have addressed in previous responses then omit the question

  1. 1.

    Background questions

    • Name

    • Job title

    • Years of IT experience

    • Educational background

    • Describe your job (what is your role) and its goals

  2. 2.

    What are your main work activities (3–5) IN THIS PROJECT

    • For each activity (this will depend on specialisation/generalisation of work)

      • Main purpose of these activities – each one?

    • Depending if work is broken down into distinct activities or not…

      • How is work assigned to you?

      • How do you know when to start the work/activity?

      • Who do you work with to complete the activity [for stakeholder identification]

        • Who do you send communications to?

        • Who do you receive communications from?

      • How do you share out/or delegate the work

      • How do you decide who to share out or delegate the work to

      • What resources (things or information) do you need to complete the activity

      • What technologies do you use to help you carry out the activity? (Email, config man. tools, wiki, project database, on-line project plan, on-line specifications…)

      • What forms or documents do you need to perform the activity? Examples?

      • What is the product or partial product of the activity? (documents, information, software)

        • Who relies on the product of this activity?

      • Do any of your work products need to be integrated or fit in with other peoples work or applications?

        • Who waits for your work to be completed? Example?

    • Individual activities:

      • How do you know when the activity is complete?

      • How do others know when the activity is complete?

      • What things hinder this activity

        • What do you wait for?

        • Negotiate for?

        • Bid for?

      • What would happen if this activity was not carried out?

      • What alternative ways could the outputs or goal of this activity be achieved?

  3. 3.

    Dependency prompts:

    • Vendor [stakeholder identification]

    • Customer [stakeholder identification]

    • Other business units [stakeholder identification]

    • Lifecycle (only when multiple teams are working on same product for different platforms) – how is this managed/organised?

    • Big picture - how do you achieve an overview of how all of the parts of the system fit together?

    • Testing – test versions - how do you manage/organise this? What types of testing do you do?

    • Parallel development – when two or more people work on the same code module – how do you manage/organise this?

    • Change – when changes are made how does this impact other code modules, documentation, testing

    • Expertise – shared product knowledge

      • How do you all know what the product must do?

      • How do you know what the other people on the team are doing on a daily basis within the code?

      • How do you know what the other people on the team are doing on a daily basis within the documentation?

      • How do you know what the other people on the team are doing on a daily basis within the test bank?

      • How do you come to know what the skills and capabilities of the other team members are – how do you know who to ask about things?

    • Historical understanding – how do you find out about previous decisions made that impact

      • The code?

      • This project?

    • Integration – how do you integrate the code and other components

      • Regularly, randomly, at the end? To a schedule?

    • What is the main source of bugs in the system?

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Strode, D.E. A dependency taxonomy for agile software development projects. Inf Syst Front 18, 23–46 (2016). https://doi.org/10.1007/s10796-015-9574-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10796-015-9574-1

Keywords

Navigation