Commençons par embaucher une bonne équipe de bons professionnels pour votre projet. Dans une application d'entreprise typique, vous devez embaucher un développeur de base de données et un administrateur de base de données, une personne chargée de l'assurance qualité, un administrateur système, des analystes commerciaux, des développeurs d'applications, un spécialiste de l'interface utilisateur et des chefs d'équipe au minimum. Le DBA, l'administrateur système, les analystes commerciaux et le contrôle qualité doivent faire partie d'une chaîne de reporting distincte de l'équipe de développement. Le spécialiste de la base de données de développement doit relever du même responsable technique que les développeurs d'applications et le spécialiste de l'interface utilisateur.
Configurez l'espace de bureau. Les bureaux privés sont parfaits si vous pouvez les obtenir (je vous souhaite beaucoup de chance avec cela), mais au minimum, vous avez besoin de bureaux, téléphones, ordinateurs, tableaux blancs et quelques salles de conférence dédiées. Assurez-vous qu'il y a un endroit pour les pauses déjeuner, un réfrigérateur, des boissons gazeuses, des collations et du café disponibles. Boissons gazeuses et café gratuits encore meilleurs.
Configurez les serveurs dev / qa / staging et prod pour l'application et les bases de données. Les bases de données ne doivent jamais être sur le même serveur que les applications. Selon la taille et la portée du projet, vous pouvez avoir besoin de plusieurs serveurs ou SAN, etc. pour chaque environnement.
Dès que les serveurs sont configurés, planifiez des sauvegardes du système de fichiers, de la base de données et des journaux de transactions de la base de données. Faites-le dès le premier jour où les choses sont mises en place. Embauchez une entreprise comme Iron Mountain pour effectuer des sauvegardes hors site chaque semaine.
Mettre en place un système de contrôle des sources et créer un document décrivant comment il sera utilisé. N'oubliez pas d'insister pour que TOUS les changements de structure de la base de données et les insertions de données pour les tables de types de recherche soient dans des scripts dans le contrôle de code source. Cela facilitera le déploiement.
Achetez un logiciel commercial ou téléchargez un logiciel open source pour l'ensemble d'outils que vous avez décidé d'utiliser avec des licences pour tous les utilisateurs concernés.
Achetez des machines de développeur qui crient vite et qui ont deux moniteurs. Achetez au moins une machine utilisateur de test qui gémit lentement et est typique de ce que les utilisateurs auront sur leur bureau.
Formez vos nouveaux développeurs à la façon dont vous voulez que les choses se fassent. Si vous avez une équipe suffisamment nombreuse pour avoir des développeurs juniors, planifiez une formation supplémentaire pour eux et incluez le temps dans la planification de votre projet. Surveillez les juniors de très près pendant au moins trois mois. Surveillez de près tous les nouveaux employés pendant le premier mois. Débarrassez-vous des développeurs de bois mort et de voyous dès que possible.
Déterminez ce qui doit être fait dans quel ordre (le chemin critique). N'affectez pas de tâches à la fin du chemin critique tant que les tâches dont elles dépendent ne sont pas terminées.
Créez des plans de test et des exigences.
Organisez régulièrement des réunions d'avancement avec les clients. Ils méritent de savoir ce que vous faites et quels sont les obstacles. Ne manquez pas de leur dire quand les choses seront en retard. Si vous êtes à trois semaines d'un délai et que vous savez déjà que vous allez le manquer, ce déficit ne disparaîtra pas comme par magie avant de devoir le dire au client. Assurez-vous que le client sait que les exigences supplémentaires signifient des coûts et du temps supplémentaires et que chaque exigence ajoutée devra soit supprimer d'autres tâches, soit la date limite changera en fonction du nombre d'heures dans les nouvelles tâches. En clarifiant cela dès le départ, vous économiserez beaucoup de douleur et d'heures supplémentaires et des dépassements de coûts absorbés par votre groupe et non par le client.
Configurez un environnement pour tester les performances, non seulement la vitesse d'un utilisateur, mais un environnement où vous pouvez tester le nombre attendu d'utilisateurs simultanés. N'attendez pas pour faire ce test jusqu'à la veille de votre mise en ligne.
Dans la planification du projet, supposez que le contrôle qualité trouvera des bogues et qu'il faudra du temps pour les corriger. Ne planifiez pas le contrôle qualité pour une seule journée à la fin.
Créez des données de test qui sont à peu près de la taille que vous pensez que la base de données sera. Demandez à tous les développeurs de tester leur code par rapport à la base de données de cette taille. Ne permettez pas aux développeurs de développer uniquement sur une petite base de données sur leurs machines personnelles. Il s'agit d'une cause fréquente de code qui fonctionne bien jusqu'à ce qu'il atteigne la production.
Prévoyez des récompenses dans le budget. Il démotive les gens lorsqu'ils travaillent leurs mégots pendant des mois et seuls les managers reçoivent des bonus. Merci aussi fréquemment et par écrit.
Vous devrez peut-être un système de gestion de projet ou au moins mettre en place des feuilles de calcul pour suivre ce que vous devez suivre. Lors de la planification du projet, ne supposez pas plus de six heures par jour dans votre plan. Cela permet de prendre en compte le temps qui ne sera pas consacré au projet, comme les vacances, les congés de maladie, les vacances, les réunions RH, les évaluations des performances, etc. Si vous savez que le projet se trouve dans une période d'indisponibilité élevée (par exemple, un projet qui s'exécute du 1er novembre au 1er janvier aux États-Unis), vous devrez peut-être faire des allocations supplémentaires pour plus de congés et de vacances. Il n'est pas juste de s'attendre à ce que les développeurs abandonnent leurs congés et vacances et personne ne peut prédire quand des choses comme les congés de maladie, les fonctions de juré, les temps de deuil, etc. Supposons qu'ils arriveront à votre équipe sur ce projet.