Szacowany czas stworzenia projektów

1

Hej, chciałbym zapytać (o ile znaleźlibyście chwilę) jak byście oszacowali czas wykonania poniższych projektów dołączając ocenę w skali od 1 do 10 znajomość bibliotek które byście wykorzystali albo wiedzieli jak zaimplementować elementy [gdy dotyczą bezpośrednio programowania] itd.

O budżet nie pytam, bo na celu chciałbym jakąś skalę porównawczą [trochę za mała grupa na statystykę, ale zawsze to jakiś punkt odniesienia] ile zajmują projekty osobom nie wdrożonym, a ile osobie która już wie co robi :).

Nie proszę o wypisanie bibliotek (opcjonalnie jeśli ktoś by zechciał, prosiłbym o język programowania / użyte oprogramowanie)
Prosty schemat NR# godziny ocena_własnej_znajomości_do_projektu [język] [oprogramowanie]
np. 1# 25h 7/10 Java NetBeans
albo 1# 15h 9/10

Oczywiście każdy projekt zakładam że robimy od zera, bez gotowych komponentów z wcześniej już tworzonych projektów.

Projekt #1
Dokumentacja do stworzenia schematu przyłączeń (sieć wewnętrzna firmy) dla stu stanowisk w firmie posiadającej 4 budynki parterowe:
-Wymagane jest rozrysowanie dokładnego umiejscowienia gniazd wraz z przebiegiem kabli.
-Oszacowanie kosztów surowców (kabli, urządzeń itd.)
-Wyliczenie wymaganych urządzeń, switchy, routerów itd.
-Stworzenie tabel zawierających kody i adresy danych gniazd.

Projekt #2
Stworzenie dokumentacji i aplikacji z interfejsem graficznym typu zgadnij liczbę, spełniającą wymogi:
-Różne poziomy trudności (np. zakres 1-100, 1-1000 itd) + możliwość podania własnego zakresu.
-Walidacja informacji wprowadzanych przez użytkownika poprzez wyskakujące okna komunikujące.
-Ranking wyników.
-Podawanie przez komputer czy liczba jest mniejsza, czy większa.
-Mapowanie klawiszy (zatwierdzanie enterem itd).
-Możliwość zapisu i odczytu gry.

Projekt #3
Stworzenie gry platformowej z możliwą kooperacją, zawierającą dokumentację, nie wykorzystując silników do designu gier typu unity. (Czysto kodując i wykorzystując do tego biblioteki danego języka). Gra powinna:
-Prowadzić ranking dla etapów.
-Posiadać bloki co najmniej czterech rodzajów.
-Posiadać ustawienia rozdzielczości.
@Edit: Przez gra kooperacyjna, mam na myśli grę dwóch użytkowników z podzielonym ekranem na jednym komputerze.
Platformowa - gra typu> przedstawionej w pierwszych trzech sekundach filmiku. Tyle że wymagania są dużo niższe, nic się nie musi tam poruszać poza graczem.
Przez bloki, mam na myśli takie elementy po których można chodzić, takie które mogą zabić gracza, takie które pozwalają na większe wybicie się oraz oznaczające metę/start. Grafika również prosta, może być typowo produkcyjna, blok niebieski, czerwony, zielony itd.
Ogólnie w 2d chodzi o przeskakiwanie z platformy A na platformę B, kolizję z sufitem, ścianami i podłogą. [Osobiście bym robił w PyGame, pisałem natomiast w C++ z SFML i nie polecam :D]

Projekt #4
Stworzenie dokumentacji i aplikacji z interfejsem graficznym która pozwala na przeprowadzanie i tworzenie testów, spełniającego wymogi:
-Możliwość wprowadzania własnej punktacji, innej niż 1, 0. W tym możliwość wprowadzania punktów ujemnych.
-Możliwość tworzenia pytań wielokrotnego wyboru, pojedyńczego wyboru, otwartych [do oceny później przez egzaminującego] bądź prawda/fałsz.
-Możliwość dodawania obrazków do pytania.
-Nadawanie hasła do testu, wymaganego do jego modyfikacji.
-Możliwość przewijania tworzonych pytań, do następnego/poprzedniego.
-Możliwość podania ile razy test może zostać wykonany, na przykład 1 raz.
-Serializacja i deserializacja stworzonego testu

-Możliwość logowania użytkowników, w celu potwierdzenia jego tożsamości.
-Możliwość wyboru testu.
-Możliwość wczytania testu do modyfikacji po wprowadzeniu hasła.
@Edit: To taka aplikacja z myślą o nauczycielach w sali komputerowej, albo ośrodkach egzaminacyjnych lub też studiach. Przynajmniej tak sobie to wyobrażałem :). A piszę z tym jak i innymi tutaj, z ciekawości by skonfrontować opinię osób 'zatwardziale akademickich' z osobami które zajmowały się czymś podobnym w praktyce :)

Z góry dziękuję za odpowiedzi :D.

6

Projekt #2
wygląda na jakiś HelloWorld, który się robi między jedną a drugą kawą.

Projekt #3

