10 - Projet de session


Nous formons une startup qui souhaite développer un produit sur appareils mobiles. Nous avons choisi de viser la plateforme Android pour tester le marché avec notre produit avant de s’attaquer aux autres environnements mobiles.

À partir d’une idée initiale, nous allons concevoir et développer l’application en utilisant une approche itérative agile.

Vous constituez l’équipe de développement, mon rôle est de vous épauler et d'encadrer la livraison du projet.

Méthodologie Agile

Description d’un ensemble de principes et recommandations à appliquer dans un contexte de développement logiciel dans le but de faciliter et favoriser le travail d’équipe collaboratif et organisé.

Agile?

  • Planification dynamique, s’adaptant aux changements
  • Développement itératif et évolutif
  • Livraison rapide pour une rétroaction rapide
  • Réponse favorable aux changements

Ou agile?

Cascade vs. Agile

Manifesto

  • Individuals and Interactions over processes and tools
    Environnement auto-organisé favorisant la motivation, valorisation et implication des membres d’une équipe multifonctionnelle
  • Working Software over comprehensive documentation
    Alléger les artéfacts et mettre l’accent sur un produit fonctionnel accélère le cycle rétroaction -> réaction
  • Customer Collaboration over contract negotiation
    Il est très difficile de définir l’ensembles des exigences/besoins dès le départ, le client doit être un partenaire impliqué dans le développement
  • Responding to Change over following a plan
    Privilégier l’amélioration continue et la réponse rapide au changement

Les 12 principes Agile

  1. Customer satisfaction by early and continuous delivery of valuable software
  2. Welcome changing requirements, even in late development
  3. Working software is delivered frequently (weeks rather than months)
  4. Close, daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted
  6. Face-to-face conversation is the best form of communication (co-location)
  7. Working software is the principal measure of progress
  8. Sustainable development, able to maintain a constant pace
  9. Continuous attention to technical excellence and good design
  10. Simplicity—the art of maximizing the amount of work not done—is essential
  11. Best architectures, requirements, and designs emerge from self-organizing teams
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

Objectifs

  • Offrir une méthode de travail aux équipe
  • Réduire les risques associés aux projets logiciels
  • Assurer un apport positif(valeur) maximal constant
  • Offrir une mesure de l’avancement du projet
  • Faciliter la collaboration
  • Encourager la qualité et l’efficacité

Éviter les extrêmes, structure trop rigide ou désorganisation chaotique, pour permettre aux acteurs du projet de vivre une expérience agréable et valorisante.

Proposition de valeur

Agile selon Uncle Bob

Références

Projet

Vous devez réaliser un projet concret de développement d’application mobile.

  • Vous réaliserez ce travail en équipe, je vous supporterai et fournirai un encadrement serré tout au long du projet
  • Chaque membre de l’équipe devra s’impliquer dans toutes les sphères du projet:
    • Conception(modèle de données, interfaces utilisateur, architecture)
    • Programmation(logique, interfaces utilisateur, base de données)
    • Documentation
  • Vous présenterez finalement le résultat de votre travail en classe

Pour favoriser votre motivation à réaliser le travail, vous proposez le concept de l’application que vous développerez. Votre idée devra être approuvée, puis, nous valideront ensemble l’étendue des fonctionnalités à intégrer.

  • L’application suggérée de type CRUDL doit obligatoirement utiliser une base de données via Martha, être suffisamment(pas trop) complexe pour correspondre aux besoins académiques du cours et respecter les standards de la plateforme mobile.
  • Prévoir 2-3 entités par personne, environ 2 CRUDL complets
  • La gestion de l'authentification n'est pas calculée dans la charge de travail puisque qu'elle a été implémentée dans Recipeasy.
  • Chaque membre de l'équipe devra également explorer un concept React Native ou une libraire qui n'a pas été vue en classe
    • Librairie de composants graphiques
    • Stockage local
    • Caméra/Gallerie d'images
    • Internationalisation
    • Thème, light/dark mode
    • 💡!!!

Exemples

Shawi-Info

Un réseau social pour le département

  • Utilisateurs: Inscription, Connexion, Profil
  • Amis: Messages, Amis de mes amis, “check-in”-> Où sont mes amis?
  • Fil d’actualités: Publications, commentaires, réactions
  • Événements: Horaire, Billetterie
  • Entreprises: Offres d’emploi, Cartes d’affaires numériques

eTROC

  • Utilisateurs: Inscription, Connexion, Profil
  • Commerçants: Catalogue, Produits, Avis/Notes
  • Achats: Panier, Commandes
  • Amis: Recommandation de produits, Un recommandations peut entraîner une discussion
  • Livraisons: Suivi des commandes, événements, affichage sur une carte

Plus d'idées!

  • Gestionnaire et calendrier d'événements, ex: activités au département, festivals
  • Application de gestion d'une conférence: horaire, conférenciers, billetterie
  • Mini réseau social/meetup pour les amateurs de XYZ
  • Application de gestion de budgets, séparation entre colocs, suivi des dépenses
  • Journal, garder un historique de nos activités, randonnées, road trip
  • Gestion de projet, suivi de tâches
  • Tinder pour les sorties/événements

Méthodologie

  • Équipes de 2
  • Bitbucket
    • Un responsable par équipe crée le répertoire avec son compte éducationnel et invite les autre membre de l’équipe avec les droits d’écriture
    • Vous devez également m’inviter en lecture seulement: jhoffman@cshawi.ca
  • Discord
    • Une salle privée par équipe est disponible
    • Le canal du cours servira de point de communication commun

Livrables

  1. Analyse de devis
  2. Prototypage
  3. Application fonctionnelle via 3 sprints
    1. Liste/affichage ET documentation mise à jour
    2. Ajout/modification ET documentation mise à jour
    3. Suppression/Polissage ET documentation mise à jour
  4. Livraison
    • Démonstration des fonctionnalités de l'application
    • Code sur git
    • Procédurier
    • Manuel d’utilisateur