Jak firmy technologiczne radzą sobie z kosztami rozwoju oprogramowania: Insights From A CPA

Share

W świecie startupów/wzrastających technologii istnieje powracające pytanie księgowe, które nieuchronnie wymaga poważnego rozważenia: czy powinienem kapitalizować moje koszty rozwoju oprogramowania, czy też powinienem je wszystkie lub ich część wydatkować? Jeśli i Ty zadajesz sobie to pytanie, pociesz się tym, że określenie, czy kapitalizować koszty oprogramowania, to nie spacerek po parku. Chociaż standardy rachunkowości bardzo obszernie omawiają tę kwestię, stosowanie tych zasad jest kwestią subiektywną i opiniotwórczą. Jednakże, dobrze poinformowany CEO/CFO/Controller musi zrozumieć standardy rachunkowości dotyczące kapitalizacji kosztów oprogramowania, aby określić, a co ważniejsze, wesprzeć politykę firmy w zakresie kapitalizacji kosztów oprogramowania.

Możesz się zastanawiać, dlaczego powinno Cię to obchodzić. Po prostu, startupy high-tech generalnie poświęcają znaczną ilość czasu i pieniędzy na rozwój oprogramowania; traktowanie tych kosztów najprawdopodobniej będzie miało ogromny wpływ nie tylko na bieżące wyniki finansowe, ale także na przyszłe finanse.

Jest kilka rozróżnień, które muszą być dokonane przed zanurzeniem się w zasady rachunkowości. Po pierwsze, standardy rachunkowości w ramach GAAP zdefiniować dwa rodzaje oprogramowania:

  1. oprogramowanie do sprzedaży, dzierżawy lub obrotu
  2. oprogramowanie do użytku wewnętrznego

Standardy zapewniają szczególne, różne zasady rachunkowości dla każdego rodzaju oprogramowania. Ważne jest, aby określić, jaki rodzaj oprogramowania jest tworzony w celu prawidłowego ustalenia kwoty kosztów, które powinny być wydatkowane lub kapitalizowane. Po drugie, dla celów tego artykułu, będę zajmował się zasadami rachunkowości zgodnie z GAAP, a nie zgodnie z kodeksem IRS. Jednak ważne jest, aby zauważyć, że niezależnie od tego, co zostanie ustalone w odniesieniu do traktowania przez firmy kosztów rozwoju oprogramowania zgodnie z GAAP, ustalenie to nie musi mieć wpływu na traktowanie kosztów przez Twoją firmę zgodnie z kodeksem IRS (tj. kapitalizacja dla GAAP i wydatkowanie dla podatku może być w porządku). Po trzecie, niniejszy artykuł omawia podstawy zasad i stanowi dobry punkt wyjścia. Ten artykuł nie zastępuje potrzeby konsultacji z CPA firmy przed podjęciem jakichkolwiek znaczących decyzji.

Oprogramowanie do sprzedaży, leasingu lub marketingu

Jeśli Twoja firma rozwija oprogramowanie, aby ostatecznie sprzedać, leasing lub rynek do ogółu społeczeństwa, ta sekcja jest dla Ciebie. To oprogramowanie jest tworzone z zamiarem uzyskania przyszłych przychodów i nie powinno przynosić korzyści wewnętrznej działalności Twojej firmy (zobacz poniżej oprogramowanie do użytku wewnętrznego). Kiedy rozmawiam z klientami na temat tego, które koszty rozwoju oprogramowania, które mają być kapitalizowane lub wydatkowane w związku z oprogramowaniem przeznaczonym na rynek zewnętrzny, najważniejszym pytaniem, jakie zadaję, jest to, kiedy projekt oprogramowania osiągnął „technologiczną wykonalność?”. Jest to ważne, ponieważ standardy rachunkowości stwierdzają, że wszystkie koszty poniesione na projekt oprogramowania przed osiągnięciem wykonalności technologicznej powinny być wydatkowane w momencie ich poniesienia. Standardy mówią również, że koszty poniesione po ustaleniu wykonalności technologicznej mogą być kapitalizowane. Kapitalizacja kosztów powinna zostać zakończona w momencie, gdy oprogramowanie jest dostępne do ogólnego udostępnienia klientom. Wszelkie przyszłe koszty związane z projektem oprogramowania powinny być wydatkowane w miarę ich ponoszenia.

