Jak nadzorować pisanie oprogramowania przez grupę programistów ?

0

Mam dość duże oprogramowanie wielomodułowe, wielostanowiskowe napisane w Visual C#.net. Cały czas dopisujemy nowe funkcjonalności (to już ponad 10 lat). Obecnie zatrudniam 2 programistów. Planuję oprogramowanie szybciej rozwijać, unowocześniać tzn. dopisać współpracę z mobile, komunikację z WEB, analizatory, powiadomienia, alarmy, zoptymalizować BD oraz poprawić wygląd stosując devexpress. Zamierzam nawiązać współpracę z programistami i grupą programistów na zlecenie lub stałe zlecenia. Chcę osobiście nadzorować proces dopisywania w ten sposób, by poświęcać minimum czasu, ale osiągnąć maksymalny efekt. Dokładnie: wiedzieć kto, co i kiedy dopisał lub wprowadził poprawkę. Niestety nigdy tego nie robiłem, nie chcę się uczyć programować, tylko nadzorować, żeby dopisane funkcjonalności były szybko dopisywane i dobrze działały. Od czego rozpocząć ? Jak zabrać się za nadzór ? Kto mógłby mi w tym pomóc, gdzie szukać ? Zapisałem się na to forum z myślą, że tutaj znajdę nie tylko odpowiedzi na te i inne pytania, ale profesjonalną pomoc. Radek

1

Dokładnie: wiedzieć kto, co i kiedy dopisał lub wprowadził poprawkę

To załatwiają systemy kontroli wersji, np. Git.

0

Postaw instancję Team Foundation Server, który wyśmienicie współpracuje z Visual Studio, jeżeli z niego korzystacie. Będziesz miał dostęp do aplikacji webowej w której będziesz mógł zarządzać całym projektem.

4

tylko nadzorować, żeby dopisane funkcjonalności były szybko dopisywane i dobrze działały. Od czego rozpocząć?

Od zatrudnienia dobrych programistów i nie bawienia sie w jakieś nadzorowanie.

0

A ten program Team Foundation Server, to pomógłbyś mi zainstalować i pokazałbyś jak się nim posługiwać ?
AD Dobrych programistów, chętnie zatrudnię jeszcze kilku, niestety biznes rozwijam powoli, więc i na inwestycje też mam ograniczone środki. Ale mam Klientów, którzy gotowi są zapłacić za przyśpieszenie pisania oprogramowania. Mogę się też dogadać na zapłatę w ratach, miesięcznych...

4

Pamiętaj że są 3 elementy -> szybko, porządnie, tanio i możesz z nich wybrać tylko 2. Jak zatrudnisz studenta to może być tanio, ale albo będzie pisał powoli albo kod będzie bardzo złej jakości. Z drugiej strony jak weźmiesz jakiegoś doświadczonego developera to będzie szybko i porządnie, ale jednocześnie nie będzie tanio. Innej opcji nie ma. No i pamiętaj że jeśli wybierzesz opcje numer 1 to powstaje nowy problem -> skoro ty się na tym nie znasz to trudno ci będzie ocenić jakość kodu.
A musisz wiedzieć że jeśli planujesz coś rozwijać dalej to jakość ma kolosalne znaczenie. Wiele firm popełniło taki błąd kilka lat temu kontraktując firmy z indii, bo okazało się że klepali kod szybko i tanio, ale potem nie dało się tego ani rozwijać ani utrzymywać i koszty łatania błędów wielokrotnie przekraczały "oszczędności" związane z tańszymi programistami z indii.

0

Pamiętam. Można chyba prosto, szybko i skutecznie. Zatrudniam 1 już kilka lat, i 1 studenta też przez ponad rok. Właściwie, to jeszcze jest kierownik, no i 2 wdrożeniowców tego softu u Klientów. JAKOŚĆ OPROGRAMOWANIA mnie bardzo interesuje. Nie chcę "oszczędzać", ale już mam "niemiłe doświadczenie" z kilkoma "programistami". Widać nie trafiłem na "dobrych". Tych co mam uważam za dobrych. Powoli się nie wyrabiają, no, a Klienci chcą więcej, szybciej... Chcę mieć faktyczny nadzór nad dopisywaniem oprogramowania, usuwaniem błędów. Nie pisałbym na tym forum, gdybym nie miał Klientów i kasy na inwestycje. Nie wiem, czy i jak mógłbyś mi pomóc.

