Przejdź do głównej zawartości

Aplikacja 'Perfect Life' - planowanie funkcjonalności

W poprzednim wpisie przedstawiłem budowę historii użytkownika(ang. User Story).
Dzisiaj korzystając z tego narzędzia zaplanujemy kilka funkcjonalności.

Czas na zaplanowanie funkcjonalności aplikacji mobilnej Perfect Life.
Aplikacja jest tworzona w oparciu o technologię Xamarin.Forms.
Póki co jednak abstrahując od rozwiązań technologicznych skupimy się na funkcjonalnościach. Dobre planowanie swojej pracy to podstawa sukcesu każdego projektu programistycznego.

US1: Jako użytkownik aplikacji mobilnej chcę ekran logowania aby mieć możliwość zapisywania swoich postępów
US2: Jako użytkownik aplikacji mobilnej chcę mieć kalkulator wskaźnika BMI aby móc mierzyć poziom swojej kondycji
US3: Jako użytkownik aplikacji mobilnej chcę widzieć wykresy aby móc wizualnie interpretować swoje postępy
US4: Jako użytkownik aplikacji mobilnej chcę mieć możliwość rozwiązania quizu, żeby zbadać wskaźnik Body Age
US5: Jako użytkownik aplikacji mobilnej chcę pobierać pliki PDF aby mieć dostęp do planów dietetycznych
US6: Jako administrator aplikacji chcę zapisywać dane telemetryczne aby móc analizować zmianę liczby użytkowników
US7: Jako użytkownik aplikacji mobilnej chcę mieć możliwość analizy własnego zdjęcia, aby móc obiektywnie sprawdzić na ile lat wyglądam


Jak widać zaplanowałem 7 funkcjonalności.
Najważniejsza korzyść płynąca z wykorzystania narzędzia User Story polega jednak na tym ile informacji możemy wyciągnąć z kilku linijek tekstu.
Mając opracowane historie użytkownika możemy natychmiast odpowiedzieć na najczęściej zadawane pytania. A więc:

Programista może zadać nam pytanie: Co należy zaimplementować w aplikacji 'Perfect Life'?
Odpowiadamy:
- ekran logowania
- kalkulator wskaźnika BMI
- wykresy
- rozwiązywanie quizu
- pobieranie plików PDF
- zbieranie danych telemetrycznych
- analiza zdjęcia

Użytkownik może zapytać nas: Jakie będę miał korzyści korzystając z aplikacji 'Perfect Life'?
Odpowiemy wtedy:
- Możesz zapisywać swoje postępy
- Możesz mierzyć poziom swojej kondycji
- Możesz interpretować wizualnie swoje postępy
- Możesz zbadać swój wskaźnik Body Age
- Możesz pobrać plany dietetyczne
- (US6 nie dotyczy bezpośrednio użytkownika)
- Możesz sprawdzić na ile lat wyglądasz

Klient który zamawia oprogramowanie or razu otrzymuje takie informacje jak:
- Korzyści dla użytkowników aplikacji
- Jakie prace programistyczne będą wykonywane w ramach implementacji

Jak widać User Story to bardzo przydatne narzędzie, które może poprawić komunikację w zespole, ponieważ każdy uczestnik procesu wytwarzania oprogramowania (czyli: klient, programiści, testerzy, scrum master, project manager, użytkownicy ) mają dostęp do tych samych informacji. Każdy wie jakie funkcjonalności będą implementowane, w jakiej kolejności. Programiści i testerzy są mogą skupić się na potrzebach użytkownika i zapewnieniu aby aplikacja była jak najbardziej spójna z jego oczekiwaniami. Co więcej jeśli przygotujemy listę historii użytkownika możemy przedstawić ją użytkownikom i prosić o wniesienie poprawek, sprecyzowanie swoich oczekiwań wobec funkcjonalności.

Podczas prac programistycznych dla każdej historii użytkownika będziemy tworzyć zestaw scenariuszy, które wykorzystamy jako nasze kryteria akceptacji(kryteria akceptacji pomogą nam w testowaniu i stwierdzeniu czy dana funkcjonalność została zaimplementowana zgodnie z wcześniejszymi ustaleniami). Bardzo lubię podejście Behaviour Driven Development (w skrócie BDD) i opowiem o nim więcej w momencie kiedy będziemy tworzyli pierwsze scenariusze. Pokaże wtedy czym jest język Gherkin i narzędzie Specflow. Zapewniam, że będzie interesująco.