Skontaktuj się z naszymi specjalistami w celu uzyskania pomocy w zarządzaniu tym tematem.

Co to jest wykonalność technologiczna?

Wykonalność technologiczna jest terminem używanym do opisania pewnego punktu w projekcie oprogramowania, w którym faza badań i rozwoju została w znacznym stopniu zakończona. Normy dostarczają konkretnych wskazówek co do tego, kiedy projekt osiągnął wykonalność technologiczną.

Następujący fragment pochodzi bezpośrednio z norm:
…produkt oprogramowania komputerowego zawiera projekt programu szczegółowego (zdefiniowany poniżej) wszystkie poniższe elementy:

  • Projekt produktu i projekt programu szczegółowego zostały ukończone, a jednostka ustaliła, że niezbędne umiejętności, sprzęt i technologia oprogramowania są dostępne dla firmy w celu wytworzenia produktu.
  • Kompletność projektu programu szczegółowego i jego spójność z projektem produktu zostały potwierdzone poprzez udokumentowanie i prześledzenie projektu programu szczegółowego do specyfikacji produktu.
  • Projekt programu szczegółowego został przejrzany pod kątem kwestii rozwojowych wysokiego ryzyka (na przykład nowe, unikalne, niesprawdzone funkcje i cechy lub innowacje technologiczne), a wszelkie niepewności związane ze zidentyfikowanymi kwestiami rozwojowymi wysokiego ryzyka zostały rozwiązane poprzez kodowanie i testowanie.

Projekt programu szczegółowego jest zdefiniowany przez normy w następujący sposób:
Szczegółowy projekt produktu oprogramowania komputerowego, który przyjmuje funkcję produktu, cechy i wymagania techniczne do ich najbardziej szczegółowej, logicznej formy i jest gotowy do kodowania.

Zrobię teraz przerwę, abyś mógł odetchnąć z ulgą…Ok. Jak w przypadku każdego tematu związanego z rachunkowością, powyższe wytyczne są otwarte na interpretację kierownictwa.

W branży można znaleźć firmy, które mają znaczące skapitalizowane koszty rozwoju oprogramowania i inne, które wyekspediowały wszystkie swoje koszty rozwoju oprogramowania. Wiele firm stoi na stanowisku, że wykonalność technologiczna jest ustalana w tym samym czasie, gdy produkt oprogramowania może być używany lub konsumowany w jakiejkolwiek formie przez społeczeństwo; dlatego też ponoszą one większość kosztów rozwoju. To stanowisko jest zazwyczaj najbardziej konserwatywne i prawdopodobnie spotka się z mniejszą uwagą ze strony audytorów. Inni stoją na stanowisku, że wykonalność technologiczna występuje przed udostępnieniem produktu do sprzedaży.

Koszty, które kwalifikują się do kapitalizacji, po wykonalności technologicznej, są następujące:

  • Kompensata programisty za czas bezpośrednio związany z kodowaniem oprogramowania.
  • Alokowana kwota kosztów pośrednich, takich jak koszty ogólne związane z programistami i zajmowanymi przez nich obiektami.
  • Koszty związane z testowaniem oprogramowania na potrzeby rynku (tj. testy alfa, beta).
  • Inne bezpośrednie koszty produkcji, które są ponoszone w celu wprowadzenia oprogramowania na rynek.

Kilka innych punktów do rozważenia to:

  • Koszty utrzymania, poprawek błędów i wsparcia klienta mają być wydatkowane w miarę ich ponoszenia.
  • Widzieliśmy, że klienci uwzględniają nieefektywność przy określaniu kwoty wynagrodzenia programisty do kapitalizacji (tj. suma pomniejszona o procent).
  • Zasady rachunkowości dotykają również koncepcji znanej jako model roboczy, która została pominięta w tej dyskusji. In our experience, the working model concept does not influence the majority of our clients' decisions with respect to whether or not to capitalize software costs.