Stworzenie gry platformowej z możliwą kooperacją, zawierającą dokumentację, nie wykorzystując silników do designu gier typu unity.
(Czysto kodując i wykorzystując do tego biblioteki danego języka). Gra powinna:

  1. Co to jest kooperacja, jakby miała wyglądać? I czy turowo czy real time (to drugie jest od razu ileś razy trudniejsze). Ale ogólnie gry multiplayer, przez sam fakt, że są multiplayer będą trudniejsze do implementacji.
  2. wymogi co do grafiki też mogą być różne. Inaczej się pisze proste sprajty, inaczej koduje się grafę 3D. Co innego jak się ma gotowe assety i tylko bierze od grafika, a co innego jak się robi własne
  3. wymagania dotyczące logiki gry itp.
  4. i wiele innych rzeczy

Czyli ciężko powiedzieć generalnie xD Miesiąc, dwa? Pół roku? Więcej? To zależy od bardziej szczegółowych wymagań.

-Posiadać ustawienia rozdzielczości.

Czyli pewnie dodatkowa robota dla grafika, żeby zrobić assety w kilku rozdzielczościach.

-Posiadać bloki co najmniej czterech rodzajów.

co to są "bloki"?

Projekt #4

Mam wrażenie, że to coś, do czego można by bardzo szybko zrobić działający prototyp (brzydko wyglądający, niezoptymalizowany i być może nie posiadający wszystkich funkcji), ale dopracowanie tego na produkcję trochę by zajęło (z kilka tygodni najmarniej), bo trzeba by zrobić ładne GUI, dobrze zaprojektować interfejs, przemyśleć backend itp.

Poza tym trzeba by się liczyć ze zmianami wymagań albo dodawania nowych.

-Możliwość wprowadzania własnej punktacji, innej niż 1, 0. W tym możliwość wprowadzania punktów ujemnych.
-Możliwość tworzenia pytań wielokrotnego wyboru, pojedyńczego wyboru, otwartych [do oceny później przez egzaminującego] bądź prawda/fałsz.
-Możliwość dodawania obrazków do pytania.

Bo przypuszczam, że na tym by się nie skończyło. Domyślam się, że zaraz pojawiłyby się wymagania np.

  • Możliwość moderacji testów
  • Rankingi testów (tygodniowy, ogólny
  • System rekomendacji testów
  • Możliwość dodawania obrazków nie tylko do pytania, ale również do wyników
  • Integracja z Facebookiem
    I wiele innych.

Więc to zadanie to taki ruchomy cel. Z drugiej strony można by wypuścić apkę w świat i te dalsze opcje dodawać już po wypuszczeniu apki na produkcję, jako dodatkowe ficzery (nie wiem po co ta lista projektów i to szacowanie, ale wyobrażam sobie prawdziwą apkę w realnym świecie, a nie np. zadanie na studia).

0

#1 Nie wiem:)
#2 Jakby chcieć zrobić ten program porządnie, z testami i relatywnie schludnym GUI + dokumentacja to 3MD (Java + JavaFx, 4/10)
#3 Prosta gra, która sprowadza się do napisania własnego silnika fizyki i frameworku. Jest wiele problemów takich jak obliczanie fizyki, przesyłanie grafiki na kartę graficzną, renderowanie itp. Nie wiem co masz na myśli przez kooperacje? Co z grafikami? Zbyt mało informacji żeby to wyestymować, osobiście nie podjął bym się takiego projektu, bo to czasochłonne wymyślanie koła na nowo. Gdybym mógł użyć np LibGDX + box2d, a gra byłaby 2d to powiedziałbym, że 10MD (Java LibGDX Box2d 8/10). W Unity to się robi paroma kliknięciami (przesadzam, wiem;) ) i pewnie dlatego go wykluczyłeś. LibGDX to framework w którym piszesz już wszystko sam.
#4 15MD Java + JavaFX (4/10)

PS wiem, że nie wg schematu ale poradzisz sobie;)
PS2 powiedzmy, że Java to 8/10 wszędzie, a ta ocena w poszczególnych punktach to ocena pozostałych technologii wymienionych.

0

MD traktujecie jako określenie czasu, czy kosztów dla klienta? Spotkałem się z sytuacjami ze np 10MD oznaczalo ze zadanie bedzie trwalo 10 dni i kosztowalo 10 stawek, w innym przypadku bylo ze koszt to 10 stawek a czas wykonania byl okreslony w przyblizeniu na np 30 dni.

0

@Berylo: dlaczego dziwne? Comarch tak stawki podaje. Wyceniają koszt zrobienie jakiejś dodatkowej funkcjonalności na 10MD (czyli 10 dni * stawka dzienna) ale czas jej wykonania określają np na 14 dni roboczych

0

Odnośnie #1 to szacowałbym w oparciu o doświadczenie (swoje) lub rzeczywisty czas konieczny do realizacji tego typu projektu z projektów wcześniejszych.

Na pierwszy rzut oka wychodzi na to, że tego typu projekt powinien zająć ok. 2-4 tyg. pracy czyli od ok. 258 godzin do 458 godzin.
Oczywiście i w krótszym czasie da się to zrobić ale nie ma co przesadzać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1