Environnement et outils Open-source

La plupart des sociétés de service en informatique évoluent seulement dans le monde de Microsoft Windows ™, et utilisent des outils propriétaires. Même si cela est commun, il est possible que cela ne corresponde pas à  votre propre environnement ou à  ce que vous attendez !

Même si nous sommes très à  l'aise avec les outils de développement tels que Visual Studio, nous avons choisi une approche différente en décidant d'utiliser principalement des outils open-source et multi-plateforme, comme le compilateur GCC ou encore le système de gestion de révision Git... Si vous êtes comme nous, il y a des chances que nous nous intégrions bien plus rapidement que les autres à  votre organisation, apportant ainsi un gain de qualité, de temps et une économie sur le projet global.

GCC, Gnu Compiler Collection

Les outils multi-plateformes que nous utilisons 

GCC est un compilateur portable de haute qualité qui fonctionne sur la plupart des plate formes disponibles aujourd'hui. Il peut produire du code compilé pour de nombreux types de processeurs.

En plus des processeurs utilisés dans les machines personnelles, il support également les micro-contrôleurs, les DSP et les processeurs 64-bit.

Il peut également faire de la compilation croisée avec n'importe quel programme, produisant des exécutables pour des systèmes différents de celui sur lequel il est exécuté. Cela permet par exemple de compiler pour des systèmes embarqués qui ne sont pas capables d'exécuter un compilateur.

Le développement de GCC est supervisé par le GCC Steering Committee, un groupe composé de représentants des communautés d'utilisateurs dans l'industrie, la recherche et le milieu académique.

C'est un logiciel libre et gratuit, distribué sous licence GNU GPL (GNU General Public License).

En savoir plus à  propos de GCC et G++

Système de construction CMake

Au fil des ans nous avons testé et utilisé plusieurs systèmes de construction différents. CMake se trouve être de loin le meilleur et le plus puissant, soutenant parfaitement notre philosophie multi-plateforme.

CMake est un système de construction open-source et multi-plateforme. Il est utilisé pour piloter et organiser le processus de compilation des logiciels, en utilisant des fichiers simples indépendants des plateformes et des compilateurs.

En utilisant le programme de packaging CPack, CMake génère des paquetages d'installation pour toutes sortes de plateformes (debian et rpm pour Linux, setup et MSI pour Windows, dmg et bundle App pour Mac OS X, etc.)

Allez sur http://www.cmake.org/HTML/About.html pour en savoir plus sur CMake.

En savoir plus à  propos de CMake et CPack

Services de test avec la suite CTest et CDash

Chez Tegesoft, la qualité des logiciels et les tests ne sont pas une vague notion... nous prenons cela très au sérieux !

Nos développeurs implémentent et gèrent des tests unitaires en utilisant CTest, et tracent les résultats avec CDash. Ils dépendent de ce système pour transmettre et synthétiser les résultats des tests logiciels, et améliorer continuellement la qualité du code.

CDash est un serveur de test web open-source. Il rassemble, analyse et affiche les résultats des processus de test soumis par CTest et les équipes de développement où qu'ils soient.

En savoir plus à  propos de CTest and CDash

Système de gestion de versions Git

Même si nous pouvons utiliser Subversion (SVN), Mercurial (Hg) et même CVS, nous préférons toujours utiliser Git pour nos tâches quotidiennes pour nos projets internes, et à  chaque fois que nous le pouvons pour les projets externes.

Git est un système de contrôle de version distribué qui ne s'appuie pas sur un serveur centralisé. Ce système gratuit et open-source a été conçu pour gérer toutes sortes de projets, du plus petit au plus grand, avec rapidité et efficacité. Il tourne sur les ordinateurs de bureau, les serveurs et les OS mobiles.

Ainsi il colle parfaitement à  la manière de travailler et à  la philosophie de Tegesoft, en apportant le support multi-plateforme et en permettant aux développeurs de travailler de manière décentralisée (bien que nous ayons également un serveur central) avec un outil puissant pour la gestion des branches et des variantes.

Git a été développé à  l'origine par Junio Hamano et le fameux Linus Torvalds pour le développement du noyau Linux.

En savoir plus à  propos du système de gestion de version Git

Gestionnaire de projets Redmine

Redmine est une application web flexible pour faire de la gestion de projet.

Il supporte les projets multiples, possède un système de gestion d'accès par rôle flexible, fournit un système de gestion de tickets et supporte de nombreuses fonctionnalités additionnelles via des modules (p.ex. wiki, repository, gantt, planning, ...).

Son excellente intégration des VCS majeurs (en particulier Git) fait de lui l'outil parfait pour s'intégrer à  notre environnement de travail.

Il permet de gérer la visibilité privée ou publique des projets avec finesse. Nos clients ont accès à  leurs projet par Internet, ce qui leur permet d'en suivre l'évolution et même de participer.

En savoir plus à  propos des fonctionnalités de Redmine

VMware Server

Les nombreux systèmes d'exploitation que nous devons supporter impliquent une compilation et des tests sur de nombreuses plateformes.

Rien qu'avec Windows il y a des différences entre 2000, XP ou Windows 7, sans parler des versions 32-bit et 64-bit !

Pour accomplir l'automatisation des tests sur autant de plateformes différentes nous utilisons VMware Server. Ce système de virtualisation exécute en parallèle tous les OS cibles gérés par le système de construction et de tests.

De plus, nos développeurs peuvent faire des tests et de la R&D en utilisant manuellement des machines virtuelles contenant un environnement de référence, et utiliser le mécanisme de snapshot pour toujours y revenir après des tests.

En savoir plus à  propos de VMware Server