3

Nadzór to złe słowo. Moim zdaniem potrzebujesz:

Issue tracker pomaga zobaczyć ile rzeczy jest do zrobienia, ile błędów pojawiło się w międzyczasie i ile czasu schodzi na implementacje i poprawki.

0

Rzeczywiście, nadzór to złe słowo. Masz rację, potrzebuję dokładnie tak, jak napisałeś. Przeczytam. Sądzę, że najpierw jakiś soft (jira obiło mi się o uszy), później jakiś PM (dobry programista analityk), programiści, testerzy. Jeżeli chodzi o czasy, to wolę mieć to w zadaniach w sofcie ERP, będę miał kontrolę nad kosztami. Gdzie mogę znaleźć kogoś, kto rzeczywiście poprowadzi dobrze tak duży projekt ?

0

przykładowo github i prywatne repozytorium w nim pozwoli Ci ogarnąc trackera, repozytorium kodu i dokumentację, za niedużą opłatą. Dodatkowo nie trzeba nic instalować.
Ale zgadzam się z @Shalom po pierwsze programistów - chociaż 1 dobrego.

Gdzie mogę znaleźć kogoś, kto rzeczywiście poprowadzi dobrze tak duży projekt ?

To co masz brzmi raczej jak mały projekt - raczej dobry senior programista Ci wszystko pomoże ogarnąć. A znaleźć można przez ogłoszenia o pracy (np. na 4programmers). Pytanie czy Cię stać ....

0

Przeczytałem, jak mi doradzałeś (Shalom) i to od A do Z. Wygląda na to, że nie doceniłem testerów, błąd... U mnie zajmują się tym doraźnie wdrożeniowcy. (Ad2 Jarek): Może być i senior, byłe miał DOŚWIADCZENIE w takim "małym" projekcie jak mój. Może być i umowa o pracę, wolę jednak "zlecenie", "dzieło", "współpraca", przynajmniej na początek. Czy mnie stać - tak. Na dobrego. Może nawet na kilku. Zastanowić się należy tylko nad kolejnością:

  1. sofcik
  2. tester
  3. senior
  4. programiści (2 na 1 testera)
    Dobra, czy 3,1,2,4 ?
0

Masz trudny problem bo z jednej strony piszesz:

"niestety biznes rozwijam powoli, więc i na inwestycje też mam ograniczone środki."

Może być i umowa o pracę, wolę jednak "zlecenie", "dzieło", "współpraca", przynajmniej na początek.

a potem

Czy mnie stać - tak. Na dobrego. Może nawet na kilku

Na oko i z daleka taki gość, którego potrzebujesz jest warty ponad 200k PLN rocznie...Senior -magik- doradca. Każdy przedsiębiorca marzy, że dostanie takiego w cenie studenta (i czasem się to zdarza:-) ). Ale, gdyby to było takie proste - to może bym sam był przedsiębiorcą.

Zrób ogłoszenie - pogadaj z tymi, którzy przyjdą - niech powiedzą na rozmowie co proponują za rozwiązania. (tylko uczciwie podaj co masz - niech nawet zajrzą w kod).
Jak się nie znasz na kodowaniu to użyj czegoś w stylu Codility do odsiewu gawędziarzy od programistów.
Może Ci się poszczęści i ktoś poda akceptowalną stawkę, będziesz też musiał użyć intuicji. Podpowiedź - dobry do współpracy gość raczej nie będzie od razu krzyczał: "Panie, kto tu Panu tak sp..."
(choć tak dokładnie pomyśli).

0

