Definition: Dependencies are technical relationships among code that create and reflect social relationships among individuals, groups, and organizations. Another simple definition: A state in which one object uses a function of another object.
When is optimal time to deal with it: After you gone through and identified certain tasks then you can start considering the various dependencies that may occur.
Types of dependencies:
- Some of those dependencies are based on technology. Example: I first need to have UI/UX Design before building software / web applications or adding new features, some of those are based on people and people's availability in particular.
- Some of the dependencies are mandatory because they have to happen. Example: I have to have code before I can test.
- Some of those are discretionary dependencies. Example: it may be more convenient for us to organize the work in particular why.
- Some of these may be external dependencies. Example: our team is one scrum team of many in the scrum of scrums and there may be various inputs we need from other scrum teams in order to be able to carry out our task successfully.
- Last and certainly not least, we may have various internal dependencies among our teams and resources and how we carry out our work.
Answer on the article headline: software dependencies affect the development of systems by creating situations where developers and groups must engage in articulation work, and organizations must participate in social worlds.
If you want to learn more how do software dependencies affect the development of IT systems, please read this segment from PhD dissertation by Rebecca Elizabeth Grinter from University of California.
Understanding Dependencies: A Study of the Coordination Challenges in Software Development - A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philosophy in Information and Computer Science by Rebecca Elizabeth Grinter:
More about Scrum: Click here.