Seit über 37 Jahren konzipieren und realisieren wir erfolgreich anspruchsvolle IT-Lösungen mit modernen Technologien.
Kernkompetenzen
- Anforderungsanalyse
- Projektleitung
- Software-Architektur
- Software-Ergonomie
- Programmierung
- Qualitätssicherung
Testing (Komponenten-Tests, automatisierte Tests)
Anwendungsbereiche
- Web-Anwendungen
- Mobile Lösungen
- Locating (Geographische Informationssysteme GIS, Pläne, 3D-Modelle, Fotos, GPS)
- Auswertungen und Berichte
- Integration
- Migration
Technologien
- .Net C#, WPF, WCF, Silverlight, HTML5, JavaScript, TFS
- Xamarin, Objective C
- GIS-Systeme (ESRI, ThinkGeo)
- Oracle, SQL-Server
Möchten Sie mehr wissen?
Intégration
L’intégration se fait sur deux niveaux. D’une part, les différents composants d’une solution doivent constituer une unité. Ceci peut être par exemple l’intégration du SIG dans la logique métier. D’un autre côté une solution doit s’intégrer dans l’infrastructure informatique. Par exemple les données d’une application mobile doivent pouvoir être échangées avec un système principal. La double saisie des données et les interruptions système (changement de système au sein d’un processus métier) doivent être évitées.
Comme pratiquement toutes les sociétés utilisent une infrastructure informatique et des applications métier, l‘intégration gagne en importance. La programmation d’interface et de services sont des éléments centraux.
Migration
Beaucoup de raisons justifient une nouvelle solution logicielle : nouvelle fonctionnalité, travail efficace, meilleure intégration dans l’infrastructure informatique et les programmes existants, diminution des coûts de maintenance etc. sont les plus communs. Lors d’un changement il ne faut pas oublier que la plus grande valeur d’une solution informatique se trouve dans les données. Nous vous conseillons et vous aidons dans l’évaluation et le déploiement d’une nouvelle solution et dans la migration de vos précieuses données.
Nous disposons, grâce à une variété de projet couronnés de succès, du savoir-faire nécessaire et des outils adéquats rendant une migration efficace possible.
Exploitation et rapports
En plus d’une saisie efficace et intuitive des données, une bonne exploitation et un bon traitement de ces données dans des rapports clairs est souvent un facteur décisif lorsque l’on parle des bénéfices d’une application.
Dans nos projets nous avons réalisé une composante d’exploitation standard. Cette dernière est basée sur des métadonnées et permet de concevoir pratiquement la totalité des exploitations, même à travers d’objets liés. L’analyse spatiale, l’intégration du SIG, d’images et d’esquisses est possible.
En plus des outils de reporting et de rapport standard propre, nous disposons également d’un savoir-faire avec divers autres outils de reporting
Localisation
La localisation comprend les systèmes d’information géographique, les plans, les modèles 3D, les photos et les GPS. C’est un des thèmes centraux de l’informatique. Que ce soit pour calculer de gros volumes de données telles que le trafic ou la capacité libre ou pour récupérer des informations géo localisé ou encore pour en saisir. Beaucoup peut être affiché et analysé de manière plus simple et compréhensible lorsque la visualisation ce fait par une carte, un plan ou une esquisse.
Les systèmes d’information géographique (SIG) sont largement diffusés. Unis Solutions s’occupe, depuis sa création, de systèmes SIG et de leurs possibilités. Nous ne sommes pas liés à un distributeur spécifique. Selon les besoins et les systèmes disponibles nous pouvons réaliser et concevoir des solutions sur mesure.
Solutions mobiles
Les données doivent être saisies là où elles sont générées. De plus la mobilité est exigée de plus en plus dans le travail. Une connexion internet permettant une connexion avec les systèmes centraux n’est pas toujours disponible. Alors qu’un poste de travail classique dispose en règle d’un clavier d’une souris et d’un large écran, les tablettes, sont pilotées au doigt avec un écran relativement petit. Tous ces aspects doivent être pris en considération lors de l’élaboration d’une application mobile. Des solutions simples et efficaces sont exigées même lorsque les problèmes sont complexes.
Nous utilisons l'approche de l'architecture multi-plateforme Xamarin à (nous sommes Xamarin Developer Certified), qui permet la création d'applications mobiles natives de haute qualité pour iOS, Android et Windows.
Nous avons développé il y a déjà plus de dix ans notre première solution mobile et disposons de ce fait d’un savoir-faire réel dans le design et l’intégration de ce genre de solutions.
Applications Web
Nous distinguons les applications navigateur et les applications web avec un client local installé et un serveur d’application central.
Les applications navigateur ont un accès limité aux ressources et sont limitées graphiquement et au niveau de la convivialité. Mais tout ordinateur ayant un accès à internet peut en principe accéder à l’application.
Les smart clients sont, selon la technologie employée, dépendants du système d’exploitation. L’exploitation de l’ensemble des ressources des ordinateurs (droits d’accès, interfaces) est possible. Le partage d’application clientes et de mises à jour est en général automatisée (MSI, ClickOnce technologie).
Nous disposons de longues années de savoir-faire dans la conception et la réalisation d’applications web.
Assurance qualité
Une bonne qualité garantie un fonctionnement sans problème. Les problèmes peuvent être détectés assez tôt et résolus. Cela permet d’économiser des coûts à moyen et long terme. En revanche, la qualité à court terme à un prix, puisque l’assurance qualité doit être garantie durant toutes les activités du développement logiciel. Tous les employés ainsi que le client sont impliqués.
Tous les documents sont soumis à un processus de révision interne. Les directives et les instructions pour le GUI doivent être établies, les tests unitaires permettent d’automatiser les tests des fonctionnalités de base.
Les revues de code permettent d’assurer une bonne qualité du code et le respect des directives. Les exigences doivent continuellement être clarifiée et être à jour. Des builds automatisés construisent chaque nuit nos projets et produits actuels, exécutent des tests unitaires automatisés et créés en plus d’une version installable et d’analyses, une l’infrastructure nécessaire au testing (base de données de test, données de test).
Les tests permettent d’avoir une assurance qualité structurée et continue. Une exploitation systématique de ces résultats livre aux clients un aperçu de l’état actuel et des étapes d’avancement du développement. A la fin de chaque itération un test complet du système est effectué. Ce dernier couvre tous les cas de test pour les cas d’application déjà implémentés. Après le test système et la correction des défauts trouvés l’itération peut être réceptionné par les utilisateurs finaux dans le cadre d’un test utilisateur.
A la fin de réalisation d’un paquet, un test des composants est effectué.
Nous effectuons des tests hebdomadaires pour les gros projets. Le but est de vérifier les nouvelles fonctions et de donner un feedback rapide en cas d’écart ou d’insuffisance. Ces tests sont complétés au travers de simulations. Ceci est particulièrement intéressant, en fin du développement d’un composant et lorsqu’il n’y a plus aucune grosse modification des fonctionnalités et de l’interface utilisateur.
Les prérequis pour un bon processus de test sont à la fois de bon tests ainsi que des environnements de tests appropriés (généralement tous les environnements courants que l’on rencontre chez le client), des bonnes données de test (pas de dépendance entre les applications) ainsi qu’une manipulation simple des bases de données test (réinitialisation et mise en place simple).
Programmation
Unit Solutions verfügt über ein gut Qualifiziertes Entwickler-Team.
- Réaliser une architecture logicielle (Pas de programmation)
- Technologies web
- Applications mobiles
- Base de données et couche d’accès aux données (OR-Mapper)
- Interface d’utilisateur graphique (GUI) Design/Ergonomie
- Migration et interfaces
- Exploitation et rapports
- Système d’information géographique
- Media (photos, 3D, plans, esquisses, identification d‘objets)
Unit Solutions s’appuie sur des ingénieurs informatiques hautement qualifiées et une permanente formation continue. Avant la programmation d’un cas d’application, le design et l’affinement des concepts doivent être traités. Une gestion du code source avec des règles de check-in assure la conformité avec les directives centrales. Pour chaque cas d’application des uni-tests peuvent être exécutés automatiquement pour vérifier l’exactitude des fonctions individuelles.
Si nécessaire, au plus tard lors de la clôture d’un cas d’application une révision du code sous la responsabilité de l’architecte logiciel est réalisée. Ainsi une mise en œuvre correcte en termes d'architecture, d’exigences des directives (messages, GUI) est vérifiées et, le cas échéant, corrigées.
Ergonomie logicielle
Une interface intuitive, facile d’utilisation et cohérente offre des avantages directs et permet un travail plus efficace. Une utilisation simple permet d’économiser du temps et donc des coûts et induit une plus grande satisfaction. Par conséquent, en plus du design exigeant, nous accordons une valeur élevée à une bonne ergonomie logicielle. Nous considérons les points suivants comme centraux :
- Guidage de l’utilisateur cohérent et le plus intuitif possible.
- Définition optimale des processus de travail
- Intégration rapide des informations recherchées
- Ecran le plus „calme“ possible (pas de défilement inutile, pas de surcharge des masques avec des données et fonctions inutiles)
- Présentation claire
- Bonne gestion et présentation uniforme des erreurs (éviter les saisies erronée, message claire)
- Visualisation claire et uniforme (champs obligatoires, vue schématique, etc.)
Les directives pour l’interface d’utilisateur graphique (GUI), un GUI-storyboard ainsi qu’un prototype cliquable sont envisageables, afin de montrer le plus tôt possible ces concepts et de les évaluer avec les utilisateurs finaux.
Architecture logicielle
Nous disposons d’un savoir-faire conséquent dans le choix d’une architecture appropriée.
Nous estimons que les facteurs suivants sont primordiaux :
- Besoins fonctionnels: Que doit pouvoir faire la solution finale (big picture)?
- Besoins non-fonctionnels tels que l’extensibilité, l’évolutivité, la mobilité, la sécurité, multi-mandant, performance, etc.
- L’examen des systèmes et des processus devant être intégrés (interfaces, échange de données)
- Infrastructure existante (licences disponibles, appareils)
- Préférences et directives du client
Unit solutions a déjà conçu et mis en œuvre différentes architectures. Y compris des architectures web complexes avec plusieurs mandants et un grand nombre d’utilisateurs.
Nous disposons d’architectes logiciels certifiés.
Gestion de projet
Les tâches suivantes incombent à la gestion de projet:
- Priorisés les cas d’application. qu’est-ce qui est pertinent pour l’architecture? Où sont les goulots d’étranglement, qu’est-ce qui nécessitent des clarifications?
- Planification des ressources et des tâches nécessaires à la pleine mise en œuvre de tous les besoins.
- Identifier les risques, contrôler et minimiser la probabilité de la survenance avec des mesures appropriées, par ex. par des clarifications, des prototypes ou une priorisation poussée.
- Planification des itérations et des jalons.
- Suivis de l’avancement du projet et initiation de mesures appropriées lors d’écarts déterminants
- Communication avec le client (Rapport d’état, risques, problèmes, gestion des changements)
- Interface pour l‘assurance qualité (Testing)
- Direction de l’équipe de développement (Controlling)
Dans le cadre de l‘assurance qualité (QA), le respect des directives est automatiquement vérifié (gestion des sources avec des règles correspondantes). Les tests unitaires vérifient l’exactitude des processus de base et un processus de build construit pendant la nuit une version installable et testable.
Les versions peuvent périodiquement être installées sur un système de hosting. De cette façon le client peut constater les avancements et si nécessaire donner un feedback.
Les itérations permettent de diviser le développement en phases et d’examiner plus profondément les cas d’applications. Ceci peut aussi être complété par l’inclusion du client dans le testing et la validation de chaque itération. Les corrections correspondantes et les ajustements finaux accroissent l’acceptation de la solution.
Unit Solution s’appuie sur plusieurs chefs de projet certifiés.
Analyse des besoins
Pour commencer notre analyse des besoins nous avons besoin d’apprendre à connaitre les besoins et les attentes ainsi que le contexte (groupe d’utilisateurs, des flux de travail actuels, les interfaces), dans lesquels la solution doit être intégrée.
Ensemble avec le client, nous déterminons les processus de travail au cours de réunions, d’ateliers et en accompagnant certain employés individuellement. Nous cherchons les potentielles améliorations et définissons les besoins dans un cadre établi (nombre d’utilisateurs, besoin en sécurité, performance, etc.)
Les résultats sont des cas d’application (éventuellement déjà avec des organigrammes et des modèles conceptuels de données) et des exigences non-fonctionnelles. Toutes les informations sont traitées de sorte à ce que le client reçoive le plus tôt possible une vision sur le produit final et que puisse être élaborés dans une étape ultérieure une architecture logicielle adaptée et un concept d’utilisation.
En nous basant sur les étapes précédentes, des paquets (versions) appropriés peuvent être formés, tout en gardant un délai le plus court possible entre le début du projet et la première version de. La coopération étroite avec le client (experts métier, utilisateurs finaux) pendant toute la phase est pour nous un important facteur de succès.
L’analyse des besoins ne se termine pas avec le début de la programmation. Les cas d’application sont constamment affinés, complétés par des concepts et également ajustés si nécessaire. Pour les plus grands projets, nous recommandons une méthodologie agile.
Développement en partenariat et assistance aux équipes
Il est important pour nous d‘être plus qu’un simple prestataire informatique pour une solution. Nous assistons également d’autres entreprises dans tous les domaines du développement logiciel. Vous pouvez compter sur les compétences de nos collaborateurs.
Développement logiciel signifie investissements. Il est impératif que les risques ne soient pas uniquement assumés par le client. Nous considérons chaque cas à part et sommes prêts à adopter des modèles flexibles. (Partenariat, participation, licence, etc.)
Déploiement de solutions informatiques, formation et support
Le déploiement et la formation tout comme le support sont, là aussi, des domaines au sein desquels Unit Solution est compétent. Il s’agit ici d’identifier et de proposer l’assistance adaptée à vos besoins.
Conception de nouvelles solutions
Une nouvelle solution doit-elle être développée ou une solution existante couvre-t-elle déjà le besoin ? Grâce à des appels d’offres ciblés et à des présentations une décision peut être prise.
Le développement de solutions informatiques modernes est notre cœur de métier. Ceci nous permet d’analyser les solutions existantes et de mettre en évidence les avantages et les inconvénients.
Infrastructure informatique
En règle générale, une PME possède un service informatique ou un prestataire informatique, qui assure le bon fonctionnement de l’ensemble, c’est à dire la gestion du réseau, des logiciels installés et la protection des données. Nous vous conseillons et vous accompagnons volontiers pour ces tâches.
Remplacement d’anciens systèmes et migration des données
Souvent, les systèmes informatiques sont remplacés tardivement. Les coûts, les contraintes temporelles, le manque d’alternative et la crainte d’une perte de données en sont les causes. Il s’agit ici d’évaluer correctement les risques (par exemple la fin de la maintenance d’une solution, une situation concurrentielle) et chances (les tendances, les possibilités technologiques, la valeur ajoutée d’une solution moderne). C'est là que nous pouvons intervenir.
Les données sont ce qu’il y a de plus précieux dans une solution. Nous possédons une expérience de plusieurs années dans la migration des données et disposons d’outils flexibles pour une migration efficace.
Analyse de l’infrastructure existante
Une consultation démarre typiquement par une analyse. Nous nous faisons une idée en sondant le déroulement de vos processus principaux.
Cette compréhension nous permet d'examiner les processus de travail et les outils mis en place, en particuliers les systèmes informatiques.
Il n’est pas rare de rencontrer des systèmes vieillissants, difficiles à utiliser, à maintenir et bloqués par d’autres systèmes (uniquement compatible avec un ancien système d’exploitation par exemple). Des coûts élevés ainsi qu’une perte de temps non négligeable pour la maintenance en sont les conséquences possibles.
Un autre point important de la première analyse est de mettre en évidence les interruptions de systèmes, c'est-à-dire l’utilisation de différentes solutions partielles durant un même processus de travail. Cela mène souvent vers la saisie multiple de données (risque sur la qualité), perte de temps et une certaine gêne chez les collaborateurs.
Un autre problème est le manque de disponibilité d’informations. Les exploitations sont parfois beaucoup plus difficiles et exigent le traitement d’informations partielles.
Ces analyses sont incorporées, à côté des considérations stratégiques, aux recommandations (objectifs de la société).
Entwickler-Partnerschaften und Team-Unterstützungen
Es ist uns ein Anliegen, mehr als nur ein IT-Lieferant für eine Lösung zu sein. Wir unterstützen auch andere Firmen in allen Bereichen der Software-Entwicklung. Sie können auf unsere gut ausgebildeten Fachkräfte zählen.
Software-Entwicklung ist mit Investitionen verbunden. Es ist nicht zwingend notwendig, dass ein Kunde das gesamte Risiko trägt. Wir betrachten jeden Fall für sich und sind bereit für flexible Modelle (Partnerschaften, Partizipation an Lizenzen, etc.).
Einführung von IT-Lösungen, Schulung und Support
Die Einführung und Schulung sowie der Support sind weitere Bereiche, in denen die Unit Solutions tätig ist. Es gilt hier, eine optimale, auf ihre Bedürfnisse zugeschnittene Unterstützung zu erkennen und entsprechend anzubieten.
Konzeption neuer Lösungen
Soll eine neue IT-Lösung entwickelt werden oder gibt es eine Lösung, welche die Bedürfnisse ausreichend abdeckt? Über gezielte Ausschreibungen und Präsentationen kann ein Entscheid herbeigeführt werden.
Das Entwickeln moderner IT-Lösungen ist unser Kerngeschäft. Dies erlaubt uns, auch bestehende Lösungen zu analysieren und Vor- und Nachteile aufzuzeigen.
IT-Infrastruktur
In der Regel hat ein KMU eine eigene IT-Abteilung oder einen IT-Dienstleister, welcher den Betrieb gewährleistet, d.h. das Netzwerk pflegt, Software installiert und für die Datensicherung sorgt.
Gerne beraten und unterstützen wir Sie bei solchen Aufgaben.
Ablösen alter Systeme und Migration der Daten
Oft werden veraltete IT-Systeme erst sehr spät abgelöst. Kosten, Zeitnot, Mangel an geeigneten Alternativen und Bedenken vor Datenverlust sind die häufigsten Ursachen. Es gilt hier, die Risiken (z.B. Ende der Wartung einer Lösung, Konkurrenz-Situation) und Chancen (Trends, technische Möglichkeiten, Mehrwert einer modernen Lösung) richtig einzuschätzen. Wir können Sie auf diesem Weg unterstützen.
Das wirklich Kostbare an einer Lösung sind die Daten. Wir haben langjährige Erfahrung in der Migration von Daten und verfügen über entsprechende flexible Werkzeuge für eine effiziente Migration.
Analyse der bestehenden IT-Infrastruktur
Typischerweise steht am Anfang einer Beratung eine Analyse. Wir verschaffen uns ein Bild, indem wir uns die Kernprozesse erklären lassen.
Mit diesem Verständnis betrachten wir die Arbeitsprozesse und eingesetzten Hilfsmittel - im Speziellen die IT-Systeme.
Oft trifft man auf veraltete Systeme, die schwer bedienbar und wartbar sind und blockierend für andere Systeme wirken (z.B. nur lauffähig mit einem alten Betriebssystem). Hohe Kosten, ein grosser Zeitaufwand bei der Wartung sind mögliche Konsequenzen.
Ein weiterer Schwerpunkt der ersten Analyse ist das Ermitteln von Systembrüchen, das heisst der Wechsel zwischen Software-Teillösungen innerhalb eines Arbeitsablaufs. Dies führt oft zu Mehrfacherfassung von Daten (Qualitätsrisiko), Zeitverlust, einem gewissen Verdruss bei den Mitarbeitenden.
Ein weiteres Problem ist die mangelnde Verfügbarkeit von Informationen. Auswertungen sind zum Teil nur sehr umständlich möglich und erfordern das Aufbereiten von Teilinformationen.
Diese Analysen fliessen neben den strategischen Überlegungen (Ziele der Firma) in die Empfehlungen ein.
Integration
Die Integration findet auf zwei Ebenen statt. Auf der einen Seite müssen die einzelnen Komponenten einer Lösung eine Einheit bilden. Das kann zum Beispiel die Integration von GIS in die Business-Logik sein. Auf der anderen Seite muss eine Lösung in die IT-Infrastruktur passen. Zum Beispiel muss eine mobile Anwendung Daten mit dem Hauptsystem austauschen können. Doppelte Erfassung von Daten und Systembrüche (Wechsel des Systems innerhalb eines Businessprozesses) sollten vermieden werden.
Da praktisch alle Firmen eine IT-Infrastruktur und Fachanwendungen einsetzen, gewinnt die Integration an Bedeutung. Die Programmierung von Schnittstellen und Services sind dabei zentrale Elemente.
Migration
Gründe für eine neue Softwarelösung gibt es viele: Neue Funktionalität, effizienteres Arbeiten, bessere Integration in die bestehende IT-Infrastruktur und Programme, tiefere Wartungskosten etc. sind die gängigsten. Dabei sollte bei einem Wechsel nicht vergessen werden, dass der grösste Wert einer IT-Lösung in den Daten liegt. Gerne beraten und unterstützen wir Sie bei der Evaluation und Einführung einer neuen Lösung und der Migration Ihrer wertvollen Daten.
Aus diversen erfolgreich durchgeführten Projekten verfügen wir über das notwendige Know-how und entsprechende Werkzeuge, die eine effiziente Migration ermöglichen.
Auswertungen und Berichte
Neben einer effizienten und intuitiven Erfassung der Daten ist eine gute Auswertung und die Ausgabe dieser Daten in übersichtlichen Berichten oft ein entscheidender Faktor, wenn es um den Nutzen einer Anwendung geht.
In unseren Projekten haben wir eine Standart-Auswertungskomponente realisiert. Diese basiert auf Metadaten und erlaubt praktisch alle denkbaren Auswertungen, auch über verknüpfte Objekte. Raumbezogene Auswertungen, die Integration von GIS, Bildern und Skizzen sind möglich.
Neben dem eigenen Reporting- und Berichtswerkzeug verfügen wir auch über Know-how mit diversen anderen Reportingwerkzeugen.
Locating
Locating beinhaltet geographische Informationssysteme, Pläne, 3D-Modelle, Fotos und GPS. Es ist eines der zentralen Themen der IT-Branche. Sei es, um grosse Datenmengen wie Verkehrsströme oder freie Kapazitäten zu berechnen oder ortsgebunden Informationen abzurufen oder zu erfassen.
Vieles kann verständlicher präsentiert und analysiert werden, wenn bei der Ausgabe die Information auf einer Landkarte, einem Plan oder einer Skizze visualisiert wird.
Geographische Informationssysteme (GIS) sind weit verbreitet. Unit Solutions beschäftigt sich seit ihrer Gründung mit GIS-Systemen und deren Möglichkeiten. Dabei sind wir nicht an einen bestimmten Hersteller gebunden. Je nach Bedürfnis und vorhandenen Systemen können so entsprechend massgeschneiderte Lösungen konzipiert und realisiert werden.
Mobile Lösungen
Die Daten sollen dort erfasst werden, wo sie anfallen. Zudem ist Mobilität in der Arbeit zunehmend gefragt. Dabei steht nicht immer eine Internetverbindung zur Verfügung, die eine direkte Verbindung zu den zentralen Computern ermöglicht. Während ein Arbeitsplatz in der Regel mit Tastatur, Maus und einem meistens grossen Monitor ausgerüstet ist, werden Tablets mit dem Finger bedient und verfügen über einen relativ kleinen Monitor. Alle diese Aspekte müssen beim Design einer mobilen Anwendung ausreichend berücksichtigen werden. Gefragt sind einfache, effiziente Lösungen, auch bei komplexen Problemstellungen.
Wir wenden den cross plattform Architekturansatz von Xamarin an (wir sind Xamarin Certified Developer), der die Erstellung von qualitativ hochwertigen nativen Mobile-Anwendungen für iOS, Android und Windows ermöglicht.
Wir haben bereits vor über zehn Jahren die erste mobile Lösung entwickelt und verfügen über ein fundiertes Know-how im Design und der Integration von solchen Lösungen.
Web-Anwendungen
Wir unterscheiden die browserbasierten und die webfähigen Anwendungen mit einem lokal installierten Smart-Client und einem zentralen Applikationsserver.
Browser-basierte Anwendungen haben einen eingeschränkten Zugriff auf die Ressourcen und sind hinsichtlich Grafik und Usability etwas limitiert. Dafür ist der Aufruf von jedem Computer mit Internet-Zugriff grundsätzlich möglich.
Smart-Clients sind je nach eingesetzter Technologie von einem Betriebssystem abhängig. Die Verwendung der gesamten Ressourcen des Rechners (Zugriffsrechte, Schnittstellen) ist möglich. Die Verteilung der Client-Anwendungen und Updates wird in der Regel automatisiert (MSI, ClickOnce-Technologie).
Wir verfügen über langjähriges Know-how in der Konzeption und Realisierung von Webanwendungen.
Qualitätssicherung
Gute Qualität garantiert einen reibungslosen Betrieb. Probleme können frühzeitig erkannt und behoben werden. Das spart mittel- und langfristig Kosten. Dem gegenüber hat Qualität kurzfristig ihren Preis, da sich die Qualitätssicherung durch alle Tätigkeiten der Software-Entwicklung zieht. Alle Mitarbeitenden sowie der Kunde sind im Prozess integriert.
Sämtliche Dokumente durchlaufen einen internen Review-Prozess. Richtlinien und GUI-Guidelines müssen aufgestellt werden, Unittests dienen der automatisierten Prüfung der Kernfunktionalität.
Code-Reviews gewährleisten eine gute Qualität des Codes und die Einhaltung der Richtlinien.
Anforderungen müssen präzisiert und auf dem aktuellen Stand gehalten werden.
Automatisierte Build-Prozesse bauen unsere aktuellen Projekte und Produkte über Nacht auf, führen automatisierte Tests (Unit-Tests) durch und stellen neben einer installierbaren Softwareversion und Auswertungen die notwendige Infrastruktur für das Testing (Testdatenbanken, Testdaten) bereit.
Tests erlauben eine strukturierte, durchgängige Qualitätssicherung. Eine Systematische Auswertung dieser Resultate liefert dem Kunden jederzeit einen raschen Einblick in den aktuellen Stand und den Fortschritt der Entwicklung. Am Ende jeder Iteration findet ein vollständiger Systemtest statt. Dieser umfasst alle Testfälle zu den bereits umgesetzten Anwendungsfällen. Im Anschluss an den Systemtest und die Korrektur der gefundenen Mängel kann die Iteration von den Endanwendern im Rahmen eines Anwendertests abgenommen werden.
Bei Abschluss einzelner Pakete wird ein Komponenten-Test durchgeführt.
Bei grösseren Projekten findet wöchentlich ein freier Test statt. Ziel ist es, die neuen Funktionen zu prüfen und ein rasches Feedback bei Abweichungen oder unzureichender Umsetzung zu geben. Ergänzt werden diese Tests durch Simulationen. Dies ist vor allem dann interessant, wenn die Entwicklung einer Komponente abgeschlossen ist und es keine grossen Anpassungen an der Funktionalität und der Benutzeroberfläche gibt.
Voraussetzungen eines guten Test-Prozesses sind sowohl gute Tests als auch geeignete Testumgebungen (in der Regel alle gängigen Umgebungen, die bei den Kunden angetroffen werden), gute Testdaten (keine Abhängigkeiten zwischen Anwendungen) und ein unkompliziertes Handling von Testdatenbanken (einfaches Zurücksetzen und Aufsetzten).
Programmierung
Unit Solutions verfügt über ein gut Qualifiziertes Entwickler-Team.
- Umsetzen einer Software-Architektur (Kern-Programmierung)
- Web-Technologien
- Mobile Anwendungen
- Datenbanken und Datenzugriff-Schicht (OR-Mapper)
- Graphical User Interface (GUI) Design/Ergonomie
- Migration und Schnittstellen
- Auswertungen und Berichte
- Geographische Informationssysteme
- Media (Fotos, 3D, Pläne, Schemata, Objekterkennung)
Unit Solutions setzt auf gut ausgebildete Software-Ingenieure und permanente Weiterbildung.
Vor der Programmierung eines Anwendungsfalls stehen Design und Verfeinerung der Konzepte. Eine Quellcodeverwaltung mit Regeln beim Einchecken gewährleistet das Einhalten zentraler Richtlinien.
Zu jedem Anwendungsfall werden Unit-Tests , die automatisiert ausgeführt werden können, geschrieben und die Korrektheit der einzelnen Funktionen überprüft.
Bei Bedarf, spätestens jedoch beim Abschluss eines Anwendungsfalls, findet unter Verantwortung des Software-Architekten ein Code-Review statt. So wird die korrekte Umsetzung im Hinblick auf Architektur, Anforderungen und Richtlinien (Meldungen, GUI) geprüft und, falls erforderlich, korrigiert.
Software-Ergonomie
Eine intuitive, durchgängige Bedienbarkeit einer Anwendung bietet direkten Nutzen für ein effizientes Arbeiten: Die einfache Bedienung kann Zeit und damit Kosten einsparen und sie führt zu höherer Zufriedenheit. Daher legen wir neben einem anspruchsvollen Design auch grossen Wert auf eine gute Software-Ergonomie. Als zentrale Punkte erachten wir dabei:
- Einheitliche und möglichst intuitive Benutzerführung
- Optimale Abbildung der Business-Prozesse
- Rascher Einstieg auf die gesuchte Information
- Möglichst ruhiger Bildschirm (kein unnötiges Blättern, dennoch kein überladen von Masken mit unnötigen Daten und Funktionen)
- Übersichtliche Darstellung
- Gute und einheitliche Fehlerbehandlung (Vermeiden von Fehleingaben, klare Meldungen)
- Gute und einheitliche Visualisierung (Pflichtfelder, schematische Darstellungen etc.)
Graphical User Interface (GUI)-Richtlinien, ein GUI-Storyboard und ein klickbarer Prototyp sind Möglichkeiten, um diese Konzepte frühzeitig aufzuzeigen und mit den Endanwendern abzustimmen.
Software-Architektur
Wir verfügen über viel Know-how in der Wahl einer geeigneten Architektur.
Folgende Faktoren sehen wir als Grundlagen:
- Funktionale Anforderungen: Was soll die endgültige Lösung können müssen (big picture)?
- Nicht-funktionale Anforderungen wie Erweiterbarkeit, Skalierbarkeit, Mobilität, Sicherheit, Mandantenfähigkeit, Performance etc.
- Berücksichtigung der Systeme und Prozesse, die integriert werden müssen (Schnittstellen, Datenaustausch)
- Bestehende Infrastruktur (vorhandene Lizenzen, Geräte)
- Präferenzen und Richtlinien des Kunden
Unit-Solutions hat bereits unterschiedliche Architekturen konzipiert und umgesetzt. Darunter auch komplexe web-basierte Architekturen für mehrere Mandanten und eine grosse Anzahl von Benutzern.
Wir verfügen über gut ausgebildete und zertifizierte Software-Architekten.
Projektleitung
Unter die Projektleitung fallen folgende Aufgaben:
- Priorisieren der Anwendungsfälle: Was ist relevant für die Architektur? Wo sind die Engpässe? Was erfordert weitergehende Abklärungen?
- Planen der Ressourcen und Aufgaben, die es zur vollständigen Umsetzung aller Anforderungen braucht
- Risiken festhalten, überwachen und die Wahrscheinlichkeit des Eintretens durch geeignete Massnahmen verkleinern, z.B. Abklärungen, Prototyping oder hohe Priorisierung verkleinern
- Planen der Iterationen und Meilensteine
- Das Überwachen des Projektfortschritts und bei massgebenden Abweichungen geeignete Massnahmen einleiten
- Kommunikation mit dem Kunden (Standbericht, Risiken, Probleme, Change-Management)
- Schnittstelle zu Qualitätssicherung (Testing)
- Leiten des Entwicklungsteams (Controlling)
Im Rahmen der Qualitätssicherung (QS) wird das Einhalten von Richtlinien automatisiert geprüft (Sourcenverwaltung mit entsprechenden Regeln). Unit-Tests prüfen die Korrektheit der Kernprozesse und ein Build-Prozess baut über Nacht eine installier- und testbare Version.
Versionen können periodisch auf einem Hosting-System installiert werden. Somit kann der Kunde den Fortschritt einsehen und, falls erforderlich, Feedback geben.
Iterationen erlauben es, die Entwicklung in Phasen zu unterteilen und die umgesetzten Anwendungsfälle vertieft zu prüfen. Dies kann auch durch Einbezug des Kunden in das Testing und Abnahme der einzelnen Iterationen ergänzt werden. Entsprechende Korrekturen und allfällige Anpassungen steigern im Endeffekt die Akzeptanz der Lösung.
Unit-Solutions verfügt über mehrere erfahrene Projektleiter mit entsprechendem Zertifikat.
Anforderungsanalyse
Zu Beginn unserer Anforderungsanalyse steht das Kennenlernen der Bedürfnisse und Erwartungen sowie des Kontextes (Benutzergruppen, aktuelle Arbeitsabläufe, Schnittstellen), in welchem die Lösung integriert werden soll.
Zusammen mit dem Kunden ermitteln wir in Sitzungen, Workshops und durch Begleiten einzelner Angestellte die Businessprozesse. Wir machen Verbesserungspotenziale ausfindig und legen die Rahmenanforderungen fest (Anzahl Benutzer, Anforderung an die Sicherheit, Performance etc.).
Die Ergebnisse sind Anwendungsfälle (evtl. bereits mit Ablauf-Diagrammen und konzeptionellen Datenmodellen) und nicht-funktionale Anforderungen. Alle Informationen werden dabei so aufbereitet, dass der Kunde bereits früh eine Vorstellung über das Endprodukt erhält und in einem nächsten Schritt eine geeignete Softwarearchitektur und ein Bedienungskonzept erarbeitet werden kann.
Auf der Basis der oben genannten Schritte können geeignete Pakete (Versionen) gebildet werden. Die Zeit vom Start des Projekts bis zur ersten produktiven Version wird dabei möglichst kurz gehalten.
Die enge Zusammenarbeit mit dem Kunden (Fachexperten, Endanwendern) während der gesamten Phase sehen wir als einen wichtigen Erfolgsfaktor.
Die Anforderungsanalyse endet nicht mit dem Start der Programmierung. Anwendungsfälle werden laufend verfeinert, durch Konzepte ergänzt und falls erforderlich auch angepasst. Bei grösseren Projekten empfehlen wir eine agile Methodik.