If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość
Aktualny czas:0:00Całkowity czas trwania:11:49

Transkrypcja filmu video

W Khan Academy myślimy obecnie nad stworzeniem pewnego oprogramowania i zastanawiamy się, jaką optymalną liczbę programistów zatrudnić, a dokładniej – ile będzie w stanie zrobić jeden programista w trakcie pracy nad tym oprogramowaniem. Przygotowałem arkusz kalkulacyjny, więc tym razem nie będę pisał ręcznie. Ten program to Microsoft Excel. W pierwszej kolumnie mam liczbę programistów, natomiast w drugiej – bazując na doświadczeniu własnym lub cudzym – jest liczba linijek kodu, jakiej można oczekiwać miesięcznie. Linijka kodu może nie jest najlepszą miarą pracy, bo niektórzy piszą lepsze linijki kodu niż inni, uznajmy jednak, że w taki sposób mierzy się wydajność programistów. Najpierw muszę ustalić moje koszty stałe, czyli ile pieniędzy wydam niezależnie od tego, ilu programistów zatrudnię. Przyjmijmy, że w tym przykładzie moje koszty stałe to czynsz za lokal, rachunki za prąd… Załóżmy, że mam lokal, który pomieści dowolną liczbę programistów. Zatem czynsz jest stały – nie zmieni się, gdy zatrudnię więcej programistów. Kolejny koszt stały… Załóżmy, że mam managera projektu, której chcę płacić pensję za pomaganie mi w ustalaniu, co to oprogramowanie ma dokładnie robić. Jej pensja to 10 000 dolarów miesięcznie. I do tego dochodzi 5000 dolarów za lokal dla wszystkich. Koszty stałe to zatem 15 000 dolarów miesięcznie. Ta kwota nie zmieni się, niezależnie od liczby programistów. W Excelu można złapać punkcik w prawym dolnym rogu i wypełnić zaznaczony obszar. Mam więc 15 000 kosztów stałych, bez względu na to, ilu programistów przyjmę. Teraz koszty zmienne. Załóżmy, że pełne… Czasem ludzie… Uznajmy, że pełne wynagrodzenie programisty to 10 000 miesięcznie. Wliczając… Wliczając jego pensję, ubezpieczenie zdrowotne… Wliczając dodatkowe bonusy, jak korzystanie z firmowego bufetu, i tym podobne. Razem 10 000 miesięcznie. Zatem moje całkowite koszty zmienne wynoszą 10 000 dolarów razy liczba programistów. Wpisuję więc w pole znak równości… równa się… 10 000 pensji programisty razy… ten płatek śniegu to właśnie „razy”. Wcisnąłem Shift i 8, aby go uzyskać. razy… razy liczba znajdująca się w tym polu. Jak widać, jest to pole D7. Przesunę kawałek, żebyście zobaczyli… żebyście zobaczyli oznaczenia wierszy. To jest pole D7. Pozostaje wcisnąć Enter. Mamy tu więc 10 000 dolarów razy D7. D7 to jest to zaznaczone pole. Wciskam Enter. Na razie nic tu nie ma. Przesunę z powrotem, żebyśmy widzieli całą tabelę. Przesunę kawałek… Mam małe kłopoty. Już dobrze. Jakie będą moje koszty całkowite? Koszty całkowite to koszty stałe plus koszty zmienne. Wpisuję znów znak równości i zaznaczam pola korzystając z klawiszy strzałek. To się równa F7… Zgadza się? Pole F7… F7 plus… plus to pole: moje koszty zmienne. Koszty całkowite to koszty stałe plus koszty zmienne. Wyszło 15 000 dolarów. Teraz zrobię to samo w każdym wierszu. To jedna z zalet arkuszy kalkulacyjnych. Przypisałem do tego pola polecenie mnożenia 10 000 dolarów przez zawartość tego pola, bez względu na to, co ono zawiera. Zatem teraz mogę po prostu rozciągnąć to pole na całą kolumnę. W efekcie w każdym tych pól mam 10 000 dolarów razy zawartość pola leżącego 3 pola na lewo od niego. Dlatego mamy tu 10 000 razy D8. Tu będzie 10 000 razy D9. Spójrzcie… Tutaj to widać: 10 000 razy D9. Trzeba kliknąć, żeby w polu ukazała się formuła: 10 000 razy D9. Rozciągając pierwsze pole skopiowałem tę formułę na całą kolumnę. Z kolei formuła licząca koszty całkowite ma postać: drugie pole po lewej plus pierwsze po lewej. Rozciągnę to pole, aby skopiować ją na całą kolumnę. 25 000 to 15 000 plus 10 000. 105 000 to 15 000 plus 90 000. Koszty całkowite to koszty stałe plus koszty zmienne. Teraz policzmy średnie koszty stałe. Przy czym przez średnie koszty stałe rozumiemy koszty stałe przypadające na jedną linijkę kodu. Tutaj linijek kodu jest zero, więc otrzymamy dzielenie przez zero – wynik nieokreślony. Dlatego zostawmy puste pole, a wypełnijmy to. Równa się całkowite koszty stałe… czyli pole F8… Zaznaczyłem je używając klawiszy strzałek. dzielone przez… dzielone przez łączną liczbę linijek kodu miesięcznie. dzielone przez łączną liczbę linijek kodu miesięcznie. Uzyskałem 3,75 dolara. To średni koszt stały jednej linijki kodu. Znów zrobię to, co poprzednio. Rozciągam pierwsze pole i już widzimy średnie koszty stałe. W każdym wierszu mam koszty stałe… 15 000 podzielone przez liczbę linijek kodu. Tu wyszło 1,38 dolara. Jeśli się zastanowić, to ma sens, bo im więcej programistów zatrudnię, tym więcej kodu otrzymam przy tych samych kosztach stałych. Wciąż mam tego samego managera projektu i ten sam lokal. Zatem koszt tego managera i lokalu rozkłada się na coraz więcej linijek kodu. Dlatego średnie koszty stałe jednej linijki kodu spadają wraz ze wzrostem liczby programistów. Przejdźmy teraz do średnich kosztów zmiennych. Średnie koszty zmienne to po prostu koszty zmienne przypadające na linijkę kodu miesięcznie. Każda „średnia” to wartość przypadająca na linijkę kodu. Powinienem to napisać: „na linijkę kodu”. Może lepiej tutaj. „Na linijkę kodu.” Dopiszmy też: „miesięcznie”. Na linijkę kodu miesięcznie. Powinno być nad wszystkimi, ale trudno. Przesunę trochę… Ups. Mam problemy. Wszystkie „średnie” to wartości przypadające na linijkę kodu miesięcznie. Policzmy więc nasze średnie koszty zmienne. Też zacznę tu, żeby uniknąć dzielenia przez 0. W tym scenariuszu koszty zmienne wynoszą 10 000 dolarów, a łączna liczba linijek kodu wynosi 4000. Zatem: G8 dzielone przez E8. Wyszło, że średnie koszty zmienne linijki kodu to 2,50 dolara. Zobaczmy… Rozciągnę to pole na pozostałe. Uzyskaliśmy ciekawy rezultat. Średnie koszty stałe malały, bo stała suma rozkładała się na coraz więcej linijek, natomiast średnie koszty zmienne rosną. Im więcej programistów, tym więcej kosztuje linijka kodu – średnio, w przeliczeniu na linijkę. Właściwie widać to już tutaj. Każdy kolejny programista dostarcza średnio coraz mniej linijek kodu. Moja pierwsza programistka sama napisze 4000 linijek kodu. Mając 2 programistów nie uzyskam kolejnych 4000 linijek, a tylko 3000 – może dlatego, że muszą się dogadywać, dzielić się pracą, bo wszystkiego nie robi już jedna osoba. Trzeci programista nie da mi już nawet tych 3000 linijek, a tylko 2000 linijek kodu. To zjawisko powszechnie obserwowane w firmach. Im więcej ludzi pracuje nad produktem, projektem, tym więcej mogą zdziałać, ale muszą się dogadywać, co oznacza częste narady i przerwy w pracy. Dlatego wydajność poszczególnych pracowników zmniejsza się. Trzeci programista wcale nie jest gorszy od pierwszego. W tym scenariuszu każdy z nich napisze miesięcznie 3000 linijek kodu. Gdyby pracował sam, pewnie mógłby napisać 4000 linijek, ale musi poświęcić trochę czasu na rozmowy. Dlatego właśnie średnie koszty zmienne w przeliczeniu na linijkę kodu rosną. Im więcej ludzi nad czymś pracuje, tym mniej… tym droższe – licząc średnio – jest uzyskanie każdej linijki kodu. Sprawdźmy średnie koszty całkowite, które wynoszą… To także jest w przeliczeniu na linijkę kodu. Równa się koszty całkowite, H8… H8 dzielone przez liczbę linijek kodu miesięcznie. Zatem… jeśli zatrudnimy jednego programistę, to nasze koszty wyniosą 6,25 dolara… za linijkę kodu, dlatego, że dużo nas kosztuje… To po prostu suma tych dwóch pól. I teraz… Rozciągnę to… Skopiuję formułę na resztę pól. Widać ciekawą zależność. Gdy zatrudnimy tylko kilku programistów, koszty stałe się rozłożą. Mimo że średnie koszty zmienne linijki kodu rosną, średnie koszty stałe maleją. Tu sytuacja jest nieco bardziej korzystna, bo koszty stałe się rozkładają. Potem znów zaczyna być drogo, bo – jak mówiłem – im więcej ludzi nad czymś pracuje, tym więcej czasu zabierają narady. Niektórzy się dublują albo poprawiają po innych, zamiast po prostu popychać pracę do przodu. Teraz sprawdźmy koszt krańcowy. Koszt krańcowy to – mówiąc najprościej: ile wynosi dodatkowy koszt kolejnej linijki kodu. Innymi słowy: o ile więcej pieniędzy wydajemy w stosunku do tego, o ile więcej zyskujemy. A więc na przykład: o ile więcej… Tu także mówimy o wartościach w przeliczeniu na linijkę kodu. Jeszcze raz: zyskujemy… Przechodząc od 0 programistów do 1 programisty, przechodzimy od 15 000 kosztów całkowitych do 25 000 kosztów całkowitych. Przechodzimy więc od… Nawiasy. 25 000… Przechodząc od 15 000 do 25 000 zwiększamy wydatki o 25 000 minus 15 000. Dlatego piszę H8 minus H7. O tyle zwiększają się nasze koszty całkowite – a o ile więcej kodu zyskujemy? Zyskujemy… 4000 minus 0 linijek kodu. Wpisuję formułę w taki sposób, aby później, gdy rozciągnę ją na resztę pól, działała prawidłowo, bo teraz sama uwzględni właściwe pola. Wpisałem w tytule „średnio”, bo chodzi mi o średni dodatkowy koszt linijki dla tych pierwszych 4000 linijek. Teraz możemy już… rozciągnąć formułę na resztę pól. Tutaj mamy koszt dodatkowej linijki kodu dla tych kolejnych 3000 linijek kodu. Znów widać, że linijki drożeją, bo im więcej ludzi pracuje, tym mniejsza jest ich wydajność. Dzieje się tu coś ciekawego. Być może zauważyliście to już tutaj. Tu koszt krańcowy jest ujemny. Nie znaczy to, że od pewnej ilości kodu przestajemy zarabiać. Chodzi o to, że wydając coraz więcej w końcu „zabijamy” linijki kodu, bo w pewnym momencie nad programem pracuje tylu ludzi, że „zabijają” nawzajem swoją wydajność. Widać to w tych liczbach. Mając 7 programistów zyskujemy 11 400 linijek kodu, a mając 8 – wskutek ciagłych narad; ta osoba nie jest nieukiem… Gdy nad czymś pracuje 8 osób, każdej z nich spada wydajność. …to zyskujemy tylko 11 200 linijek kodu. Stąd bierze się ujemny koszt krańcowy. Przy 8 pracownikach nagle okazuje się, że dalsze zwiększanie nakładów wręcz torpeduje nasze przedsięwzięcie. Chciałem pokazać, co można wyczytać z takich liczb i jak zrobić to za pomocą arkusza kalkulacyjnego. Wprowadziłem was także w przykładową strukturę kosztów przedsiębiorstwa.
AP® jest zastrzeżonym znakiem towarowym firmy College Board, która nie dokonała przeglądu tego zasobu.