1. Algunas similitudes dadas entre las obras audiovisuales que abordan el tema de la violencia en
1.2. La búsqueda de la intermedialidad artística como un objetivo primario de algunos
1.2.2. Características principales del arte audiovisual intermedial en Colombia
1.2.2.1. Las relaciones intermediales en la obra de José Alejandro Restrepo
Our theory of basic causes of release engineering failures as derived from the preceding case studies is as follows:
1. Social issues are often the dominant cause of release failures.
2. Lack of automation and inappropriate tool support can hinder successful release processes (and better tools can improve them).
failures.
7.2.2.1 Social Causes
While the release process can be highly dependent upon the architecture of the software being released, failures in the release process are rarely due to the software itself. Instead, failures can usually be attributed to configuration issues, lack of communication, poor infrastructure or social problems within the releasing organization.
Many of the individuals interviewed cited social issues as the root of their release engineering failures. Release teams can vary from being tightly integrated with developers, to operating on completely separate organizational units and schedules. For those who are disjoint from the developers, it becomes difficult for them to easily coordinate releases with the developers, which adds additional friction and potential for failure in the release process.
Often, release managers trying to improve this problem are rebuffed by their superiors who see little business sense in improving the project’s ability to properly manage releases. One subject noted the lack of support and funding to improve the release infrastructure as a serious detriment to her ability to deliver proper releases.
This problem may also exist in open source communities, where par- ticipants self-select tasks and may stop trying to improve release management beyond some local optimum [29]. Each member of the team is satisfied with the state of the release process and has little incentive to improve it, even
though such improvements may be generally useful to the project.
7.2.2.2 Automation and Tool Support
Effectively using tools to automate artifact creation helps to prevent process failures from happening and recover after they do. Issue trackers, version control systems, continuous integration and deployment systems all play a role in helping to create a release. The ease of use of these tools, and the extent to which they are put to use, can impact the quality and timeliness of the release product. Interview subjects in Cases A, B, D, E and I all discussed the impact of automation and tools on their processes.
The NetOS release engineer had recently switched version control sys- tems and in doing so indicated that the switch allowed the team to better control feature development and release. By improving the tools the release engineer used, she was able to deliver more targeted releases in a more effective manner, ultimately improving the quality of the software produced.
Many of these tools provide opportunities for scripting and automation of release tasks. We found that of the cases studied, the amount of automa- tion varied from fully-automated to processes that involved several manual steps. The manual steps were often perceived as points of weakness, where unintended process changes could enter, causing failures.
Several of the developers and release engineers we spoke with also ex- pressed an interest in improving the automation of their systems, but they mentioned the social issues associated with doing so, such as overcoming es-
tablished developer habits and convincing management of the profitability of the improvement. In many cases, project management was hesitant to invest the required resources to improve the release process automation. Although the benefits were readily apparent to the release engineering staff, such im- provements were difficult to sell to higher layers of management.
Finally, a high amount of tooling and automation helps make the release process and artifacts reproducible. Several of the release engineers we spoke with emphasized the need to be able to reproduce a given release artifact on demand, primarily for debugging or recovery purposes. Some of the subject organizations had such an ability and went to great lengths to maintain it, while others lamented the fact they did not, and such had been the cause of problems in their organizations.
7.2.2.3 Process Complexity
Process complexity, usually a result of the software architecture (as described below) often led to process failures, either directly or by incentivizing participants to skip or alter steps. In cases such as NetOS, processes with many steps and participating individuals sometimes led to perceived special circumstances during a release, and these perceptions justified altering the established release process.
When such process deviations occur, they often have to be done man- ually, since no automation support exists for them. This manual intervention leads to increased ability for human error to affect process validity and more
opportunities for process failure. Combined with the obvious issues of omitting important steps, process alteration leads to a high probability of failure.
To counter this type of problem, several of the release engineers we spoke to suggested a simpler process, with few steps and actors, along with a more modular software architecture, would help to solve these issues. However, they noted that instituting simpler process was itself a difficult proposition, given existing institutional inertia for the current system.
7.2.3 Theory: Relationship Between Architecture and Process Com-