SlideShare a Scribd company logo
Szybkie tworzenie oprogramowania
          (Rapid Development)


            Kamil Jaśkiewicz

         Politechnika Wrocławska
           Wydział Elektroniki
     Inżynieria Systemów Informatycznych


             9 czerwca 2010
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Agenda




  Agenda:
      Wstęp
      Charakterystyka klasycznych błędów
      Wybór najlepszych praktyk
      Podsumowanie i literatura




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                          Klasyczne błędy
                        Najlepsze praktyki
                  Podsumowanie i literatura


Wstęp




 Definicja:
 Szybkie tworzenie oprogramowania (Rapid
 development) to przede wszystkim krótsze
 od nominalnych harmonogramy oraz
 tworzenie oprogramowania szybciej niż
 robimy to teraz.




                          Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Wstęp



  Ogólna strategia szybkiego tworzenia oprogramowania:
      Unikanie klasycznych błędów
      Stosowanie podstaw inżynierii oprogramowania
      Zarządzanie ryzykiem
      Praktyki zorientowane na harmonogram




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Wstęp



  Ogólna strategia szybkiego tworzenia oprogramowania:
      Unikanie klasycznych błędów
      Stosowanie podstaw inżynierii oprogramowania
      Zarządzanie ryzykiem
      Praktyki zorientowane na harmonogram




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Wstęp



  Ogólna strategia szybkiego tworzenia oprogramowania:
      Unikanie klasycznych błędów
      Stosowanie podstaw inżynierii oprogramowania
      Zarządzanie ryzykiem
      Praktyki zorientowane na harmonogram




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Wstęp



  Ogólna strategia szybkiego tworzenia oprogramowania:
      Unikanie klasycznych błędów
      Stosowanie podstaw inżynierii oprogramowania
      Zarządzanie ryzykiem
      Praktyki zorientowane na harmonogram




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Wstęp



  Ogólna strategia szybkiego tworzenia oprogramowania:
      Unikanie klasycznych błędów
      Stosowanie podstaw inżynierii oprogramowania
      Zarządzanie ryzykiem
      Praktyki zorientowane na harmonogram




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                      Klasyczne błędy
                    Najlepsze praktyki
              Podsumowanie i literatura


Cztery filary szybkiego tworzenia oprogramowania




                      Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                      Klasyczne błędy
                    Najlepsze praktyki
              Podsumowanie i literatura


Techniki zorientowane na harmonogram nie wystarczą




                      Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                       Klasyczne błędy
                     Najlepsze praktyki
               Podsumowanie i literatura


Najczęściej popełniane błędy




                       Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Błędy związane z ludźmi

  Źle dobrany zespół:
      zatrudnianie osób, które mogąc zacząć “od zaraz”
      brak weryfikacji umiejętności

  “Problematyczni”pracownicy:
      stwarzanie konfliktów w zespole
      spadek motywacji pozostałych członków zespołu
      ponowne wykonywanie pracy wykonanej przez takiego
      pracownika


                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Błędy związane z ludźmi


  Dodawanie nowych osób do opóźnionego projektu:
      dolewanie benzyny do ognia
      zmniejszanie produktywności członków zespołu
      potencjalne konflikty

  Nierealne oczekiwania:
      zbyt optymistyczne estymacje
      sprawianie wrażenia zbyt długo trwających projektów



                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                      Klasyczne błędy
                    Najlepsze praktyki
              Podsumowanie i literatura


Błędy związane z ludźmi




                      Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Błędy związane z procesem

  Porzucenie planu:
      dotyczy projektów realizowanych pod presją
      nieskoordynowana praca

  Pomijanie zadań w estymacjach:
      umykanie uwadze mało widocznych zadań
      brak śledzenia poprzednich projektów i wykonywanych
      tam zadań
      pominięte zadania dodają średnio 20-30% czasu do
      harmonogramu (Michiel van Genuchten)


                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Błędy związane z procesem



  Skrócenie analizy oraz planowania:
      “nie marnujmy czasu, zacznijmy od razu programować”
      - jumping into coding
      tworzenie “haków”i konieczność ich późniejszego
      poprawiania




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                      Klasyczne błędy
                    Najlepsze praktyki
              Podsumowanie i literatura


