How we develop our software
Our in-house software is a core competence
What’s unique about us is that we develop everything ourselves – right here in Switzerland. In other words, our online shop and our ERP system, with which all our business processes are operated, are not generic standard solutions but 100% home-programmed. This means we are completely in control of all processes and can create them according to our needs. After all, we strive to provide our customers with the best online shop possible and to make navigating our universe of thousands and thousands of products as straight-forward and pleasurable as possible. We believe that an online shop needs to be continually developed and improved in order to meet this requirement.
We've been developing everything ourselves from the get-go. In the early days, we weren't doing it for commercial reasons but because of our curiosity and passion for computers. We’ve kept that curiosity and passion and now use it it with our customers in mind. In-house software development is an integral part of our company – from management to customer service – and one of our core competences. Developing technical solutions to tackle new challenges is a daily task that is driven by our love for technology and innovation.
How we develop
Developing our system was and is an ever-changing process. We continuously adapt it to the size of our company and the collective experience of our software developers and project managers. To prevent myself from going off on a tangent, I’ve put together a description of our current approach. The description includes far more than just programming, as writing code only accounts for some of our success.
We are very fortunate to have Rainer Grau on board as Head of Business Development. Not only is he a true expert in the field of agile project management but also consistently expanding our teams’ know-how of systems engineering.
SAFe as in Scaled Agile Framework.
SAFe uses three abstraction levels to keep an overview. It starts with projects, or what we call initiatives (we deliberately chose a different term), which represent the topmost containers for development. Initiatives are prioritised in an innovation committee at highest management level. They are then actively retrieved by the implementing teams. In other words, teams are not assigned tasks but proactively pick a high-priority initiative.
Our agile teams break the initiatives down into epics – specified coarse-grained work packages that are delimited as regards content – before prioritising them. In our agile teams, software developers cooperate across disciplines with project managers, business analysts and specialists from various departments. This is done on a self-organising basis and is determined by the requirements and nature of the respective initiative. Whenever possible, competences lie with the teams to enable effective decision-making.
And last but not least, there's the story. A story describes user requirements of a software product, i.e. our online shop and ERP.
From Story to Scrum
We consistently develop with Scrum): In short iterations, so-called sprints, jointly defined work packages (stories) are implemented. Whenever possible, stories should be able to be released individually. This has several advantages. The user – be it an employee or you, the customer – can immediately put the new functionality to use. We then learn from this and are able to approach a solution in an agile manner. We regard software and our company as a super organism that constantly has to adapt to its environment and the respective requirements. Starting from development, these methods and tools have infected and motivated almost every department.
Our company culture is the foundation of our work approach
Our company culture and our values are essential for our work methodology. Each and every one of us is important for keeping the super organism alive and kicking. In other words, each and every one of us is important for the company. We regard employees not as easily replaceable resources but as valuable, competent members of our community – just like our customers – and an integral part of the digitec Galaxus community. But we do of course live in reality in which neither werewolf-slaying silver bullets nor paths without obstacles exist. But problems are there to be solved.
How we program
Who? Teams and organisation.
We have six Scrum teams working in development: Goldfinger, Goldeneye, Octopussy, Skyfall, Spectre, Thunderball. One of these teams is in charge of business intelligence – the team name might give you an idea of which one it could be? Then there’s a team that focusses on interaction design and front-end development. Our engineering department is made up of developers from over nine different nations.
How? Languages and tools.
It’s not that we keep reinventing the wheel, but we do build our own vehicles. And for all you techies out there, I’ve put together some information on our development environment and tools we are currently using. I’ve left out the respective versions as we generally use the latest one.
- The brain as a superordinate unit
- C#) as a primary programming language
- Deblazer, our in-house developed ORM
- Visual Studio as a development environment
- Modified .net MVC Framework depending on the area
- Microsoft SQL database server
- ElasticSearch for searching and as a NoSQL database
- GIT) for version management
- Jira to illustrate the Scrum process and for general project management
- Confluence as an integrated environment for collaboration
- TeamCity for Continuous Integration
- SonarQube and ndepend for Code Metrics
- Coffee or green tea
Want to develop with us?
We want to develop even faster. If our vision appeals to you, check out the following vacancies in software development (job descriptions in German): * Job description Junior software developer * Job description Junior software developer * Job description Junior software developer