Maison >développement back-end >Golang >Déverrouiller Agile : au-delà du cadre

Déverrouiller Agile : au-delà du cadre

Linda Hamilton
Linda Hamiltonoriginal
2024-10-04 16:07:291063parcourir

AGILE est un ensemble de techniques et d'approches qui améliorent la prise de décision, la productivité et les capacités de réflexion au sein de votre équipe.
Tous les aspects du génie logiciel traditionnel, tels que la gestion de projet, la conception et l'architecture logicielles et l'optimisation des processus, sont couverts par ces techniques. Pour les rendre aussi simples à mettre en œuvre que possible, ils sont composés de procédures rationalisées et optimisées.

Parce qu'un état d'esprit approprié peut avoir un impact significatif sur la façon dont une équipe applique les techniques, AGILE est aussi un état d'esprit. Cet état d'esprit facilite le partage d'informations entre les membres de l'équipe afin que les choix importants en matière de projet puissent être faits collectivement plutôt que par un manager agissant en tant que décideur isolé. Adopter une mentalité agile implique d'impliquer toute l'équipe dans la planification, la conception et l'optimisation des processus. Chaque membre d'une équipe agile participe à l'application des techniques et partage les mêmes informations que l'ensemble du groupe.

Pour de nombreuses équipes qui n'ont pas connu autant de succès, l'agilité s'est avérée très différente de ce qu'elle promettait, et une grande partie de cet écart réside souvent dans l'attitude que l'équipe apporte à chaque projet. La plupart des entreprises de développement de logiciels se sont essayées à l'agilité et, même si nombre d'entre elles ont connu du succès, certaines équipes ont produit des résultats loin d'être idéaux. Ils ont fait quelques progrès dans la façon dont ils gèrent leurs projets – suffisamment pour que l’effort d’adoption de l’agilité en vaille la peine – mais ils n’ont pas vu les changements majeurs qu’ils estiment qu’Agile leur avait promis. C'est l'idée principale derrière le changement de mentalité : « devenir agile » fait référence à aider l'équipe à développer un état d'esprit productif.
Cependant, que signifie exactement « changement de mentalité » ? Travailler dans une équipe logicielle implique de planifier, concevoir, développer et publier des logiciels au quotidien. Quel lien la « mentalité » a-t-elle avec cela ? Il s'avère que la façon dont vous et vos coéquipiers les abordez affecte de nombreuses procédures que vous utilisez dans votre travail quotidien.
Voici une illustration. Le standup quotidien, un rassemblement où les membres de l'équipe discutent de leurs objectifs et de leurs problèmes, est l'une des méthodes agiles les plus populaires utilisées par les équipes. Nous gardons la réunion brève en demandant à tout le monde de rester debout tout le temps. L'ajout d'un stand-up quotidien à un projet s'est avéré très efficace pour de nombreuses équipes.

Comprendre les valeurs Agile (Manifeste Agile)

  • Individu et interactions sur les processus et les outils
  • Logiciel fonctionnel sur une documentation complète
  • Collaboration client lors de la négociation du contrat
  • Répondre au changement en suivant un plan

POINTS CLÉS SUR LES VALEURS AGILE

• Le Manifeste Agile contient des valeurs et des idées communes qui conduisent à des équipes efficaces.
• « Individus et interactions plutôt que processus et outils » signifie que l'équipe doit se concentrer d'abord sur les membres de l'équipe et sur la manière dont ils communiquent, puis sur les outils et pratiques qu'ils utilisent.
• « Un logiciel fonctionnel plutôt qu'une documentation complète » signifie qu'il est plus important de fournir un logiciel qui répond aux besoins des utilisateurs que de fournir une spécification qui le décrit.
• Un logiciel fonctionnel signifie un logiciel qui apporte de la valeur à l'entreprise.
• « Collaboration client plutôt que négociation de contrat » signifie traiter tout le monde comme s'ils faisaient partie de la même équipe.
• De nombreuses équipes agiles efficaces traitent le propriétaire du produit comme un membre de l'équipe de projet avec lequel collaborer, plutôt que comme un client ou un client avec qui négocier.
• « Réagir au changement plutôt qu'en suivant un plan » signifie reconnaître que les plans deviennent inexacts et qu'il est plus important de livrer le logiciel que de mettre en œuvre le plan.
• Un tableau de tâches est un outil de planification agile dans lequel les user stories sont attachées à un tableau et classées en colonnes en fonction de leur statut dans le projet ou l'itération en cours.