Błędy związane z procesem




                      Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                        Klasyczne błędy
                      Najlepsze praktyki
                Podsumowanie i literatura


Błędy związane z produktem


  Zmiana zakresu funkcjonalności:
      przeciętny projekt doświadcza zmiany 25% wymagań w
      czasie jego trwania
      konsekwencja: wydłużenie harmonogramu

  Negocjacje typu “push-me, pull-me”:
      zaakceptowanie przez managera opóźnienia w
      harmonogramie
      dodanie dodatkowych zadań/wymagań



                        Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Błędy związane z technologią

  Syndrom “srebnego pocisku”:
      zakładanie lepszej od rzeczywistości produktywności po
      zastosowaniu nowych narzędzi
      niska produktywność w początkowych fazach używania
      nowej techonologii
      niewielkie skrócenie czasu harmonogramu

  Niestosowanie systemów kontroli wersji:
      nadpisywanie wyników pracy innych osób
      przesyłanie plików poprzez pocztę e-mail lub w inny
      sposób

                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                            Klasyczne błędy
                          Najlepsze praktyki
                    Podsumowanie i literatura


Codzienna kompilacja oraz testy
Daily Build and Smoke Test




   Skuteczność:
    Potencjalne skrócenie nominalnego planu: Dobre
    Poprawienie widoczności postępu projektu: Dobre
    Szansa sukcesu w założonym terminie:      Bardzo dobra

   Ryzyko:
        presja na zbyt częste dostarczanie wersji pośrednich.




                            Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                               Klasyczne błędy
                             Najlepsze praktyki
                       Podsumowanie i literatura


Miniaturyzacja kamieni milowych
Miniature Milestones




   Skuteczność:
    Potencjalne skrócenie nominalnego planu: Zadawalające
    Poprawienie widoczności postępu projektu: Bardzo dobre
    Szansa sukcesu w założonym terminie:      Dobra

   Ryzyko:
        brak




                               Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                           Klasyczne błędy
                         Najlepsze praktyki
                   Podsumowanie i literatura


Wykorzystywanie języków wysokiego poziomu
Rapid-Development Languages (RDLs)



   Skuteczność:
    Potencjalne skrócenie nominalnego planu: Dobre
    Poprawienie widoczności postępu projektu: Dobre
    Szansa sukcesu w założonym terminie:      Dobra

   Ryzyko:
       syndrom “srebrnego pocisku” oraz przeszacowanych
       oszczędności.



                           Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                           Klasyczne błędy
                         Najlepsze praktyki
                   Podsumowanie i literatura


Wykorzystywanie języków wysokiego poziomu
Rapid-Development Languages (RDLs)



                                                         Liczba linii kodu
    Liczba
    punktów
    funkcyjnych   Assembler                    C          C++                C#   Oracle
    1                   203                107             53              59         11
    100              20,300             10,700          5,300           5,900      1,100
    500             101,500             53,500         26,500          29,500      5,500
    1,000           203,000           100,7000         53,000          59,000     11,000
    5,000         1,015,000            535,000        265,000         295,000     55,000



                           Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                                Klasyczne błędy
                              Najlepsze praktyki
                        Podsumowanie i literatura


Realizacja przyrostowa
Evolutionary Delivery



   Skuteczność:
    Potencjalne skrócenie nominalnego planu: Dobre
    Poprawienie widoczności postępu projektu: Bardzo dobre
    Szansa sukcesu w założonym terminie:      Dobra

   Ryzyko:
        częsta zmiana wymagań
        nierealistyczny harmonogram i oczekiwania budżetowe
        nieefektywne wykorzystanie czasu pracy programistów


                                Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Outsourcing



  Skuteczność:
   Potencjalne skrócenie nominalnego planu: Bardzo Dobre
   Poprawienie widoczności postępu projektu: Brak
   Szansa sukcesu w założonym terminie:      Dobra

  Ryzyko:
      utrata widoczności postępu i kontroli
      wypływ doświadczenia poza firmę



                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                        Klasyczne błędy
                      Najlepsze praktyki
                Podsumowanie i literatura