Tak, Mam problem, ale nie finansowy. Opisałem dokładnie jaki. I coś już się dowiedziałem (dziękuję Shalom).
Uważam, że nie potrzebuję seniora-doradcy, ponad 10 lat już sprzedaję ten "sofcik", więc sobie radzę. Raczej nie może być to magik. Jeżeli już to dobrego, sumiennego "rzemieślnika", który będzie zarabiał coraz więcej. 16K/m to dość wygórowana stawka, jednakże jak potrafi, pokaże, zrobi - nie ma sprawy (koniec końcem mam aktualnie ponad 100 umów z Klientami). Jeżeli chodzi o jakość softu, to w 2015 firma pisząca oprogramowania na zlecenia (duża) wykonała na moje zlecenie audyt źródeł i oceniła go mniej-więcej na "niezły". Nie muszę marzyć, że "dostanę" seniora "w cenie" studenta, bo jak napisałeś senior "wart" jest więcej. Ja ludzi "nie kupuję", ja z nimi pracuję lub oni pracują dla mojej firmy lub oni ze mną współpracują. To jest proste, bardzo, bardzo proste - zostań przedsiębiorcą.
Ale tak w temacie, to może nie chodzi o polemikę, jeno skutek. Są jeszcze jakieś inne fora dla programistów - seniorów, menadżerów, czy "głównodowodzących" pisaniem oprogramowania ?

1

Cały czas dopisujemy nowe funkcjonalności (to już ponad 10 lat).

Ok.

Obecnie zatrudniam 2 programistów.

Ok.

Zamierzam nawiązać współpracę z programistami i grupą programistów na zlecenie lub stałe zlecenia.

No to jeśli masz już dwóch programistów, których uważasz za dobrych ( Tych co mam uważam za dobrych) i którzy są wdrożeni w projekt to czy nie możesz zrobić jednego z nich leadem i kazać im zrekrutować 3 programistę do zespołu?

Z tego co napisałeś, to nie posiadasz wiedzy ani na temat programowania czy zarządzania projektem programistycznym ( Niestety nigdy tego nie robiłem, nie chcę się uczyć programować, tylko nadzorować, żeby dopisane funkcjonalności były szybko dopisywane i dobrze działały. Od czego rozpocząć ? Jak zabrać się za nadzór ? Kto mógłby mi w tym pomóc, gdzie szukać ?)

Więc trochę nie rozumiem skąd wynika to przekonanie:

Chcę osobiście nadzorować proces dopisywania w ten sposób,

Czyżby usilna potrzeba kontroli nad wszystkim, nawet nad tym, czego się nie umie nadzorować? A nie lepiej delegować odpowiedzialności, w tym odpowiedzialność kierowania projektem do osoby, której ufasz i która się sprawdziła w projekcie?

chętnie zatrudnię jeszcze kilku,

Powoli. Im więcej programistów tym trudniej się nimi zarządza. Wydaje mi się, że lepiej zacząć od jednego, dwóch.

0

Dzięki za odpowiedź [LukeJL], właściwie, to 1 z nich jest leaderem. Jak zaczął się nie wyrabiać postanowiłem zatrudnić kolejnego. Ten drugi został zatrudniony do pomocy ponad rok temu (student). Nie mam wiedzy na temat programowania czy zarządzania projektem programistycznym. Chcę jedynie sprawować nadzór (kontrolę), to złe słowo otrzymywać automatyczny dziennik zmian dokonywanych w projekcie (źródłach) z identyfikacją miejsca dokonania zmian (nowa funkcjonalność, moduł rcp, bilansowanie czasu pracy, poprawa błędu nr 0, i czasu z postępem zmian co 1h). Zdaję sobie sprawę, że podnieca mnie programowanie, ale jak mógłbym się trochę nauczyć, to może... A już kierowanie projektem, kilkoma programistami, no, to odpada. Tego uczyć trzeba się bardzo długo. Wracając do tematu, uważam, że po kolei - im mniej programistów - tym lepiej. Zapomniałem o testerze (automat) i tu można dobrze wpłynąć na jakość. Zastanawiam się nad kolejnością punktów w planie:

  1. sofcik (automatyczny dziennik zmian w projekcie)
  2. tester
  3. senior
  4. kolejni programiści (po kolei 1, 1 tester, drugi)
    Może lepiej 3,1,2,4 ?
0

Ja napisze tylko jedno co jest bardzo wazne, a czesto managerowie czy szefowie o tym zapominaja

  • Programista to nie jest pracownik fabryczny tylko umyslowy. Jego praca jest kreatywna, wiec trzeba im pozwolic na to by byli kreatywni

Ja mam tak, ze jezeli ktos by mnie kontrolowal i patrzyl za plecami to po prostu bym tam nie pracowal (lub nie chcial, a nastawienie ma bardzo duzo jezeli chodzi o efektywnosc pracownika). Trzeba miec troche zaufania.

