web-dev-qa-db-fra.com

Scrum pour un seul programmeur?

Je suis facturé comme "Expert Windows" dans ma très petite entreprise, qui se compose de moi-même, d'un ingénieur en mécanique travaillant dans un rôle de vente et de formation, ainsi que du président de la société, travaillant dans une conception, un développement et un rôle de soutien.

Mon rôle est également aussi général, mais je concevons-je, mais je concevons et mettez en œuvre quelles que soient la programmation sur notre produit doit être effectuée pour que nos affaires soient exécutées sur les versions de Windows.

Je viens de finir de regarder un aperçu de haut niveau du paradigme Scrum, donné dans une diffusion Web. Ma question est la suivante: est-ce que cela vaut mon temps d'en savoir plus sur cette approche du développement de produits, étant donné que mes articles de travail de développement sont généralement donnés à un niveau très élevé, comme "internationaliser et localiser le produit".

Si c'est le cas, comment suggéreriez-vous d'adapter Scrum pour l'utilisation d'un seul programmeur? Quels outils, en nuage ou autrement, seraient utiles à cette fin?

Si ce n'est pas le cas, quelle approche suggéreriez-vous qu'un seul programmeur organise ses efforts de jour en jour? (Peut-être que la question diminue à cette question simple.)

31
Rob Perkins

Apprendre Scrum: Oui. Si seulement pour en savoir plus pour ajouter à votre ensemble de compétences générales. (Mais une saveur de celle-ci "Scrum-Ban" est probablement ce que vous recherchez ...)

Scrum est un cadre agréable, mais un principe de base est "itérations (sprints) doit être une durée fixe" Je n'ai jamais vu ce travail dans de très petites équipes qui sont plus fréquentées que non. Si vous pouvez vraiment vous inscrire et vous engager à travailler dans une zone de temps fixe (1 semaine?), Scrum est un cadre cool. Si vous ne pouvez pas ... alors Scrum est agréable d'apprendre de savoir car il a de bons concepts qui se traduisent bien vers d'autres choses ... comme ....

Backlog - Scrum ou non, gardez une liste hiérarchisée de choses que vous devez faire. J'aime Excel (ou tableur Google Doc ...) Vous pourriez aimer quelque chose d'autre. Je garderais un très petit outil si vous êtes une très petite équipe. (Feuille de calcul >> processeur de mots parce que vous pouvez trier facilement.)

Séparation de la planification et de l'engagement - Plan dans une notation abstraite (points) et être cohérente (8PTS est d'environ 2 fois une histoire 4PT et 4x une histoire de 2 points) quand il est temps de "faire le travail" Re-regarder le problème et de l'esquisser en heures. Ne changez pas les points.

Engagement - être visible envers les autres lorsque vous vous engagez et accumulez vos engagements

Rétrospective - Une fois que vous avez livré, réfléchissez à ce qui aurait pu être fait mieux.

etc.

Scrum est assez facile pour comprendre que cela pourrait être un bon point de départ. Si vous l'aimez, je envisagerais d'utiliser la variante "Scrum-Ban" - http://fr.wikipedia.org/wiki/scrum-ban#scrum-ban . Rien d'autre ne me frappe comme "si bien documenté" avec une communauté raisonnablement active pour la soutenir.