Internal-Use Software

Jeśli Twoja firma rozwija oprogramowanie wewnętrznie wyłącznie w celu zaspokojenia wewnętrznych potrzeb firmy, ta sekcja jest dla Ciebie. Nie może istnieć żaden plan wprowadzania oprogramowania na rynek zewnętrzny, nawet w przyszłości (określonej w momencie opracowywania). Oprogramowanie do użytku wewnętrznego to zazwyczaj monitorowanie modułów analitycznych i księgowych.

Standardy rachunkowości dzielą proces rozwoju oprogramowania do użytku wewnętrznego na trzy różne etapy. Zarząd powinien określić, w którym momencie rozwój oprogramowania wchodzi i wychodzi z każdego etapu. W zależności od etapu, związane z nim koszty rozwoju będą ujmowane w kosztach lub kapitalizowane. Trzy etapy oprogramowania do użytku wewnętrznego wraz z ich definicjami są następujące:
Wstępny etap projektu – Kiedy projekt oprogramowania komputerowego jest w tej fazie, Twoja firma prawdopodobnie wykona następujące czynności:

  • Podjęcie strategicznych decyzji w celu alokacji zasobów między alternatywnymi projektami w danym momencie.
  • Określić, co firma potrzebuje oprogramowania do zrobienia i wymagania systemowe w nim.
  • Określić technologię potrzebną do osiągnięcia wymagań systemowych.
  • Badać najlepsze rozwiązanie wdrożeniowe dla oprogramowania. Na przykład określenie, czy oprogramowanie należy opracować, czy kupić.

Faza tworzenia aplikacji – Etap ten rozpoczyna się zazwyczaj po wybraniu projektu oprogramowania do użytku wewnętrznego i rozpoczęciu jego opracowywania. Czynności wykonywane podczas etapu tworzenia aplikacji obejmują:

  • Projektowanie wybranej ścieżki, w tym konfiguracji oprogramowania i interfejsów oprogramowania.
  • Kodowanie.
  • Instalacja na sprzęcie.
  • Testowanie.

Etap powdrożeniowo-eksploatacyjny – Etap ten rozpoczyna się zazwyczaj po zakończeniu tworzenia oprogramowania i wdrożeniu oprogramowania do użytku wewnętrznego. Czynności wykonywane na etapie powdrożeniowo-eksploatacyjnym obejmują:

  • Szkolenia.
  • Utrzymanie.

Po podzieleniu procesu rozwoju na trzy etapy, poniżej przedstawiono rozważania dotyczące ujęcia księgowego dla każdego z etapów:

Wstępny etap projektu – Wszystkie koszty rozwoju poniesione na tym etapie powinny być ujmowane w kosztach w momencie ich poniesienia. Dotyczy to zarówno kosztów wewnętrznych, jak i zewnętrznych.

Etap Rozwoju Aplikacji – Wszystkie koszty prac rozwojowych poniesione na tym etapie powinny być kapitalizowane w momencie spełnienia określonych warunków. Obejmuje to zarówno koszty wewnętrzne, jak i zewnętrzne. Ogólne & koszty administracyjne i szkoleniowe nie są uznawane za koszty rozwoju, a jeśli zostały poniesione na tym etapie, powinny być ujmowane w kosztach w momencie ich poniesienia. Koszty konwersji starych danych do nowego systemu powinny być ujmowane w kosztach. Jeżeli jednak oprogramowanie zostało stworzone lub zakupione w celu konwersji danych, te konkretne koszty powinny być kapitalizowane.

Postimplementation-Operation Stage – Wewnętrzne i zewnętrzne koszty szkoleń oraz koszty utrzymania na tym etapie powinny być wydatkowane w wysokości poniesionych kosztów.

