Cloud

Lundi nuageux I : myCloud Desktop agil entwickelt !

Le service de stockage en nuage myCloud est disponible publiquement depuis le début de l'année 2016. Dans l'esprit d'un produit minimum viable, nous nous sommes d'abord concentrés sur les photos et avons fourni une bonne expérience client pour cette fonctionnalité.

Pourquoi?

Très tôt, grâce à notre analyse des besoins des clients, nous avons identifié la synchronisation des fichiers (myCloud Desktop) comme l'une des prochaines fonctionnalités importantes pour myCloud:

  • Tous les fichiers sont disponibles à tout moment et à jour sur n'importe quel ordinateur ou appareil mobile.
  • Les nouveaux fichiers et les fichiers modifiés sont téléchargés de l'ordinateur vers myCloud.
  • Si un fichier est plus récent dans myCloud que sur l'ordinateur, il sera téléchargé.
  • Les fichiers sont également disponibles 'hors ligne' avec une synchronisation automatique dès qu'ils sont à nouveau en ligne.
  • Toutes les données sont stockées en toute sécurité et de manière illimitée en Suisse.

En quoi est-ce un défi?

La tâche de myCloud Desktop est donc de tenir à jour les fichiers sur tous les ordinateurs des utilisateurs et de les sauvegarder dans myCloud. Cela semble simple, mais ce n'est malheureusement pas le cas:

  • Si un ordinateur est hors ligne, les modifications ne peuvent pas être synchronisées et les utilisateurs travaillent sur des données potentiellement obsolètes.
  • Si les utilisateurs travaillent par exemple sur un fichier avec Word, celui-ci est verrouillé et ne peut pas être mis à jour.
  • Le transfert d'un fichier peut prendre plusieurs minutes, pendant lesquelles le même fichier peut être modifié à nouveau.
  • Et bien plus encore...

Comment myCloud Desktop a-t-il été développé?

En 2016, nous avons eu l'idée que myCloud Desktop vérifie à intervalles rapprochés si un fichier a été créé ou modifié sur l'ordinateur ou dans myCloud. Les différences entre les états respectifs sont ensuite transférées, de sorte que la version la plus récente de chaque fichier est disponible à la fois sur les ordinateurs et dans myCloud. Cette approche s'est avérée trop lente lors des tests pratiques et a fortement affecté l'expérience utilisateur.

Sur la base de ces expériences, deux collègues de Swisscom ont développé en quelques semaines un prototype entièrement fonctionnel pour myCloud Desktop. Le prototype fonctionnait sur la base d'événements, ce qui signifie que chaque modification sur l'ordinateur de l'utilisateur ou dans son compte myCloud était immédiatement synchronisée. Le prototype a ainsi atteint très tôt une vitesse élevée et promettait une bonne expérience utilisateur.

Nous avions maintenant deux idées et deux solutions et nous devions faire un choix:

  • La solution précédente était nettement plus mûre et la livraison aurait été un risque moindre.
  • Le nouveau prototype était rapide et promettait beaucoup, mais il était encore loin d'être un produit fini.

Mais le cadre était fixé, nous avions besoin de myCloud-Desktop jusqu'en mars 2017.

Nous avons donc opté pour une "course de chevaux", que la meilleure solution gagne!

Pour les premiers sprints, nous avons donc défini des étapes difficiles que les équipes respectives devaient atteindre avec le nouveau prototype et avec la solution précédente. Dans l'esprit de "fail fast", une solution était éliminée si les jalons n'étaient pas atteints.

Après le premier sprint, les deux solutions ont rempli les jalons. Cependant, l'équipe de Swisscom a tellement convaincu par sa haute qualité et sa vitesse de développement que le nouveau prototype a été choisi comme base pour myCloud Desktop.

La tâche commune a soudé l'équipe et l'a poussée à donner le meilleur d'elle-même, de sorte que les jalons de novembre 2016 à mars 2017 et donc le plan de release de myCloud Desktop ont pu être respectés.

Comment fonctionne le bureau myCloud?

Le choix d'Electron pour l'application et de Java pour la logique s'est avéré judicieux, car de nombreuses fonctions spécifiques à la plateforme, comme les icônes d'état ou la mise à jour automatique, peuvent être mises en œuvre avec un minimum d'effort.

Qu'avons-nous appris?

  • Les besoins des utilisateurs doivent décider de la priorité des fonctionnalités.
  • Les méthodes de développement agiles motivent l'équipe, aident à se concentrer sur l'essentiel et à corriger rapidement les erreurs de développement.
  • Les sprints courts d'une semaine nous ont permis d'effectuer des corrections de direction à court terme au cours des premiers mois grâce au feedback rapide. Le partage vertical cohérent des user stories a été une condition importante pour le succès des sprints courts.
  • Les rétrospectives et les "fail fast" sont importants. Si les objectifs fixés ne sont pas atteints, des contre-mesures doivent être prises à court terme.
  • Pour le développement de fonctionnalités, Scrum a fait ses preuves chez nous, tandis que pour l'exploitation et la maintenance, Kanban semble plus approprié.
  • L'utilisation cohérente mais réfléchie de composants open source existants était plus efficace pour nous que de développer et de maintenir ces composants nous-mêmes.
Abdurixit Abduxukur

Abdurixit Abduxukur

Cloud Solution Architect

Plus d’articles getIT

Prêts pour Swisscom

Trouve le Job ou l’univers professionnel qui te convient. Où tu veux co-créer et évoluer.

Ce qui nous définit, c’est toi.

Vers les univers professionnels

Vers les postes vacants cybersécurité