J'aimerais également recommander les méthodologies de cristal d'Alistair Cockburn (http://alistair.cockburn.us/crystal+Methodologies+Main+foyer et http://www.amazon.com/crystal-clear-human- Méthodologie Powered-PETIT/DP/0201699478/REF = NTT_AT_EP_DPT_ ), mais cela implique la lecture et la creuse.

Des choses telles que XP offrent plus de détails sur des pratiques spécifiques, je dis donc également à lire le livre: http://www.amazon.com/extreme-programming-explait-Embrace -Change/dp/0321278658/REF = SR_1_1? S = Livres & IE = UTF8 & QID = 1304359834 & SR = 1-1

Conseils de lecture finale: Tant que vous acceptez le manifeste agile et suivez les principes suivants: http://agileifesto.org/principles.html Vous devriez être en forme décente.


Recommandation personnelle: Adopter TDD (non négociable, IMHO) maintenir un arriéré (selon Scrum) Gardez toujours la taille et triés sur la priorité décompose des choses "trop grandes pour faire entre les interruptions" des plus petits morceaux que quelqu'un d'autre se fixe/examine la priorité (non Deux éléments obtiennent la même priorité. Tout jamais.) Faites votre environnement de construction capable de construire/tester/déployer (à Lab env) dans 5-10min Afficher vos clients (internes et externes) Les résultats de la finition d'une histoire d'histoire ne se sont pas terminés votre client accepte. Tirez des histoires du haut de la pile et travaillez-les lorsque vous remplissez l'histoire actuelle, ne conservez pas plus de 2 choses ouvertes à tout moment. Terminez une distraction avant de commencer un autre. Prenez la fierté de votre travail et une fois par mois, vous présentez l'équipe/la société tous les produits/fonctionnalités que vous avez complétées.

j'espère que cela t'aides

14
Al Biglan

Vous pouvez utiliser certaines pratiques utilisées dans Scrum comme étant-archette de produits, la priorisation, l'estimation relative, la livraison incrémentielle, mais utiliser tout Scrum en tant que processus de gestion du développement de produits par une équipe de membres transversaux croisés auto-organisés n'est probablement pas un moyen d'aller chercher un spectacle d'un homme .

La question est de savoir si vous êtes capable de casser vos articles de travail aux petits morceaux pouvant être livrés de manière incrémentielle? Si vous n'utilisez pas la plupart des pratiques n'a pas de sens. Aussi Scrum concerne une coopération élevée avec le propriétaire du produit/le client. Ce ne devrait pas être comme: "Ici, vous avez une mission et récupérez une fois que cela se fait".

13
Ladislav Mrnka

Bien que je ne dise rien ou contre 1-homme srum, je dirai qu'un système de pull kanban à 1 homme fonctionne très bien. Kanban combiné avec des tests d'unité automatisés m'a rendu beaucoup plus productif et "documenté". Bien que non plus les méthodologies, mais plus d'outils (et des outils très différents à cela), les deux forcent-moi à décomposer de grands projets solo en morceaux de taille, ce qui me donne une sorte de rituel pour m'encourager à faire plus de choses que chacun journée. Il n'y a rien de tout aussi satisfaisant que de cliquer sur "Exécuter tous les tests" et de voir chaque article aller vert ... rien sauf prendre une carte de la colonne "en cours" de mon conseil kanban à "en test" (ou hors du carton entièrement) .

Je pense que le véritable problème avec le travail en solo est que vous avez sélectionné et choisir de multiples méthodolgies, qui sont vraiment destinés à des groupes de développeurs et à vous adapter au mieux. L'objectif final est vraiment juste de rester responsable, productif et heureux. Qui sait comment faire cela mieux que vous-même (avec un peu tiré d'ici et un peu de là).

5

J'ai essayé cela quand je travaillais seuls à un moment donné. Les choses qui fonctionnaient bien étaient:

  1. Avoir tous les articles de travail sur un tableau blanc. Je pouvais très vite voir quel travail exceptionnel il y avait; où les dépendances et les blocages étaient. En outre, beaucoup de gens s'arrêteraient par mon conseil d'administration et le lire - et nous en discuterions. Je pense que cela les a aidés à comprendre ce que "le geek" faisait toute la journée ;-)
  2. La carte de combustion était également géniale. Je viens d'utiliser Excel pour cela. Cela m'a permis de mieux faire des estimations dans cet environnement. Cela m'a donné un excellent aperçu de l'endroit où je me dirigeais avec l'itération. Mon responsable, qui n'était pas une personne technique, a également aimé cela comme elle pouvait voir toutes les choses différentes impliquées dans une caractéristique et où elles étaient à.
  3. Quotidien debout. C'est mieux que je pourrais. Chaque matin, j'ai mis à jour tous les éléments de travail et l'organigramme de Burn-Down et a pris une note de tous les obstacles qui devaient être résolus.
  4. Test automatisé et intégration continue (Mstest/TFS), de préférence TDD, aidera toute équipe de développement, en utilisant toute méthodologie - mais mérite d'être mentionnée ici.
  5. Des itérations courtes (1 semaine) m'ont vraiment aidé à me concentrer sur la livraison de quelque chose.
  6. Le maintien d'un arriéré était génial comme lorsque j'ai reçu un nouveau travail, j'ai pu la placer dans le contexte de tous les autres travaux et obtenir le propriétaire du produit de reprogrammer.

Ce qui n'a pas fonctionné était:

  1. Travailler par vous-même, vous ne stimulez jamais cela de collaborer avec des personnes partageant les mêmes idées; Ou ce sens de la concurrence et de la concentration qui vient d'une équipe avec un très grand moral et une culture. Il n'y a pas d'autre cerveau à choisir lorsque vous êtes coincé, alors les blocages comme celui-ci ne peuvent pas être éliminés par un maître de Scrum dans le quotidien debout.
  2. Il n'y a pas de maître Scrum - il n'y a donc personne pour arrêter les interruptions. J'ai eu beaucoup de problèmes avec des gens qui posent constamment des questions sur d'autres choses et de briser mon flux. Sous un bon maître Scrum, des trucs comme ça sont interceptés et vous pouvez continuer. Je n'ai jamais voulu être impoli envers les gens (peut-être que je suis doux) donc c'était un problème. En outre, sans maître Scrum, vous pouvez vous promener facilement du processus.

