Zwolnienie a kariera

Zwolnienie a kariera
JT
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

Pierwsze dwie litery nazwiska, a nie skrót od trolla.
Wyobrażam sobie dynamiczne dzielenie na mniejsze zadania w trakcie robienia i wymianę nimi między osobami, jak to jest w wielu innych branżach gdzie nie kontroluje się odgórnie przydziału zadań do osób.
10 programistów? Ha ha ha, chciałbym żeby w moim mieście były tak duże firmy IT.

edytowany 1x, ostatnio: jacek.tr
0

Słyszałeś o czymś takim jak sub-task? A wiesz, że z subtaska też można zrobić kolejne sub-taski?

0

@jacek.tr a mógłbyś napisać konkretnie na czym polegały te taski ? Pytam z czystej ciekawości.

JT
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
1
Wybitny Terrorysta napisał(a):

@jacek.tr a mógłbyś napisać konkretnie na czym polegały te taski ? Pytam z czystej ciekawości.

Najgorszy ze wszystkich pojedynczy task w tej firmie, gdzie byłem dłużej: zapoznanie się z deklaracjami (skan kartki) na podatek od nieruchomości miasta, dla którego urzędu jest projekt, zaprojektowanie w MySQL Workbenchu znormalizowanego schematu bazy pozwalającej przechowywać ich zawartość, z dziwactwami takimi jak odwołania do ID wierszy w zupełnie innych bazach które widziałem po raz pierwszy, z obsługą załączników do tych deklaracji (także bardzo skomplikowanych), stworzenie w Symfony2 aplikacji webowej pozwalającej przeglądać (z wyszukiwaniem, filtrowaniem...) dodawać, edytować i usuwać takie deklaracje w bazie, gdzie wygląd interfejsu jest taki jak w dołączonym pliku PSD, podłączyć stworzoną aplikację do centralnego systemu uwierzytelniania używanego w innych aplikacjach wchodzących w skład produktu. Maksymalny czas wykonania: 10 dni.

KA
Mi by to miesiąc zajęło co najmniej xd
drorat1
@karolinaa No ale tu jest PHP, nie JAVA, Ty piszesz o Javie czy PHP?
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 2 godziny
  • Postów:8403
3

Piszecie każdy po trochę z sensem, ale hejtujecie po sobie, zamiast spróbować zrozumieć siebie nawzajem.

Moim zdaniem faktycznie czasem daje się jako taski zbyt duże funkcjonalności i rozumiem o co chodzi jackowi.tr, pomimo że niefortunnie się wyraził (bo z jego wypowiedzi można wywnioskować, że on neguje całą ideę tasków).

Jak dla mnie problem jest przede wszystkim w tym, że 1 "task" z perspektywy biznesowej/designu nie musi się równać 1 task programisty.

Dla product ownera taskiem może być "nowy widok strony głównej" którą grafik właśnie zaprojektował w Photoshopie.

A tymczasem programista sobie siada nad kodem i realizuje wizję biznesu/designu i okazuje się, że tak -

  1. żeby przerobić stronę główną trzeba zrefaktoryzować legacy kod w jQuery na kod w Angularze, który jest obecnie używany.
  2. Trzeba również dorobić integrację z 5 różnymi stronami (np. Google Maps, Facebook etc.) bo tak jest w designie.
  3. Trzeba zrobić własny customowy komponent slidera (bo grafik zaszalał i ciężko użyć gotowca).
  4. Trzeba podpiąć się do endpointów w API, żeby pociągnąć dane, które będą się wyświetlać na głównej stronie
  5. potem oczywiście trzeba to jakoś wystylować: najlepiej responsywnie, ale również piksel perfect (co się kłóci z responsywnością często), żeby były super animacje, ale powinno się też odtwarzać na starym Androidze czy IE.

Reasumując - z perspektywy biznesowo-designowej może to być jeden task, a w rzeczywistości programista musi wykonać wiele różnych niezwiązanych do końca ze sobą czynności, żeby wcielić tę wizję.

Słyszałeś o czymś takim jak sub-task? A wiesz, że z subtaska też można zrobić kolejne sub-taski?

I to też jest słuszna uwaga. Jednak sub-taski same się nie zrobią. Zespół musi je wydzielić. Tutaj właśnie się przydaje komunikacja w zespole, zasygnalizowanie zespołowi, że taski są zbyt duże i dyskusja, jak je podzielić na mniejsze.

