Nous voulons partager les principes de travail avec des tâches dans le Django société de développement web qui se sont formés au fil des années de notre pratique. Leur objectif est de créer une façon de penser visant à accroître l'efficacité de l'obtention de résultats.
L'article est utile pour les débutants et les jeunes équipes. Les principes sont facilement applicables à tous les processus et outils de développement. Ils sont basés sur une compréhension de ce qu'est une tâche dans son essence et comment travailler avec elle dans son ensemble.
Une tâche fait ici référence à la fois à une « tâche » spécifique et à une « fonctionnalité » ou une « épopée ». Il n'y aura pas d'exemples d'interprétation des principes dans le texte, afin de ne pas les gonfler. Je laisserai quelques matériaux recommandés qui révéleront un peu plus l'essence des thèses individuelles, et je serai heureux de répondre aux questions restantes dans les commentaires.
Orientation vers les objectifs
Pourquoi chaque tâche a un but ? Pour que le processus de réalisation soit efficace, il doit être clair à partir de la tâche pourquoi le résultat souhaité est nécessaire. Questions utiles pour la formulation du problème :
- Quel résultat faut-il produire ?
- Pourquoi ce résultat était-il nécessaire ? Pourquoi est-ce? A qui et quelle valeur apportera-t-il ?
- Comment comprendre que le problème est résolu (le résultat est obtenu) ?
Posez ces questions en tenant compte des besoins et des caractéristiques des utilisateurs du système en cours de développement et des objectifs commerciaux. Mettez-vous à la place de l'utilisateur ou du client. C'est difficile, mais vous pouvez apprendre : essayez de vérifier les hypothèses de camarades expérimentés.
Que signifie définir une tâche ?
Réfléchissez et décrivez :
- Objectif, besoin ou problème.
- Résultat désiré. Alignez-le avec l'objectif. Assurez-vous que le résultat contribue à sa réalisation.
- Contraintes, telles que le calendrier ou la technologie.
La tâche doit être tout aussi claire pour l'interprète, l'auteur, le testeur et les autres personnes intéressées à la résoudre. S'appuyer sur des concepts généralement acceptés, exclure les doubles interprétations et être suffisant, mais pas redondant. D'une part, vous ne devez pas créer de restrictions inutiles pour l'interprète. D'autre part, il ne faut pas manquer les exigences importantes pour le résultat.
Que signifie accepter une tâche ?
- Comprendre le résultat et le but requis. Convenez de leur correspondance optimale les uns avec les autres.
- Acceptez les limites de la tâche en termes de temps ou la complexité maximale de la solution.
- Assumer la responsabilité d'obtenir des résultats dans les limites indiquées.
Celui qui définit la tâche est responsable de la définition de la tâche. Mais avant d'accepter la tâche pour le travail, vous pouvez influencer sa formulation, en discuter et la corriger avec l'auteur.
La présence d'incertitude dans un problème est toujours un risque. Avant d'accepter une tâche, comprenez la stratégie pour travailler avec elle.
Que signifie faire ?
Une tâche est "terminée" lorsque le résultat de son exécution est prêt pour son utilisation prévue et ne nécessite pas d'actions supplémentaires. La tâche ne peut pas être « presque terminée ». C'est fait ou dans n'importe quel autre état. Une tâche soumise pour test est également une tâche qui n'est pas encore terminée.
Si vous prétendez avoir terminé la tâche, cela devrait signifier : que des tests, un déploiement et une vérification supplémentaires ne sont pas nécessaires et que le résultat du travail peut être utilisé. L'inverse est également vrai : si aucune action supplémentaire n'est requise et que le résultat apporte le bénéfice escompté, la tâche est terminée et doit être transférée au statut terminé.
Quand on dit qu'une tâche doit être accomplie à un certain moment, à ce moment-là, elle doit avoir passé toutes les étapes nécessaires du cycle de vie, y compris les tests et l'acceptation. Pour que la tâche soit effectuée à temps, vous devez commencer à la "rendre" avant la date limite.
Ce principe devrait également s'appliquer à la planification. Nommez le temps et la pénibilité pour résoudre le problème, en tenant compte des tests, du débogage, etc.
Efficacité
Plus tôt vous obtenez un résultat à valeur ajoutée, mieux c'est. Les retours apparaissent plus rapidement, la gestion de la qualité, les attentes et le projet dans son ensemble sont plus efficaces.
Déplacer les tâches vers l'achèvement. Ils ne doivent pas rester coincés dans un statut ou s'accumuler avec un artiste. Ce sont des symptômes de problèmes qui réduisent l'efficacité de l'obtention de résultats.
Une décomposition « saine » est nécessaire pour maintenir le principe de performance.
Décomposition en fonction des besoins
La décomposition des tâches devrait augmenter l'efficacité de l'obtention du résultat global et simplifier le processus de gestion de projet.
Un bon niveau de décomposition est lorsque le résultat de chaque tâche peut être utilisé pour contrôler la réalisation du résultat global du projet et sa qualité. Dans le même temps, l'apparition d'un résultat intermédiaire ne ralentit pas le processus de réalisation de l'objectif. Plus les tâches sont petites, plus il y a de distractions pour basculer entre elles.
Suivi du temps pour la communication
Si vous avez besoin d'enregistrer le temps consacré au travail, considérez le temps consacré à la communication. La familiarisation avec le problème et sa discussion font partie du processus de résolution. Vous ne devriez pas commencer des tâches séparées pour « parler ».
Par exemple, une discussion sur la conception d'une application avec le programmeur SaaS (https://www.softformance.com/services/saas-development/), un exemple entre un designer et un développeur, fait partie du travail de développement de ce design. La communication est un outil de collaboration. Mais il faut aussi considérer la communication dans la complexité de la résolution du problème. Parfois, il faut plus de temps pour parler pour découvrir et accepter que pour écrire du code. Et c'est bon.