C'était un exercice intéressant, mais j'ai arrêté de le faire après un peu. Je pense que les avantages de Scrum doivent être considérés contrairement aux équipes de cascade traditionnelles. Mais les deux sont un peu discutés lorsque vous êtes seul. Il n'y a pas de communication ni de problèmes de collaboration - vous ne faites que labourer le travail défini, puis vous avez terminé.

Je pense que tout le monde devrait garder un back-bille et faire TDD cependant.

5
sheikhjabootie

Éléments d'Agile/Scrum/Kanban, je pense avoir un sens dans un monde de développeur unique:

  1. Demandez à une carte sur laquelle vous organisez vos histoires d'utilisateurs/actif-archette-archettes, sur les cartes d'index, comme Kanban.

  2. Obtenez l'adhésion des non-développeurs sur la valeur de ces principes:

    • Donnez-moi le temps de travailler sans changer mes priorités sur moi ou sur la microgestation (le point de sprints). Donnez-moi le temps et je vais essayer de comprendre à l'avance à quel point je peux faire, et je ferai de mon mieux pour faire cela beaucoup.

    • Si j'ai besoin de quelque chose (je suis bloqué), et que je viens à vous et que vous ne pouvez pas le trier pour moi, le sprint peut-il avoir à être annulé anormalement. (Cela signifie juste que nous avons besoin d'un nouveau plan.)

    • Personne ne change rien au milieu du sprint. Ou, si nous faisons, nous annulons simplement le sprint et nous en créons un nouveau. Si cela arrive beaucoup, la productivité goutte.

    • la communication entre les personnes ayant des parties prenantes peut se produire lors de réunions de standing quotidiennes régulières, qui communiquent la plupart des mêmes choses qu'un scrum régulier serait, y compris vos réalisations de développeurs pour la journée. Essentiellement, vous pouvez signaler des choses qui ont pris plus de temps que vous ne l'avez pas pensée, ou se sont bien déroulées et tous les ajustements que vous apportez sur vos plans de mise en œuvre. (J'ai trouvé quatre nouveaux bugs et les a connectés, je pense qu'ils sont plus importants que cette fonctionnalité facultative, et je pense donc que je vais passer le temps et les réparer et pousser cette fonctionnalité facultative.)

J'ai fait beaucoup de travail en tant que développeur unique et je peux dire avec certitude que la confiance entre le développeur unique et ses superviseurs/patrons non développeurs et une bonne communication sont les clés, pas une méthodologie. Mais vous pouvez toujours être plus efficace, si vous suivez de bons principes.

2
Warren P

J'ai lu un blog à ce sujet et je pense que cela peut vous aider avec votre question.

Première partie: http://www.21apps.com/agile/doing-agile-in-a-team-of-one/

Deuxième partie: http://www.21apps.com/agile/doing-agile-in-a-team-of-one-ay2/

Vous trouverez peut-être plus d'informations sur ce blog.

Je ne suis en aucun cas connecté; Juste quelque chose que j'avais dans mes favoris. J'espère que cela peut vous aider.

2
Rodi

Oui. Et gardez à l'esprit que le Scrum n'est pas obligé d'impliquer des outils de fantaisie, il peut simplement s'agir d'une simple réunion de longue date de 15 minutes où tout le monde parle de ce qu'ils travaillent. L'avantage de Scrum est que tout le monde sait ce qui se passe, ce qui facilite la résolution de problèmes avant de se lever et d'anticiper les problèmes de la route.

1
CamelBlues

Je suggérerais d'essayer Kanban et de commencer par les bases: visualisation et limitation de travail en cours (WIP).

Même si vous l'arrêtez plus tard, vous aurez plus d'agilité dans le processus. Et tandis que Kanban est bon pour le développement logiciel "normal", Kanban + un processus basé sur le flux (par opposition aux itérations) abîme à d'autres outils de processus lorsque vous disposez d'une situation à la fois en développant de nouvelles fonctionnalités et de nouvelles entretenances.

Deuxièmement, la recommandation du livre Kanban de David Anderson, et vous pouvez également jeter un coup d'œil à mes diapositives d'un Meetup local sur pourquoi et comment commencer avec de simples kanban ou CRISP.SE/kanban pour une introduction courte.