Les 12 principes du logiciel Agile

  1. Notre plus grande priorité est de satisfaire le client grâce à une livraison rapide et continue de logiciels précieux. Le client a toujours raison.

  2. Accueillez les exigences changeantes, même tard dans le développement. Les processus agiles exploitent le changement pour offrir un avantage concurrentiel au client. Cela signifie :
    a. Personne n'a de « problèmes » quand il y a un changement.
    b. Nous sommes tous dans le même bateau. Tout le monde collabore.
    c. Nous ne restons pas assis sur le changement jusqu'à ce qu'il soit trop tard.
    d. Nous arrêtons de considérer le changement comme des erreurs.
    e.Nous apprenons des changements. C'est le moyen le plus efficace pour une équipe de grandir et de s'améliorer dans la création de logiciels ensemble.

  3. 작업 소프트웨어를 2주에서 2개월에 걸쳐 자주 제공하되 기간은 더 짧은 것이 좋습니다. 기한이 정해진 반복을 통해 작동하는 소프트웨어를 자주 제공함으로써 애자일 팀은 고객에게 최고의 가치를 제공할 수 있도록 프로젝트를 지속적으로 조정합니다

  4. 개발팀 내에서 그리고 개발팀 내에서 정보를 전달하는 가장 효율적이고 효과적인 방법은 직접 대면하는 대화입니다. 팀원들이 직접 대면하여 의사소통하지 않을 때, 그들은 전반적인 내용에는 동의하지만 결국에는 다른 목표를 향해 노력하게 될 수 있습니다. 포괄적인 문서화는 모호성을 쉽게 도입함으로써 상황을 더욱 악화시킬 수 있습니다.

  5. 프로젝트 전반에 걸쳐 비즈니스 분석가와 개발자가 매일 협업하면 효율성이 높아집니다. 이는 비즈니스 전문가가 팀 성과를 검토하고 의견을 제공하기 위해 프로젝트가 끝날 때까지 기다려야 하며 프로젝트의 이 시점에서 수정을 마무리하는 데 훨씬 더 많은 비용이 들기 때문입니다.

  6. 의욕이 넘치는 개인을 중심으로 프로젝트를 구축하세요. 그들에게 필요한 환경과 지원을 제공하고 그들이 일을 완수할 것이라고 믿으세요.

  7. 작동하는 소프트웨어는 진행 상황의 주요 척도입니다. 모든 사람에게 프로젝트 상태에 대한 최신 업데이트를 제공하는 것은 진행 보고서보다 더 좋습니다. 팀이 성취한 내용을 전달하는 가장 효과적인 방법이기 때문입니다. 이것이 민첩한 팀이 반복 개발을 사용하는 이유 중 하나입니다. 각 반복이 끝날 때마다 작동하는 소프트웨어를 제공하고 팀이 수행한 작업을 모든 사람에게 정확하게 보여주는 실제 제품 시연을 수행함으로써 오해가 거의 불가능한 방식으로 모든 사람에게 소프트웨어 진행 상황에 대한 최신 정보를 제공합니다.

  8. 민첩한 프로세스는 지속 가능한 개발을 촉진합니다. 후원자, 개발자, 사용자가 무한정 일정한 속도를 유지할 수 있어야 합니다.

  9. 기술적 우수성과 좋은 디자인에 대한 지속적인 관심이 민첩성을 향상시킵니다.

  10. 단순성, 즉 완료되지 않은 작업의 양을 극대화하는 기술은 필수적입니다. 애자일 팀은 불필요한 기능이나 지나치게 복잡한 소프트웨어를 구축하지 않음으로써 솔루션을 최대한 단순하게 유지합니다.

  11. 최고의 아키텍처, 요구 사항 및 디자인은 자기 조직화 팀에서 나옵니다. 자기 조직화 팀은 제품 구상부터 프로젝트 관리, 설계 및 구현에 이르기까지 프로젝트의 모든 측면에 대한 책임을 공유합니다.

  12. 정기적으로 팀은 더욱 효과적인 방법을 숙고한 다음 그에 따라 행동을 조정하고 조정합니다. 각 반복 후와 마지막에 배운 교훈을 되돌아보고 이야기하는 시간을 가집니다. 프로젝트를 통해 애자일 팀은 지속적으로 소프트웨어 구축 능력을 향상합니다.

