Je veux améliorer la façon dont je développe des logiciels. Je veux développer plus vite et un bon code! Aujourd'hui, j'utilise la méthode de la cascade en tant que pigiste, écrit des trucs Web (sites, systèmes, etc.). Existe-t-il un moyen d'utiliser le développement agile (XP, Scrum, etc.) de cette manière? Je ne sais rien sur le développement agile, où devrais-je commencer? Merci beaucoup.
... autres que la programmation paire, bien sûr. ;-)
Sérieusement, je suis un travailleur indépendant aussi et j'utiliser des techniques agiles autant que je peux. Il fonctionne pour moi très bien. Je fais grand usage de TDD,
Personne nulle part utilise 100% de XP ou Scrum, mais tout le monde utilise des pièces de celui-ci, en essayant d'adopter autant que pour les œuvres. À mon avis, plus de que vous adoptez, mieux tu es.
Ce qui me manque sur le plus est la programmation de paire. La façon dont vous surmontez qui est
Voici quelques ressources que j'utilise:
Je dirais donc qu'il y a trois "points géniaux" principaux à utiliser Agile comme pigiste:
Pour les grands clients, travail/facture dans les itérations. À la fin de l'itération, le client peut continuer à travailler sur le projet ou mettre fin au projet (c'est-à-dire: il a accompli son objectif). Je sais (de l'expérience) Je ne peux pas bien estimer plus de quelques semaines et la paie-vie de paiement maintient également le flux de trésorerie. Ce n'est pas amusant d'être au cours du mois 6 d'un projet de 3 mois et d'attente Pour terminer le projet pour que vous puissiez BIL ...
Agile signifie que le changement arrive. J'ai fait une tonne de projets d'offre fixes (que vous pensez pouvoir faire de cascade) qui m'ont perdu de l'argent, à cause d'une demande du client au milieu du cycle. Changement se produit: le client peut remortiser un ticket pour obtenir un autre travail effectué plus rapidement, ou peut-être que vous avez faussé mal et que vous n'êtes pas autant fait que vous l'aviez espéré.
Bon outils de collaboration client. Mon estimation standard (pour quelque chose de plus petit que la valeur de l'itération) est en fait une série de mesures de développement axées sur le comportement dérivées des attentes du client. J'envoie ceci au client et dis "est-ce correct?". Il s'assure que tout le monde est sur la même page.
Chose la plus simple qui puisse éventuellement fonctionner. C'est quelque chose à garder à l'esprit que vous travaillez: n'ayez pas peur de revenir au client et de dire: "Ce serait beaucoup plus simple (ou plus puissant ou autre) si nous l'avons fait de cette façon ... "
Scrum est important. J'aime envoyer mes clients un email chaque jour où je travaille sur leur projet. C'est comme si mon scélum pour eux: "Qu'est-ce que j'ai travaillé aujourd'hui", "Que/quand je vais travailler sur leur projet ensuite?", "Y a-t-il quelque chose dans mon chemin?", Et "Globalement, comment va progresser ? "
Le développement axé sur les tests est vraiment utile aussi, même comme un seul programmeur. Mes "estimations avec des histoires BDD en eux" aident-moi à nourrir ce processus.
Un excellent moyen de commencer votre voyage agile consiste à configurer votre flux de travail à l'aide d'un système Kanban.
Nous avons simplement 3 nagonniers:
Ce flux de travail agile simple est un excellent moyen de commencer.
En termes de codage, je recommanderais d'utiliser Développement axé sur les tests (TDD). Nous avons inclus de nombreux grands liens décrivant TDD dans notre article mais les recopieront ici:
Pour plus d'informations, consultez les ressources suivantes:
Depuis votre individu, il est préférable que vous approchiez des méthodologies agiles comme quelque chose qui est là pour vous aider à grok-out ce qui fonctionne mieux pour vous. Ils sont là pour vous aider à atteindre ce plateau "Il n'y a pas de cuillère" Plateau, mais comment cela se produira-t-il exactement à vous et à ce que vous proposez à la fin se chevauchera grandement avec certaines méthodologies à différents niveaux, mais Ce sera quelque chose de complètement à vous.
Depuis votre tentative de trouver une façon de trouver des choses pour améliorer votre efficacité globale, voici quelques indications qui peuvent vous aider au moins ne pas faire les mêmes erreurs que je fais:
Forgo Toutes les solutions logicielles ciblant exclusivement les méthodologies agiles, aussi longtemps que possible.
Le fait qu'ils soient plus adaptés à la facilitation de la collaboration de l'équipe sont à côté du point. Résister à la tentation. Vous ne cognez pas vous-même dans un façon de faire des choses Et puis espère l'adopter, il fonctionnera pour le meilleur. Ce n'est pas le cas, ça vous frusse. Vous trouverez d'abord votre façon de faire des choses Et puis recherchez une solution logicielle appropriée. J'ai fini par utiliser des tableaux blancs (commença avec un, mais maintenant, j'ai deux dans ma chambre) pour suivre/développer des histoires et la Technique Pomodoro | à faire aujourd'hui Liste pour suivre mes tâches de développement et c'est Friggin 2011. Collez sur les bases jusqu'à ce que nous obtenions des interfaces telles que celles de l'homme de fer 2 ou de voitures volantes commencent à apparaître.
Réflexion, réflexion, réflexion
C'est ce que je suis venu comprendre pour être la partie la plus importante de toute méthodologie d'une personne. Il s'agit de développer ce flux de travail qui vous donne une vision holistique de votre projet afin que vous puissiez suivre ce qui doit être fait et quand de manière facile à gérer et où de mauvaises décisions sont rarement fabriquées et se démarquent afin qu'elles puissent être rapidement modifiées. Avant de causer des dommages ... Mais vous ne pouvez pas simplement le choisir de l'étagère. Commencez de quelque part, n'importe où. Vous en tenez-vous aussi longtemps que cela fonctionne. Investissez dans le suivi du bien, le mauvais et le soi-so. Améliorez vos hypothèses, puis ajustez la façon dont vous faites les choses en conséquence. C'est la seule façon dont tu vas améliorer.
Furget sur les délais, concentrez-vous sur la rapidité avec laquelle vous obtenez des choses
J'étais probablement comme le prochain gars quand j'ai commencé, à la suite de dates. Tableaux d'épuisement physique? Je pensais à eux comme un moyen de visualiser ma piste de développement contre les délais. C'est une performance, pas un modèle d'estimation. Le temps est là pour mesurer votre efficacité en réfléchissant sur le travail que vous avez effectué dans un certain délai, pas juste une valeur muette pour représenter la distance avant d'empêcher les délais impartis. La réalité est que des trucs sont terminés quand c'est fait et votre méthodologie doit en tenir compte.
Déviate en conséquence
À la fin, qui dit que vous devez utiliser des histoires d'utilisateurs, ou tout ce que nous savons de ce sujet? Ne pense pas comme ça. Si vous êtes plus à l'aise avec la pensée en termes de caractéristiques, alors de tous les moyens défa la communauté de développement mondial et faites-le votre chemin, car vous avez fait des choses, c'est tout ce qui compte à la fin de la journée. Si vous finissez par vous sentir comme vous faites quelque chose de mal, vous venez de conclure qu'il est temps de sauter à autre chose. C'est à propos de ce qui est, pas de la façon dont.
Je répondrais "Comment voulez-vous améliorer votre développement de logiciels?". Pour votre modèle commercial, quelles sont les principales problèmes que vous avez rencontrés à l'aide de la méthodologie de cascade?
Votre objectif est votre objectif plus rapide, un code plus robuste, une plus grande réutilisation, une réunion/s'adapter à la modification des besoins, etc.? Des méthodologies différentes existent pour surmonter différents problèmes.
Bien entendu, adopter une méthodologie de conception autre que la cascade peut être très utile pour gérer efficacement un cycle de vie des projets en fonction de vos besoins en entreprise. Pour le développement agile, il existe un grand nombre de ressources en ligne. Je regarderais [~ # ~ #] AUP [~ # ~] (processus unifié agile) qui intègre TDD (développement axé sur les tests). Cela peut être extrêmement utile lorsque vous construisez/gérer de grands systèmes évolutifs.
Il n'y a pas de méthodologie "une taille unique convient à toutes les raisons du grand nombre d'approches différentes. Je commencerais à penser à l'endroit où vous sentez les goulots d'étranglement dans votre processus de développement actuellement, puis essayez d'adopter une nouvelle méthodologie pour surmonter cela.
Par exemple, ne manquez-vous pas souvent de respecter les délais? Est-ce que de nouvelles fonctionnalités introduisent un grand nombre de bugs? Les nouvelles exigences peuvent-elles causer un réaménagement majeur? L'entreprise nécessite-t-elle des systèmes de travail réguliers à présenter? Découvrez: Agile , itératif et Intro Agile .