Podzielenie na mniejsze taski ma też tę zaletę, że w razie czego łatwiej przerzucać taski między osobami. W podanym wyżej przykładzie - np. osoba X, może zrefaktoryzować kod z jQuery na Angulara (podpunkt 1.)., a w tym samym czasie osoba Y tworzy w Angularze serwis, który się będzie łączyć przez AJAX do endpointów w API (podpunkt 4.), bo np. pisała to API, więc wie dokładnie jak go należy używać (co prawda to rodzi niebezpieczeństwo nadmiernej specjalizacji, ale wszystko ma swoje wady).

Jak dla mnie taski powinno się dzielić trochę podobnie jak się dzieli moduły/klasy/funkcje w aplikacjach zachowując zasadę separation of concerns (nie wzystkie taski się da tak podzielić, ale wiele się da...). Jednak nie stanie się to, jeśli taski będą szły z góry, bo dla biznesu/osób nietechnicznych/pseudoseniorów:

zaprojektowanie w MySQL Workbenchu znormalizowanego schematu bazy pozwalającej przechowywać ich zawartość

oraz:

wygląd interfejsu jest taki jak w dołączonym pliku PSD

może być częścią jednego taska, nawet jeśli nie powinny (chociaż to co pisze jacek.tr to już jakaś patologia, z czymś aż takim to się nie spotkałem).


edytowany 2x, ostatnio: LukeJL
WhiteLightning
W pelni sie z Toba zgadzam, brakuje tylko puenty, czegos w stylu ze czasem zespol musi mocno powalczyc zeby miec porzadnie rozplanowany i rozpisany backlog. Nieraz jest to trudniejsze niz sama implementacja pozniej.
LukeJL
Tzn. osobiście uważam, że nie da się wszystkiego zaplanować z wyprzedzeniem. Waterfallowe podejście jakoś się nie sprawdza do końca (bo wyobraziłem sobie zespół, który planuje taski na całe miesiące przed). Najlepiej planuje się często w trakcie robienia już/między sprintami, kiedy zespół może się uczyć na własnych błędach i porażkach...
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 8 godzin
  • Postów:3544
0
jacek.tr napisał(a):

W takim razie czym jest "komunikacja", jeżeli inni oczekują ciszy, której ja nienawidzę?

Poważnie pytam, czego się spodziewałeś? Ale tak szczerze?

W innych branżach np. dziennikarstwie z tego co wiem komunikacja oznacza ciągłe rozmawianie z innymi, robienie wszystkiego razem.

Znam kilku ludzi z tej branży i - uwaga - pracują dosyć podobnie. Kiedy masz wyklepać tekst, to zakładasz słuchawki na uszy i klepiesz.

Dokumentacja do projektu z informacjami dla programisty, a nie końcowego użytkownika? Chyba sobie żartujesz, nikt w Polsce poza megakorporacjami nie ma na to czasu.

Zależy od firmy, coraz częściej czytelny kod + jakiś np. Javadoc do tego to jeden z punktów w kryterium odbioru.

"Taski" to dla mnie największa głupota i nie zmienię zdania.

Skoro postawiłeś sprawę w następujący sposób: "choćby przyszedł ktoś, kto by dał mi niepodważalny dowód to i tak nie zmienię zdania" to rzeczywiście jest mało do dyskusji.

Optymalnie byłoby: nieskończenie wiele nieskończenie małych "tasków", wtedy problem który opisałem nie istnieje, można znaleźć optymalny przydział do osób.

Zakładając zerowy overhead na task może i masz rację. Ale task trzeba stworzyć, podjąć i zamknąć - to zabiera czas. Im mniejszy task tym większy procentowy udział takiego okładu. Ot i tyle.

Szczerze to moim zdaniem idąc do pracy miałeś jakieś swoje wyobrażenie dotyczące pracy w zawodzie programisty - że to jakieś non-stop spotkania, mitingi, briefingi, wspólne zastanawianie się czy prostokąt jest szczególnym przypadkiem kwadratu itp. itd. - i rzeczywistość zweryfikowała Twoje poglądy. Zgodzę się, że cały proces taskowy może być zrealizowany źle. Zgodzę się, że junior pracuje mniej wydajnie od seniora i trzeba to uwzględnić.

Ale z Twoich postów widzę, że masz tendencję do szafowania wyrokami i zamiast szukać rozwiązań po prostu głośno narzekasz.

drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0
jacek.tr napisał(a):

W takim razie czym jest "komunikacja", jeżeli inni oczekują ciszy, której ja nienawidzę?

No to masz, to Ci może coś wyjaśni:
https://pl.wikipedia.org/wiki/Introwersja

W innych branżach np. dziennikarstwie z tego co wiem komunikacja oznacza ciągłe rozmawianie z innymi, robienie wszystkiego razem.

https://pl.wikipedia.org/wiki/Ekstrawersja

Rozumiem że Ty się łapiesz pod to drugie a oni pod to pierwsze?

Widzisz, wystarczyło napisać że nie radzisz sobie z tymi taskami a już masz tutaj zarzuty, że jesteś słaby albo co gorsze trollujesz, nie powiedziałbym też żeby to dobrze wyglądało w oczach rekruterów, dlatego zastanawiam się czy w ogóle szczerość popłaca?

Dokumentacja do projektu z informacjami dla programisty, a nie końcowego użytkownika? Chyba sobie żartujesz, nikt w Polsce poza megakorporacjami nie ma na to czasu.

A nawet gdyby taka była to też może być pisana takim językiem że trudno to zrozumieć, więc tu bym się aż tak nie podniecał. Sądzisz że miałbyś w tym przypadku lepiej?

edytowany 1x, ostatnio: drorat1
W0
"Widzisz, wystarczyło napisać że nie radzisz sobie z tymi taskami a już masz tutaj zarzuty, że jesteś słaby albo co gorsze trollujesz," - no przecież napisał, że INNI się wyrabiają. Czyli w porównaniu do innych JEST słaby - co oczywiście nie jest niczym złym, bo każdy kiedyś zaczynał. Problem jest raczej w tonie wypowiedzi ("ja się dopiero uczę, dlaczego więc inni siedzą w ciszy zamiast ze mną gadać?") i tym, że to już druga firma w której kolega się nie sprawdził - to zaczyna budzić podejrzenia, że problem może leżeć gdzieś w nim.
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
2

@wartek01

Tak jest oczywiście najłatwiej, zwalać na kogoś winę, nie zwracając jednocześnie uwagi na niewygodne fakty. Za co programiści zatrudnieni w tej firmie do diabła biorą pieniądze? Za samo tylko kodowanie? Realizacja tego tasku w jednym z postów wyżej na Symfony jest realna w 10 dni, niestety dla wymiataczy i to przy założeniu że dobrze znają projekt. W jaki sposób ktoś kto dostanie dla przykładu rozbudowę jakiejś kobyły której nie widział nawet na oczy więc dopiero musi się z tym zapoznać (a to zajmuje czas) może sobie dać radę w tak krótkim terminie? Symfony jest niestety stosunkowo skomplikowany, to nie jest CodeIgnither czy tam Kohana, frameworki które wydaje mi się że są jednymi z najprostszych jakie istnieją i stosunkowo łatwe do opanowania.

Co do niewygodnych faktów, fakty są takie że jak się wejdzie na serwisy aukcyjne to mnóstwo firm walczy nie koniecznie najniższą ceną ale często krótkimi terminami realizacji. Jak w tej sytuacji oczekiwać realizacji tego typu wymagań od tych mniej doświadczonych?

edytowany 1x, ostatnio: drorat1
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 8 godzin
  • Postów:3544
0

@drorat1
O czym Ty piszesz? Przecież napisałem, że bycie słabym nie jest niczym zlym. I napisałem, że moje "jechanie" jest raczej związane z tonem wypowiedzi, niż z tym, że ktoś dopiero zaczyna.

Przykładowo:

W takim razie czym jest "komunikacja", jeżeli inni oczekują ciszy, której ja nienawidzę?

Praca programisty w dużej części - w większości nawet - składa się z stukania w klawiaturę nie mówiąc nic. Jeśli ktoś "nienawidzi" ciszy, to nie jest praca dla niego. Ale wiadomo - skoro pan @jacek.tr oczekuje rozmów, to cały zespół musi się spiąć i jego oczekiwaniom sprostać, prawda?

Inna sprawa to to, co dało się wyczytać między wierszami. Jeśli w dwóch różnych firmach narzekano na niego, że jest niesamodzielny i że dużo pyta to być może coś jest na rzeczy. Dodatkowo człowiek ten wyrokował o całym rynku ("na testy mogą sobie pozwolić tylko megakorporacje") na podstawie znajomości dwóch firm, w dodatku takich z mniejszego miasta.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)