인기 있는 애자일 방법론

간단한 정의:
스크럼, 익스트림 프로그래밍(XP), 린 및 칸반

1. 스크럼 및 자기 조직화 팀
스크럼은 Agile 프로젝트 관리의 점진적인 발전, 지속적인 개선 및 협력을 강조하는 강력한 프레임워크입니다. 스크럼은 작은 단위로 가치를 전달하는 것을 강조하고 강력한 팀 역학을 육성함으로써 조직이 제품 개발의 복잡성과 불확실성을 헤쳐 나갈 수 있도록 지원합니다.

2. 익스트림 프로그래밍(XP)
강력한 애자일 방법론인 익스트림 프로그래밍은 기술적 품질뿐만 아니라 클라이언트와 개발자의 긴밀한 협력에 중점을 둡니다. 쌍 프로그래밍, TDD 및 지속적인 통합과 같은 기술을 사용하여 XP는 빠르게 변화하는 환경에서 사용자 요구를 충족하는 뛰어난 소프트웨어를 생산하는 팀을 지원합니다. 피드백, 단순성 및 의사소통에 중점을 두어 요구 사항이 자주 변경되는 프로젝트에 특히 효과적입니다.

3. 린
Agile 내에서 Lean 방법론은 효율성, 지속적인 개선 및 고객 만족을 강조하는 동시에 낭비를 최소화하면서 최대 가치를 제공합니다. 팀은 Lean 개념과 관행을 구현하여 협업 능력을 향상하고, 변화하는 요구 사항에 보다 신속하게 대응하고, 운영을 간소화할 수 있습니다. 이 방법은 유연성과 고객 중심 개발이라는 Agile 원칙과 잘 어울리므로 현대 소프트웨어 개발에서 강력한 전술이 됩니다.

4. 칸반
효과적인 애자일 방법론 Kanban은 효율성, 시각적 관리 및 지속적인 개발에 중점을 둡니다. Kanban 보드 및 개념의 구현을 통해 팀은 워크플로 관리를 개선하고 협업을 촉진하며 고객 가치 제공을 높일 수 있습니다. 적응성과 흐름에 중점을 두기 때문에 우선 순위와 요구 사항이 정기적으로 바뀌는 환경에서 특히 효과적입니다.

Unlocking Agile: Beyond the framework
上の図は、スクラム、XP、リーンがすべて中核にアジャイルの価値観を持ち、いくつかの価値観、アイデア、実践を相互に共有していることを示しています。

アジャイル ソフトウェア開発のライフ サイクル

アジャイル SDLC は、製品が最初から最後まで進む際に通過する構造化された一連の段階です。これには 6 つのフェーズが含まれています:
1.コンセプト: プロジェクトの範囲と優先順位を定義する
2.導入: プロジェクト要件に従ってアジャイル チームを構築します
3.反復: 顧客のフィードバックを考慮したコードを作成します
4.リリース: コードをテストし、問題があればトラブルシューティングします。これらすべてが完了すると、製品の最終イテレーションを本番環境にリリースできます。
5.メンテナンス: 製品の保守性を維持するために継続的な技術サポートを提供します
6.廃止: 製品の寿命の終わり。多くの場合、新しい製品の開始と一致します。製品が新しいソフトウェアに置き換えられる場合、またはシステム自体が時代遅れになるか、時間の経過とともに組織と互換性がなくなる場合、製品はこの段階に入ります。ソフトウェア開発チームは、最初にソフトウェアが廃止されることをユーザーに通知します。代替者がいる場合、ユーザーは新しいシステムに移行されます。

チームが選択するプロジェクト管理アプローチに応じて、アジャイルのライフサイクルは若干異なります。たとえば、スクラム チームは、イテレーションに相当するスプリントと呼ばれる短い間隔で動作します。さらに、スクラム マスターなど、明確に定義された役割があります。一方、カンバン チームは、必要な役割を持たず、継続的なフローのように動作します。エクストリーム プログラミングも、チームがエンジニアリング技術を優先し、短い反復で作業する例です。ただし、すべてのソフトウェア開発チームの目標は同じです。それは、動作するソフトウェアを期限までにユーザーに提供することです。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn