Mabilis na Pag-unlad ng Software 101

May -Akda: Judy Howell
Petsa Ng Paglikha: 26 Hulyo 2021
I -Update Ang Petsa: 23 Hunyo 2024
Anonim
Ang mga taong ganito ay magaling mag-drawing!
Video.: Ang mga taong ganito ay magaling mag-drawing!

Nilalaman


Takeaway:

Ang pamamaraan ng pagbuo ng software na ito ay naghihikayat sa pakikipagtulungan at kakayahang umangkop upang makatulong na maghatid ng isang de-kalidad na produkto.

Nagkaroon ng maraming buzz sa paligid ng Agile sa software engineering at mundo ng pag-unlad ng application. Ang maliksi ay hindi isang konsepto, ngunit isang mindset. Tulad ng iminumungkahi ng pangalan, tumutok ito sa pagiging nababaluktot at dynamic. Ang pamamaraang ito ay nag-aalis din ng paghihiwalay sa pagitan ng mga phase ng pag-unlad ng software, at hinihikayat ang pangkat ng pag-unlad na makipagtulungan sa mga kalidad na analista. Binibigyang diin din nito ang pagkakasangkot ng mga customer upang makabuo, magtayo at maghatid ng isang de-kalidad na produkto. Narito nang mabuti tingnan ang Agile, kung paano ito gumagana at ilang mga pinakamahusay na kasanayan para sa sikat na pamamaraan ng pagbuo ng software na ito.

Isang Maikling Balangkas sa Life Development Life cycle

Ang siklo ng buhay ng software development (SDLC) ay ang proseso ng paglikha ng mga solusyon sa software o pagbabago ng umiiral na mga istraktura na inilaan upang magsilbi sa isang partikular na problema. Saklaw nito ang iba't ibang mga hakbang, na sinusundan sa isang lohikal na pagkakasunud-sunod. Sa tradisyunal na mga modelo ng SDLC, ito ang mga hakbang na sinusundan ng isa pa, at karaniwang isinasagawa sa paghihiwalay:


  1. Mga kinakailangang pagtitipon mula sa mga kliyente
  2. Sistema ng pagsusuri at pagiging posible
  3. Disenyo at pagmomolde
  4. Coding o pagpapatupad
  5. Pagsubok
  6. Paghahatid at paghahatid
  7. Pagpapanatili at pagbabago ng mga kahilingan

Sa isang tipikal na pag-unlad ng software, ang aktwal na mga gumagamit, o kliyente, ay kasangkot sa proseso ng mga kinakailangang pangangalap at pagkatapos sa pagsubok ng beta. Gayunpaman, ang problema sa tradisyunal na modelo na ito ay ang pagpapanatili ng bahagi ng ikot ay nagiging isang mahirap at sa halip mahal na kapakanan. Maraming beses, walang saklaw para sa mga pagpapahusay o pagbabago sa loob ng system. Sa isang pinakamasamang kaso, ang software na na-engineered o binuo ay hindi naaayon sa aktwal na mga pagtutukoy at mga inaasahan ng customer, na nangangahulugan na ang koponan ng pag-unlad ay maaaring kailanganing simulan muli ang buong proseso.

Bakit Magkakaiba ang Mga Mabilisang Pag-unlad

Ang pinakakaraniwang tradisyonal na modelo ng SDLC - ang modelo ng talon, mabilis na aplikasyon ng aplikasyon, modelo ng iterative, modelo ng spiral, atbp - ay may sariling hanay ng mga kalamangan at kahinaan. Ito ay tumagal ng edad bago masuri ng mga tao kung paano makatotohanang ang mga modelong ito. Nararapat silang magkasya sa perpektong mga sitwasyon, ngunit laging praktikal sila pagdating sa mga application sa real-world. Bilang isang resulta, ang mga koponan sa pag-unlad ng software ay humarap sa maraming mga hamon. Ang ilan sa mga limitasyon ng maginoo na mga modelo ng SDLC ay kinabibilangan ng:


  • Hindi nila pinapayagan na mabago ang mga kinakailangan sa mga susunod na yugto dahil ang mga ito ay nagyelo sa dokumento ng detalye ng software na kinakailangan. Sa ilang mga kaso, ang mga inaasahan ng mga gumagamit ay hindi naka-unstated o hindi maunawaan.
  • Ang mga gumagamit ng pagtatapos ay hindi nakikita ang system hanggang sa ito ay kumpleto. Nagbibigay ito ng napakaliit na saklaw para sa paggawa ng mga mungkahi at pagbabago.
  • Ang tradisyonal na SDLC ay maaaring lumikha ng isang malaking puwang ng komunikasyon sa pagitan ng mga developer at mga tagasubok, dahil sila ay magkahiwalay na mga phase, at walang pakikipagtulungan sa pagitan ng dalawang partido.
  • Ang pagsubok sa puting kahon ay hindi maaaring gawin nang epektibo.

