Project environment

The Software Publication Workflow Ecosystem comprises a set of tools and procedures that define part of the software development life cycle. All these components define a platform that integrates several open source tools to facilitate the execution and control of the different activities of each phase of the software development lifecycle. In particular the principles, practices and values that support this development process are referenced by the Agile Manifesto Principles (many of them included in Scrum), the process improvements established by the collections of best practices of the CMMI (Capability Maturity Model Integration) model and the specific procedures of quality assurance management systems. This ecosystem provides not only optimized environments for teams involved in the software development and guidelines to execute this activity but also knowledge of available resources and tools.

In addition, the Software Publication Workflow Ecosystem promotes values such as adaptability, simplicity, transparency, unity and communication. The next figure outlines the open source tools and the main roles involved in the ecosystem.

Software Publication Workflow Ecosystem

The main goals of the Software Publication Workflow Ecosystem are:

  • Provide tools that give visibility at any time of the evolution of the project, status of specific phases, access to quality reports, task details, etc.

  • Provide full transparency of the project development improving the project quality and ensuring expected outcomes.

  • Avoid communication barriers facilitating customer involvement and a collaborative space.

2. Components

This section explains the details of the main functionalities and open source applications that are part of the Ecosystem:

  • Project Management (Redmine): Ticketing total management (tickets are created to administer tasks, actions, risks or bugs among others).

    • Time management.
    • Documentation repository.
    • Unit testing execution in order to verify and detect errors.
  • Automation server (Jenkins)

    • Code releases generation.
    • Software deployment across environments (development and test).
    • Unit testing execution in order to verify and detect errors.
    • Continuous integration.
  • Code Quality Management (Sonar)

    • Static source code analysis.
    • Full set of metrics and reports of code quality.
    • Potential vulnerabilities of security.
  • Artifact Repository (Nexus)

    • Artifacts repository management.
    • Maven sites generation in order to centralize the complete documentation of the software project (guides, requirements, releases, reports…).
    • Management of code software and releases.
  • Test Cases Management (Testlink)

    • Preparation and verification of the test plan (functional and technical).
    • Test cases specification, bidirectional traceability, register of the test cases execution results, defects management and reports.
    • Test automation.
  • Code control (Github)

    • Atommic commits to a guarantee that all changes are made
    • Tags or meaningful names to specific revisions
    • Hooks, capability to trigger commands before or after an action