Qui aurait l'idée de passer commande pour un meuble, sans informer le vendeur de ses besoins ?
Inversément: quel vendeur de meubles aurait l'idée de proposer une armoire à chaussures, alors que le client souhaite une étagère pour ranger ses livres ?
Cette métaphore n'est pourtant pas loin de la réalité dans le monde du développement informatique.
Sans pouvoir identifier un besoin clair, on arrive généralement à la situation illustrée ci-contre.
C'est la raison pour laquelle nous ne commençons jamais un projet
sans définir clairement les besoins.
Notre méthode est la suivante:
Durant le développement, des maquettes d'écrans (wireframes) sont construits, afin que vous puissiez rapidement vous rendre compte du rendu visuel de votre site ou application.
Nous mettons un accent tout particulier sur la création de code (PHP, Javascript, ...) soigné, clair et commenté.
Ainsi, la maintenance d'une application est beaucoup plus aisée.
Lors de la saisie initiale du contenu d'un site, suite à une formation, tout est encore "frais" dans la tête.
Mais que se passe-t'il quelques mois après ?
Avec nous, les questions suivantes n'existent pas:
L'utilisation de chaque fonctionnalité de votre site est décrite point à point dans un document - dans votre langue - intégré directement dans TYPO3. Il n'y a même plus besoin de se rappeler où la documentation se trouve, mis à part se souvenir du mot de passe ;-)
Quoi de plus frustrant qu'une mise à jour du site entrainant des dysfonctionnements sur des modules qui fonctionnaient parfaitement avant ?
Les techniques actuelles de tests permettent de définir des tests automatisés, assurant une non-régression des fonctionnalités suite à une mise à jour.
Différents outils standards sont utilisés pour implémenter ces tests.
Le framework de test Behat, accompagné par la suite Mink, permet de définir des tests d'acceptance dans un language très lisible.
Ainsi, les spécifications d'une fonctionnalités sont vérifiées par un jeu de tests, pouvant être lancés sur les différents serveurs (développement, tests, production), afin de vérifier le bon fonctionnement suite à une mise à jour.
Feature: Agenda Leisure @javascript Scenario: Lance une recherche par "category" Given I am on "/en/seeing-doing/whats-on/cultural-agenda/?no_cache=1" Then I open the category block Then I check the "#cat-551" radio button Then I wait 3 second Then I should see "escalade" #Test de la vue de détail Given I follow "Course de l'escalade" Then I should see "Sport" When I click on ".menu2" Then I should see "www.escalade.ch"
Lors du développement d'applications, principalement lors de création d'algorithmes de calculs, il est nécessaire d'assurer que les résultats attendus par une fonction soient toujours identiques, pour parer à une régression lors de modifications sur cette fonction.
Les tests unitaires permettent de vérifier qu'un résultat attendu soit identique tout au long du cycle de vie de l'application, même suite à des mises à jour.
/** * Test case for class Tx_GtcModel_Service_TranslationService. * * @version $Id$ * @copyright Copyright belongs to the respective authors * * @package TYPO3 * @subpackage GTC Model * */ class Tx_GtcModel_Service_TranslationServiceTest extends Tx_Extbase_Tests_Unit_BaseTestCase { /** * @var Tx_GtcModel_Domain_Model_Category */ protected $fixture; public function setUp() { $this->fixture = new Tx_GtcModel_Domain_Model_Category(); } public function tearDown() { unset($this->fixture); } /** * @test */ public function translateCategory() { $translationService = new Tx_GtcModel_Service_TranslationService(); $GLOBALS['TSFE'] = new stdClass(); $GLOBALS['TSFE']->sys_language_uid = 1; $this->fixture->setLanguageOverlay('language1|language2'); $translatedTitle = $translationService->translateCategoryTitle($this->fixture); $this->assertEquals($translatedTitle, 'language1'); } }Exemple de test unitaire simple
Nous privilégions un partage collaboratif des documents du projet, en utilisant différents outils dans le Cloud.
Selon la nature de confidentialité des document, la suite Google App convient parfaitement.
Ainsi, tout est à une même place pour la durée du projet: plus de pièce-jointes aux mails, plus de mails avec 27 réponses (!)
Sur la base d'une documentation standard, ainsi que de la documentation établie tout au long du projet, nous vous donnons une formation efficace, adaptée aux particularités de votre site ou application.
Mots-clés:
Pivotal Tracker est un outil collaboratif de type "Agile".
Il permet de:
Il va de soi que l'utilisation d'un tel outil n'est pas contradictoire avec la communication "conventionnelle": parfois, un problème est plus vite réglé par téléphone que via de tels outils !