Najważniejsze fakty
- Dział badań i rozwoju oprogramowania musi szukać postęp w informatyce lub technologii informacyjnej, a nie tylko stworzyć nowy produkt.
- Rutynowy rozwój przy użyciu ustalone ramy a dobrze znane wzorce nie kwalifikują się.
- Postęp może być w algorytmy, przetwarzanie danych, architektura, AI/ML, bezpieczeństwo lub integracja.
- Obydwa firmy produkcyjne (SaaS, aplikacje) i wewnętrzne zespoły IT (systemy na zamówienie) mogą się kwalifikować.
- Koszty personelu dla programiści, naukowcy zajmujący się danymi i inżynierowie DevOps są zazwyczaj największym kwalifikowanym wydatkiem.
Co kwalifikuje się jako prace badawczo-rozwojowe w zakresie oprogramowania?
Aby prace związane z oprogramowaniem i technologią mogły zostać uznane za prace badawczo-rozwojowe do celów podatkowych, należy uzyskać postęp w informatyce lub technologii informacyjnej poprzez rozwiązanie rzeczywistych wątpliwości naukowych lub technologicznych. Postęp musi wykraczać poza to, co kompetentny specjalista w tej dziedzinie mógłby łatwo osiągnąć.[1]
Typowe obszary, w których kwalifikują się prace badawczo-rozwojowe w zakresie oprogramowania, to:
- Nowe algorytmy: Opracowywanie nowych metod obliczeniowych w celu rozwiązywania problemów, z którymi istniejące algorytmy nie potrafią sobie poradzić efektywnie
- Sztuczna inteligencja i uczenie maszynowe: Tworzenie nowych architektur modeli, podejść szkoleniowych lub procesów przetwarzania danych, w przypadku których wynik jest niepewny
- Wydajność na dużą skalę: Osiąganie docelowych prędkości przetwarzania, przepustowości lub opóźnień przekraczających znane możliwości
- Integracja złożona: Łączenie systemów w sposób, który nie był wcześniej osiągalny, gdy wykonalność jest niepewna
- Bezpieczeństwo i kryptografia: Opracowywanie nowych podejść do cyberbezpieczeństwa lub szyfrowania, które rozwijają najnowocześniejsze technologie
- Inżynieria danych: Przetwarzanie, transformacja lub analiza danych w nowatorski sposób, wykraczający poza znane techniki
Co się nie kwalifikuje
Poniższe działania są powszechne w firmach zajmujących się oprogramowaniem, ale nie zwykle kwalifikują się jako prace badawczo-rozwojowe:[3]
- Rozwój standardowy: Tworzenie funkcji przy użyciu sprawdzonych frameworków (React, Django, Rails, .NET) bez niepewności technologicznej
- Konfiguracja i personalizacja: Konfigurowanie gotowego oprogramowania lub platform CMS
- Projektowanie UI/UX: Praca projektowa nie jest nauką ani technologią (choć techniczna implementacja nowego interfejsu może nią być)
- Administracja systemem: Rutynowe wdrażanie, monitorowanie i konserwacja
- Wprowadzanie i migracja danych: Przenoszenie danych między systemami przy użyciu standardowych narzędzi ETL
- Testowanie i zapewnianie jakości: Rutynowe zapewnianie jakości (choć testowanie w ramach rozwiązywania niepewności w zakresie prac badawczo-rozwojowych może być uznane za wystarczające)
Kluczowy test: Zadaj sobie pytanie: „Czy kompetentny programista, mający dostęp do publicznie dostępnej wiedzy, wiedział, jak to zrobić, zanim zaczęliśmy?”. Jeśli odpowiedź brzmi „tak”, to nie jest to praca badawczo-rozwojowa. Jeśli odpowiedź brzmi „nie”, a do znalezienia rozwiązania zastosowałeś systematyczne podejście, to prawdopodobnie się kwalifikuje.
Przykłady kwalifikujących się prac badawczo-rozwojowych w zakresie oprogramowania
| Projekt | Dlaczego się kwalifikuje |
|---|---|
| Opracowanie modułu wykrywania oszustw w czasie rzeczywistym, który musi przetwarzać 1 milion transakcji na sekundę z opóźnieniem poniżej 10 ms | Przekracza znane możliwości wydajnościowe; niepewność, czy wymagana przepustowość i dokładność mogą zostać osiągnięte jednocześnie |
| Tworzenie systemu przetwarzania języka naturalnego (NLP), który precyzyjnie wyodrębnia ustrukturyzowane dane z nieustrukturyzowanych dokumentów prawnych w wielu jurysdykcjach | Nowe wyzwanie dla sztucznej inteligencji: istniejące modele przetwarzania języka naturalnego nie są w stanie obsłużyć języka specyficznego dla danej dziedziny i wariantów międzyjurysdykcyjnych z wystarczającą dokładnością |
| Zbudowanie rozproszonego potoku danych, który zachowuje zgodność z ACID w 15 mikrousługach, a ostateczna spójność jest krótsza niż 200 ms | Niepewność architektoniczna; znane wzorce (saga, zatwierdzanie dwufazowe) nie spełniają jednocześnie wymagań dotyczących opóźnienia i spójności |
| Opracowanie systemu rozpoznawania obrazu w celu wykrywania wad submilimetrowych w produkowanych komponentach z prędkością linii produkcyjnej | Wyzwanie dla wizji komputerowej: niepewność, czy przy wymaganej prędkości i dostępnej rozdzielczości obrazu można osiągnąć wystarczającą dokładność |
Typowe koszty kwalifikowane dla firm produkujących oprogramowanie
W przypadku firm zajmujących się oprogramowaniem i technologią największą kategorią kosztów jest prawie zawsze koszty personeluDo kwalifikujących się ról należą zazwyczaj:[2]
- Programiści i inżynierowie oprogramowania (podzieleni według czasu poświęconego na badania i rozwój)
- Naukowcy zajmujący się danymi i inżynierowie uczenia maszynowego
- Inżynierowie DevOps i infrastruktury (przy rozwiązywaniu problemów związanych z badaniami i rozwojem)
- Architekci techniczni (czas poświęcony na projektowanie i planowanie prac badawczo-rozwojowych)
- Dyrektorzy techniczni i kierownicy techniczni (czas poświęcony na działania badawczo-rozwojowe)
Inne typowe koszty obejmują przetwarzanie w chmurze (w przypadku zadań badawczo-rozwojowych), licencje na specjalistyczne oprogramowanie i pracowników zewnętrznych (kontraktowych programistów pracujących nad projektami badawczo-rozwojowymi).
Wskazówka: Wiele firm zajmujących się oprogramowaniem nie docenia swoich prac badawczo-rozwojowych, ponieważ postrzegają je jako „tylko rozwój”. Przejrzyj swoje rejestry sprintów, zgłoszenia w Jira i elementy długu technicznego – każda praca, która wiąże się z rzeczywistą niepewnością co do sposobu osiągnięcia celu technicznego, może się kwalifikować.
Dokumentowanie prac badawczo-rozwojowych nad oprogramowaniem
Firmy zajmujące się oprogramowaniem często mają dobrą pozycję do dokumentowania swoich prac badawczo-rozwojowych, ponieważ korzystają już z narzędzi do zarządzania projektami i kontroli wersji. Przydatne dowody obejmują:
- Historia Git: Komunikaty commit i gałęzie pokazujące iteracyjne próby rozwiązania problemu
- Jira/Trello/Asana: Bilety opisujące wyzwania techniczne i dochodzenia
- Zbieżność/Pojęcie: Dokumentacja techniczna projektu i zapisy decyzji architektonicznych
- Recenzje żądań ściągnięcia: Przeglądy kodu omawiające techniczne kompromisy i niepewność
- Slack/Zespoły: Rozmowy, podczas których zespół omawia przeszkody techniczne
Często zadawane pytania
Czy stworzenie nowej aplikacji lub strony internetowej można uznać za działalność badawczo-rozwojową?
Nie automatycznie. Tworzenie aplikacji lub strony internetowej z wykorzystaniem uznanych technologii, frameworków i wzorców projektowych to standardowy proces rozwoju, a nie prace badawczo-rozwojowe. Jeśli jednak projekt napotyka na rzeczywistą niepewność technologiczną – na przykład osiągnięcie wydajności w czasie rzeczywistym na niespotykaną dotąd skalę lub opracowanie nowych algorytmów – prace nad rozwiązaniem tej niepewności mogą zostać uznane za uzasadnione.
Czy zwinne programowanie może być pracami badawczo-rozwojowymi?
Tak, metodyka zwinna może obejmować prace badawczo-rozwojowe. Wytyczne BIS wymagają „systematycznego podejścia”, a zwinne sprinty z jasnymi hipotezami, iteracyjnym testowaniem i analizą mogą to spełnić. Kluczowym pytaniem jest, czy praca w sprincie uwzględnia niepewność naukową czy technologiczną, a nie to, czy metodologia jest zwinna czy kaskadowa.
Czy sztuczna inteligencja i uczenie maszynowe się kwalifikują?
Projekty AI i ML często kwalifikują się do tego systemu, ponieważ często wiążą się z rzeczywistą niepewnością co do tego, czy model osiągnie wymaganą dokładność, czy nowa architektura będzie działać, lub jak obsługiwać przypadki brzegowe w danych treningowych. Jednak samo korzystanie z gotowych bibliotek ML bez modyfikacji zazwyczaj nie spełnia tego warunku.
Czy mogę ubiegać się o zwrot kosztów naprawy błędów?
Generalnie nie. Rutynowe naprawianie błędów to konserwacja, a nie prace badawczo-rozwojowe. Jeśli jednak błąd ujawnia fundamentalną niepewność technologiczną – taką jak wyścig problemów, którego nie da się rozwiązać znanymi technikami – prace nad rozwiązaniem tej podstawowej niepewności mogą zostać uznane za zasadne.
Dalsza lektura
- Co kwalifikuje się jako prace badawczo-rozwojowe? — pełny test wytycznych BIS
- Kwalifikowalne koszty prac badawczo-rozwojowych — wszystkie kwalifikujące się kategorie kosztów
- Raport techniczny B+R — jak napisać swoją opowieść
- Badania i rozwój w produkcji — przykłady z innego sektora
Szukasz prostego oprogramowania do rozliczania podatków?
# GoFile to aplikacja uznawana przez HMRC i ciesząca się zaufaniem ponad 50 000 brytyjskich firm. Konfiguracja zajmuje kilka minut, składaj zeznania bez obaw.
Zacznij za darmoNie jest wymagana karta kredytowa · Anuluj w dowolnym momencie