Pour votre contexte, j'ai quelques réflexions:

  • Visibilité est la clé, alors utilisez plutôt un tableau blanc physique qu'un outil numérique si vous ne pouvez pas l'afficher sur un (grand) écran de manière permanente (si vous êtes co-localisé)
  • commencez avec votre processus actuel
  • commencez avec votre sphère d'influence uniquement, notamment des phases de la main en amont et descendant (devenant la file d'attente pour vous, par exemple, des fonctionnalités conçues prêtes pour Dev ou la file d'attente de votre part, par exemple, des fonctionnalités finies, prêtes à être vendues)
  • si vos collègues sont intéressés à élargir la visualisation en amont ou en aval, tout le meilleur. Peut-être que vous allez finir par la visualisation de l'ensemble du flux de valeur (ou du réseau) pour votre entreprise, c'est-à-dire comment la valeur coule du concept à l'argent
  • minimiser le multitâche (!) en limitant la WIP. Si le flux de travail est visible pour vos collègues, ils devraient comprendre pourquoi, et voir facilement ce qui se trouve dans votre assiette.
  • peut-être qu'il sera utile de séparer les travaux en 3 ou 4 types de travail (classes de service), qui ont des exigences différentes sur eux: F.Ex. Bugs, problèmes critiques, travail avec des délais matériels, travail sans échéances
  • observez comment votre travail flux, par exemple, si vous obtenez des goulots d'étranglement quelque part ou que vous êtes bloqués ou que vous êtes "affamé" pour travailler dans des modèles quelque peu prévisibles. Cela est plus facile à long terme si vous utilisez un outil numérique, refez certaines de mes dernières diapositives.
  • améliorer le flux de travail étape par étape

Si vous voulez essayer quelque chose en ce moment, aujourd'hui, pendant que vous prenez votre décision, je vous recommanderais d'essayer un kanban personnel sur le mur ou la fenêtre ou le placard à vos côtés, comme je l'ai fait durer Semaine ...

1
Ingvald

Beaucoup de ces réponses manquent un point important.

Une équipe de scrum n'a pas besoin de consister uniquement à partir de programmeurs.

L'un de vos collègues fait "concevoir"/"développement" et une "vente".

Peut-être que votre collègue "vente" peut être un propriétaire de produit (proxy). Quelles sont les attentes du client?

La conception et le développement de votre autre collègue ressemblent vraiment à des disciplines d'équipe Scrum. Le développement de Scrum n'est pas progressivement mis en phase mais vertical (exigences de repère, conception et mise en œuvre dans un sprint).

Vous pouvez faire le processus de Scrum avec vous trois.

Que faut-il pour obtenir "cela" fait? Les réunions de planification de sprint de Scrum zooment sur la question de ce que "ceci" est. Qu'est-ce que le propriétaire du produit attend de voir pour qu'il soit considéré comme fait?

Lors d'une réunion de planification de sprint, vous pouvez donner à votre autre contexte de collègues pourquoi "internationaliser et localiser le produit" pourrait être techniquement difficile à mettre en œuvre.

Des tonnes de raisons d'utiliser Scrum IMHO.

1
Joppe

Sauf si vous avez le suivant en place

  • Moyens d'organiser et de hiérarchiser les exigences entrantes.

  • Pour estimer avec précision l'effort qui sera pris afin que vous sachiez ce que vous pouvez commettre dans une itération

  • Itérations et amélioration continue - Le concept d'itérations dans lequel on inspecte continuellement et l'adaptation est inestimable. Cette pratique encourage l'expérimentation et elle s'appuie dans l'apprentissage continu. Scrum in Church, page 4

  • Eh bien, vous ne pouvez pas faire une réunion quotidienne de Scrum, mais au moins vous pouvez vous rappeler la tâche que vous vous engagez aujourd'hui. La réunion quotidienne Scrum est utilisée pour que les équipes puissent se synchroniser les unes avec les autres sur ce qu'ils font.

  • Réflexion après un sprint - Dans Scrum, il s'appelle Sprint rétrospective, à la fin de chaque itération, vous pouvez réfléchir à ce qui se passe après l'itération et penser à ce qui s'est mal passé et comment vous pouvez l'améliorer, quelles sont les meilleures pratiques pour les garder Faire

Je suggérerais que vous preniez une approche minimaliste et, par une amélioration continue, vous pouvez avoir un scrum qui convient à vos besoins.

Scrum n'est pas Scrum si vous ne pouvez pas l'adapter à vos besoins et vous adapter à votre situation actuelle.

0
OnesimusUnbound

Après avoir lu toutes les autres réponses ici, je pense que la réponse pragmatique simple est la suivante:

Utilisez des processus ou des techniques ou des méthodes utilisées pour apprendre quelque chose qui vous aidera à mieux faire votre travail.

Cela pourrait maintenant donner la priorité à vos tâches - tous les jours - religieusement.

Cela pourrait signifier de travailler sur l'arriéré.

Cela pourrait signifier de signaler des progrès - à votre patron (même s'il ne s'en soucie pas ... Faire, c'est une bonne chose à vous permettre mentalement de faire le point sur votre lieu de travail).

Vous pouvez utiliser toutes sortes de méthodes ou de techniques parce qu'elles vous permettent de mieux travailler, qui = mieux dormir la nuit.

Faites des choses qui fonctionne (pour vous, dans vos circonstances actuelles), jetez des choses que cela ne le fait pas.

0
quickly_now