Kilka refleksji na temat tego, co powinno, a co nie powinno być kapitalizowane w odniesieniu do oprogramowania do użytku wewnętrznego:

  • Tylko koszty poniesione na etapie rozwoju aplikacji kwalifikują się do kapitalizacji.
  • Koszty mogą być kapitalizowane tylko wtedy, gdy kierownictwo upoważni i zobowiąże się do finansowania projektu, uzna, że zostanie on ukończony, a wszystkie testy projektu zostaną zakończone.
  • Koszty wewnętrzne, które mogą być kapitalizowane, obejmują przede wszystkim koszty wynagrodzeń i koszty związane z wynagrodzeniami, które są bezpośrednio związane z projektem. Koszty ogólne i administracyjne nie kwalifikują się do kapitalizacji.

Koszty rozwoju strony internetowej

Jeśli Twoja firma ponosi koszty na rozwój, wdrożenie i utrzymanie strony internetowej, koszty te mogą być kapitalizowane. Standardy rachunkowości zawierają szczegółowe wytyczne w tym zakresie i można zauważyć, że wytyczne te są bardzo podobne do tych dotyczących księgowania oprogramowania do użytku wewnętrznego. W rezultacie, ważne jest, aby zrozumieć zasady rachunkowości dotyczące oprogramowania do użytku wewnętrznego (zawarte powyżej).

Podobnie jak w przypadku oprogramowania do użytku wewnętrznego, proces tworzenia strony internetowej jest podzielony na etapy. Pięć etapów rozwoju strony internetowej wraz z ich definicjami są następujące:

  • Etap planowania Ten etap to sam początek życia strony internetowej – proces myślowy. Działania obejmują określenie konkretnych celów witryny, zidentyfikowanie grupy docelowej, stworzenie budżetu czasowego i kosztowego oraz określenie funkcjonalności witryny.
  • Etap rozwoju aplikacji i infrastruktury Etap ten obejmuje stworzenie kości witryny, w tym rejestrację nazwy domeny, opracowanie lub nabycie niestandardowego kodu, integrację zewnętrznych aplikacji, opracowanie stron HTML, zakup routerów i serwerów oraz testowanie aplikacji witryny.
  • Etap rozwoju grafiki

Ten etap jest zwykle wykonywany w połączeniu z etapem drugim powyżej. Zadania obejmują opracowanie projektu lub układu każdej strony, koloru, obrazów oraz ogólnego wyglądu i użyteczności witryny.

  • Etap Rozwoju Treści Ten etap to ciągłe dodawanie treści, które utrzymuje witrynę w aktualności. Treści mogą mieć charakter tekstowy lub graficzny. Przykłady obejmują artykuły, zdjęcia produktów, mapy, opisy itp.
  • Etap operacyjny Etap ten obejmuje zadania takie jak szkolenia, administracja, utrzymanie i inne koszty związane z obsługą witryny.

Po podzieleniu procesu rozwoju na pięć etapów, poniżej przedstawiono rozważania dotyczące ujęcia księgowego dla każdego etapu:

  • Etap planowania Wszystkie koszty rozwoju poniesione na tym etapie powinny być wydatkowane w miarę ich ponoszenia. Obejmuje to zarówno koszty wewnętrzne, jak i zewnętrzne.
  • Etap rozwoju aplikacji i infrastruktury Wszystkie koszty, które odnoszą się do opracowanego lub zakupionego oprogramowania wykorzystywanego do obsługi strony internetowej, powinny być rozliczane zgodnie z zasadami dotyczącymi oprogramowania do użytku wewnętrznego (opisanymi powyżej). Koszty uzyskania i rejestracji domeny internetowej powinny być kapitalizowane. Opłaty poniesione z tytułu hostingu należy rozliczać w czasie przez okres uzyskiwania korzyści.
  • Etap opracowywania grafiki Standardy rachunkowości uznają grafikę za składnik oprogramowania, w związku z czym należy ją rozliczać zgodnie z zasadami dotyczącymi oprogramowania do użytku wewnętrznego.
  • Etap opracowywania treści Koszty wprowadzania treści na stronę internetową należy rozliczać w czasie. Koszty konwersji danych również powinny być ujmowane w kosztach w momencie ich poniesienia. Oprogramowanie wykorzystywane do integracji bazy danych z witryną powinno być kapitalizowane.
  • Etap operacyjny Koszty na tym etapie powinny być generalnie ujmowane w kosztach w miarę ich ponoszenia. Koszty aktualizacji i ulepszeń, które zwiększają funkcjonalność witryny, powinny być rozliczane zgodnie z zasadami dotyczącymi oprogramowania do użytku wewnętrznego. Koszty rejestracji witryny w wyszukiwarkach są uznawane za koszty reklamy i powinny być ponoszone w miarę ich ponoszenia.