Komentarze

  1. Świetny wpis Darek. Mam kolejny pomysł na nowe user story.
    Jako użytkownik aplikacji chce mieć możliwość propozycji planów treningowych i propozycji miejsc gdzie mogę uprawiać sporty.

    OdpowiedzUsuń
  2. Cześć Bogusław! Dzięki za pozytywne słowa.
    Czyli chodzi Ci o to, że użytkownicy będą mogli otrzymywać od aplikacji plany treningowe i sugerowane miejsca gdzie można na przykład pograć w squasha albo tenisa? Fajny pomysł na funkcjonalność. Już myślę nawet co trzeba będzie zaimplementować aby go wdrożyć.

    OdpowiedzUsuń
  3. Tak dokładnie o to chodzi, dzięki temu mógłbyś promować lokalne kluby sportowe.

    OdpowiedzUsuń
  4. ... albo promować te kluby, które za to zapłacą ;)

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Unleash the power of ChatGPT in your C# applications with NGpt - C# OpenAI GPT client

Meet NGpt - OpenAI GPT C# client library that will make your conversations with ChatGPT a breeze! Have you ever been struggling building your own smart AI application in C#? Well, now you can use ChatGpt inside your application! Introducing NGpt, the powerful .NET library that lets you integrate ChatGPT seamlessly into your C# applications. No more nigts spent on building your own AI solitions, no more convoluted logic and building complex business rules - just pure AI bliss. In this blog post, we'll dive into the wonderful world of NGpt and show you how easy it is to use. You might even find a few laughs along the way. The Magic of NGpt NGpt is a transient fault-tolerant .NET 6 OpenAI client that simplifies ChatGPT integration for C# developers. It's like your friendly neighborhood Spider-Man - always there to help you out when you need it most. With just your OpenAI API key, you can start coding AI applications in C# faster than you can say "Peter Parker." Let&

Specflow czyli BDD w praktyce

Dzisiaj pokażę w praktyce w jaki sposób zbieram wymagania korzystając z narzędzia Specflow. Na początku przypomnę nasze historie użtkownika. Potem skonfigurujemy dodatek Specflow Visual Studio. Na końcu pokażę jak wygląda język Gherkin i zaimplementujemy pierwszą historię użytkownika US1. Oto lista funkcjonalności, które będę implementował w aplikacji Perfect Life: US1: Jako użytkownik aplikacji mobilnej chcę ekran logowania aby mieć możliwość zapisywania swoich postępów US2: Jako użytkownik aplikacji mobilnej chcę mieć kalkulator wskaźnika BMI aby móc mierzyć poziom swojej kondycji US3: Jako użytkownik aplikacji mobilnej chcę widzieć wykresy aby móc wizualnie interpretować swoje postępy US4: Jako użytkownik aplikacji mobilnej chcę mieć możliwość rozwiązania quizu, żeby zbadać wskaźnik Body Age US5: Jako użytkownik aplikacji mobilnej chcę pobierać pliki PDF aby mieć dostęp do planów dietetycznych US6: Jako administrator aplikacji chcę zapisywać dane telemetryczne aby móc an

How to call webAPI service in Xamarin?

In the last few weeks I worked on the web service written in ASP.NET Core. I had a plan to connect the Xamarin application to this web service. Today I'll show you how you can connect your Xamarin app to web service located anywhere in the cloud. First we need to have a web service deployed, which is our server-side part of the system. I describe how to create a web service in ASP.NET COre in my previous post: . Today I'll demonstrate how it works from client perspective, in our case it's Xamarin.Forms application but web application or desktop application can use exactly the same code. This is the great benefit of using C# language - we can use the same code on multiple platforms. OK, I bet you're interested in the code. Let's jump to the code. This is the final version of the client class that I can use to save and retrieve data from web service: The class design is straightforward. It has 2 public methods which encapsulate 2 functionalities: adding s