Duzo lepiej jakbys wprowadzil AGILE z SCRUM to wtedy wiedzialbys

  1. jakie sa 3 miesieczne plany wprzod plus minus
  2. wiedzialbys co chca programisci zrobic w ciagu jednego sprintu
  3. dla wygody pracownikow, jezeli bedziesz miec tylko 3-4 programistow to oszczedzilbym daily standup
0

@Radosław Krzypkowski

automatyczny dziennik zmian dokonywanych w projekcie (źródłach) z identyfikacją miejsca dokonania zmian (nowa funkcjonalność, moduł rcp, bilansowanie czasu pracy, poprawa błędu nr 0, i czasu z postępem zmian co 1h)

do tego nie trzeba nic specjalnego bo programiści sami korzystają z narzędzi do tego ;) Issue trackery zwykle można powiazać z repozytorium kodu i bez problemu można połączyć sobie zmiany w kodzie z konkretnym taskiem. A samo repozytorium pokazuje dokładnie kto, kiedy i jakie zmiany wprowadził. Zwykle wystarczy że wprowadzając zmiany podajemy ID zadania w issue trackerze i atomatycznie pojawia sie tam link do tych zmian.

0

@Radosław Krzypkowski:
Odnosząc się do tego co wyżej w kwestii softu - programiści z jakimś doświadczeniem sami to wszystko robią i zwykle wiedzą przynajmniej czego potrzebują. Jak tego wszystkiego sobie do tej pory nie zrobili - to strasznie słabo. Tu też jedna uwaga - potrzebujesz kogoś kto wie jak się tych narzędzi używa - samo zainstalowanie softu nic nie da. I lepiej wziąć soft, który programiści wybiorą niż im narzucić (niektóre trackery są obrzydliwe).

0

@Radosław Krzypkowski: obecnie chyba najlepszym rozwiązaniem dla Ciebie byłaby własna instancja GitLaba. Dzięki temu masz:

Jako flow polecam takie podejście:

  • jest jedno blessed repo, z którego wszyscy pobierają zmiany
  • każdy z pracujących ma swój własny fork, na który wypycha zmiany
  • każdy pracuje na osobnej gałęzi w swoim własnym repo i tam może psuć do woli
2

Nie chcę "oszczędzać", ale już mam "niemiłe doświadczenie" z kilkoma "programistami". Widać nie trafiłem na "dobrych".

Może, ale to nie zawsze jest takie oczywiste. Bo zdarza się, że programista jest dobry, tylko projekt albo jego zarządzanie do niczego. I dobry ale dopiero wdrażany w projekt programista jest oceniany źle, bo się „wymądrza” albo krytykuje.

0

No, już jestem. Czytałem wszystkie uwagi, ale mam coraz większy mętlik w głowie. Zdecydowanie nie wprowadzę żadnego trzymania za mordę. Chcę jedynie otrzymywać automatyczny dziennik zmian dokonywanych w projekcie (źródłach) z identyfikacją rodzaju (nowa funkcja, poprawa błędu), miejsca dokonania zmian z wpisem co 1h ! Szanuję programistów i wiem, że są oni jeszcze bardziej kreatywni jak daje im się jedynie co ma funkcjonalność robić. Dziennik zamierzam od czasu do czasu przeglądać. Jak zauważę, że jakiś programista któryś kolejny raz poprawia błąd w tej samej funkcjonalności, to się jej przyjrzę, żeby pomóc, podpowiedzieć - z boku wygląda to inaczej. Do rzeczy - było kilka propozycji programów i rozwiązań. Dodatkowo padła propozycja, by to programiści wybrali soft, a nie żebym to ja im narzucił. Bardzo mi się to podoba, im też zależy na porządku !

0
Radosław Krzypkowski napisał(a):

A ten program Team Foundation Server, to pomógłbyś mi zainstalować i pokazałbyś jak się nim posługiwać ?

Team Foundation Server to spore koszty, trzeba mieć maszynę, na niej Windows Server (pewno parę ładnych tysięcy), a na końcu licencję na TFS (jakieś 3tys zł na użytkownika). Nie ma to sensu, lepiej iść w jakieś darmowe rozwiązanie.

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