Ang paggamit ng Agile ay nalulutas ang marami sa mga problemang ito dahil sa halip na isang hakbang-hakbang na proseso, kumikilos ito bilang higit sa isang pilosopiya at balangkas na naglalayong tulungan ang mga koponan na makipagtulungan, tumugon upang baguhin at bumuo ng isang tapos na produkto na kasama ang maraming input mula sa lahat mga partido, kabilang ang mga gumagamit.

Mga Masasamang Gawi

Ang paglitaw ng Agile pamamaraan ay hindi bababa sa isang rebolusyonaryong reporma sa pamamaraan ng pag-unlad ng software, sapagkat nagbibigay ito ng sapat na silid para sa mga koponan ng proyekto na maging malikhain at maraming nagagawa habang kumukuha pa rin ng kolektibong pagmamay-ari ng bawat yugto ng produkto. Sa pamamagitan ng pagsunod sa landas na Mabilis, ang mga indibidwal na kalahok sa koponan ng pagbuo ng software ay nakakapag-kondisyon ng kanilang mga isip upang yakapin ang kawalan ng katiyakan, makayanan ang mga pagbabago, at bumuo ng isang mas mahusay na produkto bilang isang proseso, sa halip na sa hiwalay, walang pinag-aralan na mga hakbang.

Bagaman walang komprehensibong listahan ng mga simulain ng Agile, mayroong ilang mga kasanayan na ipinangangalat ng Agile. Kabilang dito ang:

  1. Pag-unlad ng Pagsubok sa pagsubok (TDD)
    Sa isip, ang mga developer ay dapat magsulat muna ng mga kaso ng pagsubok para sa piraso ng pag-andar na pupunta sa code para sa. Titiyak nito ang mahusay na kalidad ng code, na mas malamang na masira sa mga pambihirang kondisyon. Tumutulong din ang prosesong ito upang matiyak na natukoy ang mga pagtutukoy ng gumagamit.
  2. Parehong Programming
    Sa pag-unlad ng Agile, ang mga programmer ay karaniwang gumana sa parehong problema sa mga pares, kung saan ang isang tao ay sumusulat ng code (driver) at ang isa pa ay sinusuri ang code at nagbibigay ng mga ideya at mungkahi (navigator). Pinahuhusay nito ang pagiging produktibo at binabawasan ang oras na kinakailangan upang suriin ang code.
  3. Code Refactoring
    Ang pag-refact ng code ay nagsasangkot sa paghiwa-hiwalay ng code sa mas maliit at mas simpleng mga module na maaaring (at dapat) umiiral nang nakapag-iisa sa tamang senaryo. Pinahuhusay nito ang kakayahang mabasa, pagsubok at pagpapanatili ng code sa isang mahusay na lawak.
  4. Aktibong Pakikilahok mula sa Aktwal na Mga stakeholder
    Kasunod ng mga regular na agwat ng isang tiyak na tagal ng oras (tinukoy bilang "ss"), ang mga kliyente ay dapat makatanggap ng isang makabuluhang gumaganang prototype ng software. Pinapayagan nito ang mga developer na makakuha ng puna sa kung ano ang theyre building habang sila ay pupunta.
  5. Tratuhin ang mga Kinakailangan bilang isang Prioritized Stack
    Sa Agile, mahalaga na maikategorya ang mga kinakailangan batay sa kanilang kahalagahan. Maaaring kabilang dito ang parehong pahiwatig pati na rin ang tahasang mga inaasahan ng customer sa produkto ng software na binuo. Ang koponan ng pag-unlad ng software ay dapat na kolektibong tantyahin ang oras at mapagkukunan na kanilang pupuntahan upang mamuhunan sa pagpapatupad ng tampok, at mapa na batay sa mga kinakailangan ng gumagamit at ang kamag-anak na pagkakasunud-sunod kung saan nila haharapin ang bawat bahagi ng proyekto.
  6. Pagsubok ng Regression
    Ang pagsusuri ng pagkabagabag ay nagsasangkot sa pagsubok sa pag-andar ng isang buong application pagkatapos ng pagdaragdag ng isang bagong tampok o pagbabago ng umiiral na pag-andar sa code. Makakatulong ito upang matiyak na ang mga pagbabago ay hindi nasira ang umiiral na code.

Bakit Pumunta Agile?

Ang maliksi ay inireseta ang ilang mga kasanayan, ngunit hindi nito ipinatutupad ang mga ito sa isang koponan ng pagbuo ng software. Pagkatapos ng lahat, kung walang saklaw para sa mga pagsasaayos at paglihis, ang layunin ng Agile ay higit na natalo. Ang pagsasama kahit ilang mga aspeto ng pag-unlad ng Agile sa isang proyekto ay makakatulong sa mga koponan ng pag-unlad ng software na makayanan ang hindi inaasahang mga hamon at, sa huli, makabuo ng isang mas mahusay na produkto sa isang mas mahusay na paraan.

Walang Mga bug, Walang Stress - Ang Iyong Hakbang sa Hakbang Patnubay sa Paglikha ng Software na Pagbabago ng Buhay nang Walang Pagsira sa Iyong Buhay

Hindi mo mapagbuti ang iyong mga kasanayan sa pagprograma kapag walang nagmamalasakit sa kalidad ng software.