Podsumowanie




     Unikajmy klasycznych błędów (stwórzmy ich własną listę)
     Stosujmy dobre praktyki:
         zmiejszenie ryzyka
         zwiększenie prawdopodobieństwa sukcesu (projekt wykonany w
         założonym czasie i kosztach)




                        Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                         Klasyczne błędy
                       Najlepsze praktyki
                 Podsumowanie i literatura


Literatura



      Steve McConnell Rapid Development. Microsoft Press, 1996
      Function Point Languages Table,
      http://www.qsm.com/?q=resources/function-point-languages-
      table/index.html
      Michiel van Genuchten Why is Software Late? An Empirical
      Study of Reasons for Delay in Software Development. IEEE
      Transactions on Software Engineering, 1991




                         Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania
Wstęp
                  Klasyczne błędy
                Najlepsze praktyki
          Podsumowanie i literatura


Pytania




                        Pytania



                  Kamil Jaśkiewicz    Szybkie tworzenie oprogramowania

More Related Content

Featured

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools
 

Featured (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Rapid Development

  • 1. Szybkie tworzenie oprogramowania (Rapid Development) Kamil Jaśkiewicz Politechnika Wrocławska Wydział Elektroniki Inżynieria Systemów Informatycznych 9 czerwca 2010
  • 2. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Agenda Agenda: Wstęp Charakterystyka klasycznych błędów Wybór najlepszych praktyk Podsumowanie i literatura Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 3. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wstęp Definicja: Szybkie tworzenie oprogramowania (Rapid development) to przede wszystkim krótsze od nominalnych harmonogramy oraz tworzenie oprogramowania szybciej niż robimy to teraz. Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 4. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wstęp Ogólna strategia szybkiego tworzenia oprogramowania: Unikanie klasycznych błędów Stosowanie podstaw inżynierii oprogramowania Zarządzanie ryzykiem Praktyki zorientowane na harmonogram Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 5. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wstęp Ogólna strategia szybkiego tworzenia oprogramowania: Unikanie klasycznych błędów Stosowanie podstaw inżynierii oprogramowania Zarządzanie ryzykiem Praktyki zorientowane na harmonogram Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 6. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wstęp Ogólna strategia szybkiego tworzenia oprogramowania: Unikanie klasycznych błędów Stosowanie podstaw inżynierii oprogramowania Zarządzanie ryzykiem Praktyki zorientowane na harmonogram Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 7. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wstęp Ogólna strategia szybkiego tworzenia oprogramowania: Unikanie klasycznych błędów Stosowanie podstaw inżynierii oprogramowania Zarządzanie ryzykiem Praktyki zorientowane na harmonogram Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 8. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wstęp Ogólna strategia szybkiego tworzenia oprogramowania: Unikanie klasycznych błędów Stosowanie podstaw inżynierii oprogramowania Zarządzanie ryzykiem Praktyki zorientowane na harmonogram Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 9. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Cztery filary szybkiego tworzenia oprogramowania Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 10. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Techniki zorientowane na harmonogram nie wystarczą Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 11. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Najczęściej popełniane błędy Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 12. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z ludźmi Źle dobrany zespół: zatrudnianie osób, które mogąc zacząć “od zaraz” brak weryfikacji umiejętności “Problematyczni”pracownicy: stwarzanie konfliktów w zespole spadek motywacji pozostałych członków zespołu ponowne wykonywanie pracy wykonanej przez takiego pracownika Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 13. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z ludźmi Dodawanie nowych osób do opóźnionego projektu: dolewanie benzyny do ognia zmniejszanie produktywności członków zespołu potencjalne konflikty Nierealne oczekiwania: zbyt optymistyczne estymacje sprawianie wrażenia zbyt długo trwających projektów Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 14. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z ludźmi Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 15. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z procesem Porzucenie planu: dotyczy projektów realizowanych pod presją nieskoordynowana praca Pomijanie zadań w estymacjach: umykanie uwadze mało widocznych zadań brak śledzenia poprzednich projektów i wykonywanych tam zadań pominięte zadania dodają średnio 20-30% czasu do harmonogramu (Michiel van Genuchten) Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 16. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z procesem Skrócenie analizy oraz planowania: “nie marnujmy czasu, zacznijmy od razu programować” - jumping into coding tworzenie “haków”i konieczność ich późniejszego poprawiania Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 17. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z procesem Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 18. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z produktem Zmiana zakresu funkcjonalności: przeciętny projekt doświadcza zmiany 25% wymagań w czasie jego trwania konsekwencja: wydłużenie harmonogramu Negocjacje typu “push-me, pull-me”: zaakceptowanie przez managera opóźnienia w harmonogramie dodanie dodatkowych zadań/wymagań Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 19. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Błędy związane z technologią Syndrom “srebnego pocisku”: zakładanie lepszej od rzeczywistości produktywności po zastosowaniu nowych narzędzi niska produktywność w początkowych fazach używania nowej techonologii niewielkie skrócenie czasu harmonogramu Niestosowanie systemów kontroli wersji: nadpisywanie wyników pracy innych osób przesyłanie plików poprzez pocztę e-mail lub w inny sposób Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 20. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Codzienna kompilacja oraz testy Daily Build and Smoke Test Skuteczność: Potencjalne skrócenie nominalnego planu: Dobre Poprawienie widoczności postępu projektu: Dobre Szansa sukcesu w założonym terminie: Bardzo dobra Ryzyko: presja na zbyt częste dostarczanie wersji pośrednich. Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 21. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Miniaturyzacja kamieni milowych Miniature Milestones Skuteczność: Potencjalne skrócenie nominalnego planu: Zadawalające Poprawienie widoczności postępu projektu: Bardzo dobre Szansa sukcesu w założonym terminie: Dobra Ryzyko: brak Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 22. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wykorzystywanie języków wysokiego poziomu Rapid-Development Languages (RDLs) Skuteczność: Potencjalne skrócenie nominalnego planu: Dobre Poprawienie widoczności postępu projektu: Dobre Szansa sukcesu w założonym terminie: Dobra Ryzyko: syndrom “srebrnego pocisku” oraz przeszacowanych oszczędności. Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 23. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Wykorzystywanie języków wysokiego poziomu Rapid-Development Languages (RDLs) Liczba linii kodu Liczba punktów funkcyjnych Assembler C C++ C# Oracle 1 203 107 53 59 11 100 20,300 10,700 5,300 5,900 1,100 500 101,500 53,500 26,500 29,500 5,500 1,000 203,000 100,7000 53,000 59,000 11,000 5,000 1,015,000 535,000 265,000 295,000 55,000 Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 24. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Realizacja przyrostowa Evolutionary Delivery Skuteczność: Potencjalne skrócenie nominalnego planu: Dobre Poprawienie widoczności postępu projektu: Bardzo dobre Szansa sukcesu w założonym terminie: Dobra Ryzyko: częsta zmiana wymagań nierealistyczny harmonogram i oczekiwania budżetowe nieefektywne wykorzystanie czasu pracy programistów Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 25. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Outsourcing Skuteczność: Potencjalne skrócenie nominalnego planu: Bardzo Dobre Poprawienie widoczności postępu projektu: Brak Szansa sukcesu w założonym terminie: Dobra Ryzyko: utrata widoczności postępu i kontroli wypływ doświadczenia poza firmę Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 26. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Podsumowanie Unikajmy klasycznych błędów (stwórzmy ich własną listę) Stosujmy dobre praktyki: zmiejszenie ryzyka zwiększenie prawdopodobieństwa sukcesu (projekt wykonany w założonym czasie i kosztach) Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 27. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Literatura Steve McConnell Rapid Development. Microsoft Press, 1996 Function Point Languages Table, http://www.qsm.com/?q=resources/function-point-languages- table/index.html Michiel van Genuchten Why is Software Late? An Empirical Study of Reasons for Delay in Software Development. IEEE Transactions on Software Engineering, 1991 Kamil Jaśkiewicz Szybkie tworzenie oprogramowania
  • 28. Wstęp Klasyczne błędy Najlepsze praktyki Podsumowanie i literatura Pytania Pytania Kamil Jaśkiewicz Szybkie tworzenie oprogramowania