Software-Engineering

Sie stellen die Aufgabe – gemeinsam erarbeiten wir Ihre Lösung

Vollständige Abdeckung des Software-Lifecycles

Unser Leistungsspektrum deckt den gesamten Lebenszyklus komplexer Softwarelösungen ab. Wir beraten, entwickeln, integrieren, warten und supporten Ihre Individualsoftware. Und dies ganz nach Ihren Bedürfnissen. Ob Teil- oder Gesamtprojekt, bei uns inhouse oder bei Ihnen vor Ort. Unsere Passion ist es, für individuelle Problemstellungen, hochwertige Lösungen zu entwickeln. Dabei schöpfen wir aus 25 Jahren Erfahrung in den Bereichen: Business Analyse, Entwicklung, Qualitätssicherung, Deployment (DevOps) und User Experience Design.

Softwarelösungen mit Fokus auf das Nutzendenerlebnis

Eine gute Software ist leicht verständlich und effizient in der Handhabung. Um eine optimale User Experience bieten zu können, müssen wir die Ziele und Bedürfnisse der Nutzenden verstehen. Welche Personenkreise sind betroffen? Welches sind ihre Aufgaben? Mit welchen Herausforderungen sind sie konfrontiert? Unser Expertenteam für User Experience verfügt über ein breites Wissen, um gemeinsam mit Ihnen diese Fragen zu beantworten. In enger Zusammenarbeit mit den Nutzenden, Business Analysten und Softwareentwicklern finden wir die passenden Lösungen.

Business Analyse
Ausarbeiten der Geschäftsziele und der Produktvision sowie erarbeiten und auswerten des Nutzens.

User Research
Benutzergruppen und deren Bedürfnisse verstehen.

Content Strategy
Sinnvolle und benutzerfreundliche Inhalte definieren.

Information Architecture
Informationen strukturieren und Navigationspfade entwickeln.

Interaction Design
Benutzerinteraktionen so gestalten, damit diese die Nutzenden beim Erledigen ihrer Aufgaben perfekt unterstützen.

Visual Design
Inhalte übersichtlich, einheitlich und ansprechend präsentieren.

Entwicklung und Umsetzung

In der Entwicklung setzen wir auf bewährte Branchenstandards. Unsere Engineers sind in den Analyse- und Designprozess eingebunden und bringen ihr technologisches Know-how früh ein. Sie erarbeiten technische Konzepte und verifizieren Ideen anhand von Prototypen.
In der Umsetzung setzen wir auf «Test-Driven Development»: Zuerst wird definiert, wie ein Stück Software zu testen ist, bevor es umgesetzt wird. Unser Code weist dadurch eine hohe Testabdeckung auf. Regelmässig überprüfen wir, ob die Qualität der Tests noch stimmt und die angestrebte Abdeckung erreicht ist. Unsere Programmier-Richtlinien stellen sicher, dass jede geschriebene Zeile Code von einem Teammitglied überprüft wird.
Die Software wird nach Fertigstellung einer Funktion automatisch entwickelt und auf einem Testsystem installiert. Dort prüfen unsere Tester nochmals, ob die ursprünglichen Anforderungen erfüllt sind. Erst im Anschluss liefern wir die Software zum Review an den Kunden aus. So erreichen unsere Lösungen eine überdurchschnittlich hohe Qualität.

Agiles Vorgehen

Effiziente Softwarelösungen für reale Herausforderungen zu bauen, ist eine komplexe Aufgabe. Die Erfahrung zeigt, dass Ideen von gestern, morgen schon überholt sind. Als Antwort auf diesen ständigen Wandel sind agile Projektmethoden aufgekommen. Sie berücksichtigen, dass während der Projektlaufzeit laufend Erkenntnisse gewonnen werden und neue Anforderungen entstehen.

Agile Methoden sehen vor, eine geplante Software in ihre Bestandteile zu zerlegen und die einzelnen Funktionen grob zu beschreiben. Alle Funktionen werden in eine priorisierte Liste übertragen, die nun in regelmässigen, kurzen Iterationen von oben nach unten abgearbeitet wird. Am Ende jeder Iteration, in der Planungs- und Feedbackrunde, werden die Prioritäten überprüft und damit garantiert, dass kontinuierlich an den dringendsten Aufgaben gearbeitet wird. Während einer Iteration werden die groben Funktionen jeweils detailliert designt, umgesetzt und getestet. So entwickelt das Projektteam schrittweise die optimale Lösung.

Wartung

Unsere Softwarelösungen basieren auf zeitgemässen Technologien und sind optimal auf die Bedürfnisse der Nutzenden ausgerichtet. Dies schafft Mehrwert, der nur langfristig bestehen bleibt, wenn Ihre Software auch gewartet wird. Für eine dauerhaft hohe Qualität und Sicherheit sind Fehlerbehebungen, regelmässige technische Updates und gelegentliche Leistungsverbesserungen notwendig. Zudem entwickeln sich die Nutzer und das Umfeld mit der Zeit weiter, wodurch neue Anforderungen entstehen. Diese sollten ebenfalls in die Software eingepflegt werden, damit die Nutzenden weiterhin effizient und effektiv arbeiten können.

Für jede unserer Softwarelösungen bieten wir daher bewährte Wartungspakete an. Diese sind genauso flexibel wie die Software. Jeder Wartungsvertrag wird individuell ausgearbeitet und der Leistungsumfang mit Ihren Anforderungen abgestimmt.

Methoden

Contextual Inquiry
Interview
Personas
User Journey
Szenarios
User Story Mapping
Design Studio
Prototyping
Usability Test
Expert Review
Domain-Driven Design
Scrum
Test-Driven Development
Kanban
Proof Of Concept
DevOps
Continuous Integration
Continuous Delivery
End-to-End Testing
Code Reviews
Pair-Programming
Static Code Analysis