Software Engineering

Software Engineering

We provide senior level consultancy, development support and management support. Our goal is:

  • Continuously deliver working and integrated code at a constant speed
  • Maintain a high software quality
  • Constantly reduce engineering risks
  • Make sure there is NO "end game mode" at project end

Rust Programming Language

We recommend Rust programming language for any new project, because of ...

  • Memory safety (90% of all software errors in the field, would not not exist)
  • Thread safety (no fears anymore about concurrent programming)
  • Enforced error handling (robust applications)
  • Zero Cost Abstracts (reduces test effort, comes along with readable code without performance degeneration)
  • Excellent ecosystem (code analysis, documentation, unit and doc testing, package management)

Of course, we help you with C/C++, Python and Typescript programming languages as well

Turnaround Cycles, Integration and Testing

We take care for short turnaround cycles, always integrate and make sure the changes apply and work as desired at the integrated system.

Only with automated tests and continuous integration it is possible to maintain a constant speed of working integrated code delivery.

There are at least three types of turnaround cycles:

  1. Developer local
  2. CI unstable development pipelines
  3. CI stable pipelines and "pre-merge" to stable pipelines

The testing pyramid addresses

  1. System tests
  2. Integration tests
  3. Component tests (dynamic functionality)
  4. Developer unit tests (static functionality)

The lower the number of the test category (the higher the category is at the pyramid), the higher the test implementation effort, the more expensive is the maintenance of the test fixture and the longer it takes to execute the test.

However, at least at level three of the turn around cycle, we need to automatically run all the tests we have implemented.

As a consequence, automated test-specs and test fixtures as well as the CI pipeline specification turn into first citizen code.

Interfacing Software Development Artifacts

As the project involves, we incrementally keep the interfacing artifacts up to date and maintain overall project data consistency.

  • Requirement specifications
  • Software architecture
  • Test specifications
  • Documentation
  • Toolchain configuration
  • Third party libraries and SBOM
  • Release notes

Development Organization and Processes

  • Besides acting as a software developer we also act as project manager, product owner, scrum master, requirement engineer, system engineer, software architect or test manager on demand
  • We follow your development process (independent if it is waterfall, Scrum, Kanban or SAFE)
  • Optionally we provide coaching toward the agile transformation