Podsumowanie

Jednym z punktów rozważań jest to, że jeśli kapitalizujesz koszty rozwoju oprogramowania w swojej firmie, kierownictwo musi być w stanie poprzeć te kapitalizowane koszty twardymi liczbami, arkuszami kalkulacyjnymi i logiką stojącą za tym wszystkim. Proces ten zazwyczaj powoduje również potrzebę śledzenia czasu pracy programistów według godzin i według projektów. Jeśli kapitalizujesz oprogramowanie, upewnij się, że Twoja firma ma system śledzenia i organizację na miejscu w celu wspierania skapitalizowanych kosztów.

Drugi punkt rozważań odnosi się do znaczących ulepszeń dokonanych na oprogramowaniu opracowanym w celu sprzedaży, leasingu lub na rynku zewnętrznym. Na przykład, jeśli Twoja firma ma ustalony produkt oprogramowania sprzedawany publicznie, a Twoi programiści pracują nad dodaniem nowej funkcjonalności do tego produktu, może to być znaczące ulepszenie. Każde znaczące ulepszenie powinno być traktowane tak samo jak produkt podstawowy, przy czym wszystkie koszty przed wykonalnością technologiczną powinny być wydatkowane, natomiast wszystkie koszty po wykonaniu wykonalności technologicznej mogą być kapitalizowane. Ważne jest, aby zauważyć, że wykonalność technologiczna może być osiągnięta wcześniej w procesie rozwoju w przypadku znaczących ulepszeń, w porównaniu z nowymi produktami programowymi. Wynika to z faktu, iż w większości przypadków wszystkie kwestie technologiczne, sprzętowe oraz te związane z wysokim ryzykiem zostały już sprawdzone podczas początkowego etapu rozwoju produktu. Należy również pamiętać, że ulepszenia produktu kwalifikują się do kapitalizacji tylko wtedy, gdy są uznane za znaczące dla całego produktu (np. nowa funkcjonalność).

Trzecim punktem rozważań jest to, że po skapitalizowaniu kosztów, są one zazwyczaj amortyzowane przez okres użytkowania produktu lub oprogramowania. Skapitalizowane koszty są następnie poddawane analizie pod kątem utraty wartości w każdym okresie sprawozdawczym. Zasady amortyzacji różnią się w przypadku oprogramowania do użytku wewnętrznego, oprogramowania przeznaczonego do sprzedaży zewnętrznej oraz kosztów tworzenia stron internetowych. Zasady te wykraczają poza zakres tego artykułu (w pewnym momencie muszę przestać pisać!).

Ostatnią kwestią do rozważenia jest to, że w przypadku oprogramowania tworzonego na sprzedaż lub do użytku publicznego, większość, jeśli nie wszystkie, koszty badań i rozwoju powinny być wydatkowane. Istnieją dość wąskie przedziały czasowe, w których może nastąpić kapitalizacja. Generalnie, gdy firma ustali, że jej oprogramowanie jest tworzone na użytek wewnętrzny, większość kosztów badań i rozwoju powinna być kapitalizowana. Ważne jest, aby zauważyć, że proces każdej firmy może się różnić; w konsekwencji, zastosowanie zasad rachunkowości jest specyficzne dla każdej jednostki.

Technologia i wschodzące usługi rozwojowe

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *