Software EngineeringDevOpsmalinis na codeTeknolohiya
Automation kumpara sa Craftsmanship sa Software
Ang pag-unlad ng software ay madalas na nararamdaman tulad ng isang tug-of-war sa pagitan ng mabilis na bilis ng mga awtomatikong tool at ang sinasadya, high-touch na diskarte ng manu-manong pagkakagawa. Habang sinusukat ng automation ang mga operasyon at inaalis ang paulit-ulit na pagod, tinitiyak ng pagkakayari na ang pinagbabatayan na arkitektura ng isang sistema ay nananatiling elegante, napapanatiling, at may kakayahang malutas ang kumplikado, nuanced na mga problema sa negosyo na hindi maunawaan ng mga script.
Mga Naka-highlight
Ang automation ay mahusay sa 'paggawa ng mga bagay nang tama,' habang ang pagkakayari ay nakatuon sa 'paggawa ng mga tamang bagay.'
Ginagamit ng isang craftsman ang automation bilang isang tool, hindi bilang isang kapalit para sa kritikal na pag-iisip.
Sinusukat ng automation ang output; Ang pagkamalikhain ay sumusukat sa kalidad ng output na iyon.
Kung walang pagkamalikhain, ang automation ay maaaring humantong sa mabilis na paglaganap ng masamang code.
Ano ang Software Automation?
Ang paggamit ng mga tool at script upang mahawakan ang paulit-ulit na pag-unlad, pagsubok, at mga gawain sa pag-deploy nang walang interbensyon ng tao.
Ang mga modernong pipeline ng CI / CD ay maaaring mabawasan ang mga oras ng pag-deploy mula sa mga araw hanggang sa ilang minuto lamang.
Ang mga awtomatikong suite ng pagsubok ay maaaring magsagawa ng libu-libong mga sitwasyon sa gilid sa isang maliit na bahagi ng oras na kinakailangan ng isang tao.
Pinapayagan ng Infrastructure as Code ang buong mga kapaligiran ng server na ma-replicate nang perpekto gamit ang simpleng mga file ng pagsasaayos.
Ang henerasyon ng code na hinihimok ng AI ay maaari na ngayong magmungkahi ng buong pag-andar batay sa mga komento sa natural na wika.
Ang automation ay makabuluhang nagpapababa ng 'ibig sabihin ng oras sa pagbawi' kapag ang mga pagkabigo ng software ay nangyayari sa produksyon.
Ano ang Software Craftsmanship?
Isang pilosopiya na nakatuon sa propesyonal na kasanayan, responsibilidad, at artistikong kalidad ng pagsulat na mapapanatili, matatag na code.
Ang Software Craftsmanship Manifesto ay nilikha noong 2009 bilang isang ebolusyon ng mga prinsipyo ng Agile.
Inuuna ng Craftsmanship ang 'mahusay na ginawa na software' kaysa sa 'gumaganang software' lamang upang matiyak ang pangmatagalang kakayahang mabuhay.
Binibigyang-diin nito ang isang modelo ng mentorship, madalas na gumuhit ng mga pagkakatulad sa medyebal na pag-unlad ng apprentice-to-master.
Ang mga kasanayan sa Malinis na Code, tulad ng makabuluhang pagbibigay ng pangalan at maliliit na pag-andar, ay pundasyon sa bapor.
Ang mga practitioner ay nakatuon sa pangmatagalang gastos ng pagmamay-ari sa halip na matugunan lamang ang agarang mga deadline ng proyekto.
Talahanayang Pagkukumpara
Tampok
Software Automation
Software Craftsmanship
Pangunahing Layunin
Bilis at pagkakapare-pareho
Kalidad at kakayahang mapanatili
Pinakamahusay para sa
Paulit-ulit, mataas na dami ng mga gawain
Kumplikadong lohika at arkitektura
Elemento ng Tao
Mababa (sa sandaling na-configure)
Mataas (nangangailangan ng malalim na pokus)
Kakayahang sumukat
Napakahusay at agarang
Mabagal at organiko
Paghawak ng Error
Mabilis na nahuli ang mga pag-urong
Pinipigilan ang mga lohikal na kapintasan sa pamamagitan ng disenyo
Profile ng Gastos
Mataas na pag-setup, mababang gastos sa pagpapatakbo
Pare-pareho ang pamumuhunan sa talento
Kakayahang umangkop
Matigas sa loob ng tinukoy na mga parameter
Kakayahang umangkop sa mga natatanging pangangailangan
Detalyadong Paghahambing
Kahusayan at bilis
Ang automation ay ang hindi mapag-aalinlanganan na kampeon ng bilis, na nagpapahintulot sa mga koponan na itulak ang mga update at magpatakbo ng mga pagsubok sa buong orasan. Gayunpaman, ang bilis ay isang tabak na may dalawang talim; Kung i-automate mo ang isang magulo na proseso, mas mabilis kang lumikha ng teknikal na utang. Ang pagkakayari ay kumikilos bilang kinakailangang preno, tinitiyak na ang gawain na pinabilis ay talagang nagkakahalaga ng paggawa sa katagalan.
Pagiging maaasahan at pagpapanatili
Ang mga awtomatikong sistema ay nagbibigay ng isang safety net na nakakakuha ng maliliit na pagkakamali bago sila maabot ang gumagamit, na tinitiyak ang isang baseline ng pagiging maaasahan. Gayunpaman, ang malalim na pag-unawa na dinadala ng isang craftsman sa isang codebase ay nagbibigay-daan para sa intuitive na pag-troubleshoot na walang script ang maaaring gayahin. Ang isang mahusay na ginawa na sistema ay madalas na mas madaling i-automate dahil ang lohika nito ay malinis at mahuhulaan.
Innovation at Pagkamalikhain
Kapag i-automate ng mga developer ang mga nakakainip na bahagi ng kanilang mga trabaho, pinalaya nila ang enerhiya ng kaisipan para sa malikhaing paglutas ng problema na tumutukoy sa pagkamalikhain. Ang pagkakayari ay kung saan nangyayari ang tunay na pagbabago, dahil nagsasangkot ito ng paggawa ng mga nuanced na desisyon tungkol sa karanasan ng gumagamit at disenyo ng system. Sinusuportahan ito ng automation sa pamamagitan ng paghawak ng 'paano' upang ang mga tao ay maaaring tumuon sa 'bakit'.
Epekto sa Ekonomiya
Ang pamumuhunan sa automation ay karaniwang nangangailangan ng isang makabuluhang paunang gastos sa mga tool at pagsasaayos ngunit nagbabayad sa pamamagitan ng nabawasan na manu-manong paggawa sa paglipas ng panahon. Ang pagkamalikhain ay kumakatawan sa isang matatag na pamumuhunan sa senior talent at mga review ng mga kasamahan, na maaaring mukhang mahal sa simula. Sa huli, ang parehong mga diskarte ay naglalayong mabawasan ang 'kabuuang gastos ng pagmamay-ari' sa pamamagitan ng pag-iwas sa buggy, hindi maaayos na software.
Mga Kalamangan at Kahinaan
Automation
Mga Bentahe
+Alisin ang Pagkakamali ng Tao
+Pinapayagan ang mabilis na pag-scale
+Nakakatipid ng oras sa pangmatagalang panahon
+Pare-pareho ang mga resulta
Nakumpleto
−Mataas na paunang pag-setup
−Malutong sa mga pagbabago
−Kulang sa nuanced na paghuhusga
−Nangangailangan ng patuloy na pagpapanatili
Pagkamalikhain
Mga Bentahe
+Superior kalidad ng code
+Mas madaling umunlad
+Malalim na mapapanatili
+Mataas na moral ng developer
Nakumpleto
−Tumatagal ng mas mahaba sa simula
−Mas mataas na gastos sa talento
−Mas mahirap sukatin
−Maaari itong humantong sa labis na pag-inhinyero
Mga Karaniwang Maling Akala
Alamat
Sa kalaunan ay papalitan ng automation ang mga programmer ng tao.
Katotohanan
Ang mga tool tulad ng AI at CI / CD ay humahawak sa taktikal na pagpapatupad, ngunit hindi nila maaaring tukuyin ang halaga ng negosyo o mag-navigate sa mga kumplikadong kinakailangan ng tao. Ang pangangailangan para sa mga craftsmen upang gabayan ang mga tool na ito ay talagang tumataas habang ang mga sistema ay nagiging mas kumplikado.
Alamat
Ang software craftsmanship ay isang dahilan lamang upang gumana nang mabagal.
Katotohanan
Habang maaaring tumagal ng mas matagal upang magsulat ng isang malinis na function ngayon, pinipigilan nito ang mga oras ng pag-debug at muling pagsulat sa susunod na buwan. Ang tunay na pagkakayari ay talagang nagdaragdag ng 'net velocity' sa buhay ng isang proyekto.
Alamat
Kailangan mong pumili ng isa sa iba.
Katotohanan
Ang mga ito ay hindi magkasalungat na pwersa ngunit sa halip ay dalawang panig ng parehong barya. Ang pinakamatagumpay na mga koponan ng engineering ay gumagamit ng mga high-end na craftsmanship upang bumuo ng mga bahagi na pagkatapos ay i-automate nila para sa paghahatid.
Alamat
Ang automation ay para lamang sa mga malalaking negosyo.
Katotohanan
Kahit na ang mga solo developer ay nakikinabang mula sa simpleng automation, tulad ng linting o pangunahing mga runner ng pagsubok. Hindi ito tungkol sa laki ng koponan, kundi sa pagnanais na itigil ang pag-aaksaya ng oras sa paulit-ulit na gawain.
Mga Madalas Itanong
Maaari bang umiiral ang automation nang walang pagkamalikhain?
Sa teknikal na paraan oo, ngunit kadalasan ay nagtatapos ito sa kapahamakan. Kung i-automate mo ang pag-deploy ng hindi maayos na nakasulat, 'spaghetti' code, naghahatid ka lamang ng mga bug sa iyong mga gumagamit sa isang mas mataas na dalas. Ang pagkakayari ay nagbibigay ng matatag na pundasyon na ginagawang epektibo at ligtas ang automation.
Itinuturing bang craftsmanship ang code na nabuo ng AI?
Ang AI ay isang mabisang kasangkapan sa kit ng artesano, tulad ng isang power saw sa isang karpintero. Ang pagkakayari ay namamalagi sa kung paano sinusuri ng isang developer, pinuhin, at isinasama ang code na nabuo ng AI sa isang magkakaugnay, napapanatiling arkitektura. Ang paggamit ng raw AI output nang walang masusing pagsisiyasat ay kabaligtaran ng pagkakagawa.
Paano ko sisimulan ang pagpapatupad ng craftsmanship sa isang mabilis na kapaligiran?
Magsimula nang maliit sa pamamagitan ng pag-ampon ng panuntunan na 'iwanan ito nang mas mahusay kaysa sa natagpuan mo' para sa bawat gawain. Ipatupad ang mga pagsusuri sa peer code at manatili sa mga pangunahing prinsipyo ng malinis na code tulad ng paglalarawan ng pagbibigay ng pangalan. Hindi mo kailangang muling isulat ang lahat nang sabay-sabay; Ang pagkamalikhain ay isang ugali ng paggawa ng pare-pareho, nakatuon sa kalidad na mga pagpipilian araw-araw.
Anong mga gawain ang dapat kong i-automate muna?
Hanapin ang 'pagsisikap'—mga gawain na manu-mano, paulit-ulit, at walang pangmatagalang halaga. Ang pagsubok, pag-deploy, at pag-setup ng kapaligiran ay ang mga klasikong panimulang punto. Kung natagpuan mo ang iyong sarili na gumagawa ng parehong pagkakasunud-sunod ng mga pag-click o utos nang higit sa tatlong beses, ito ay isang pangunahing kandidato para sa isang script.
Nangangahulugan ba ang pagkakayari na ang code ay hindi kailanman may mga bug?
Hindi sa lahat, ngunit nangangahulugan ito na ang mga bug na iyon ay mas madaling hanapin at ayusin. Ang isang mahusay na ginawa codebase ay modular at transparent, kaya kapag may mali, ang epekto ay nakapaloob at ang lohika ay sapat na malinaw para sa isang developer upang matukoy ang ugat na sanhi nang mabilis.
Bakit laging binabanggit ang 'Teknikal na Utang' sa debate na ito?
Ang teknikal na utang ay ang gastos ng pagpili ng isang mabilis, magulo na solusyon kaysa sa isang mahusay na ginawa. Maaaring itago ng automation ang utang na ito nang ilang sandali sa pamamagitan ng paggawa ng mga pag-deploy na madali, ngunit sa kalaunan, ang utang ay nararapat kapag ang code ay nagiging masyadong gusot upang baguhin. Ang pagkamalikhain ay ang kasanayan ng pagbabayad ng utang na iyon nang regular.
Paano nakakatulong ang automation sa burnout ng developer?
Ang burnout ay madalas na nagmumula sa pagkabigo sa paulit-ulit, 'pipi' na trabaho at takot na masira ang mga bagay. Tinatanggal ng automation ang stress ng manu-manong pag-deploy at ang pagkabagot ng paulit-ulit na pagsubok, na nagpapahintulot sa mga developer na gumastos ng mas maraming oras sa malikhain, kapaki-pakinabang na mga aspeto ng pagbuo ng software.
Ang software craftsmanship ba ay para lamang sa mga senior developer?
Hindi, ito ay isang pag-iisip na maaaring gamitin ng sinumang developer mula sa unang araw. Sa katunayan, maraming mga junior developer ang natagpuan na ang pagtuon sa pagkakayari ay tumutulong sa kanila na matuto nang mas mabilis dahil pinipilit silang maunawaan ang 'bakit' sa likod ng code sa halip na kopyahin at i-paste lamang ang mga snippet.
Ang mga tool tulad ng 'no-code' platform ay papatayin ang pagkamalikhain?
Ang mga platform na walang code ay isang anyo ng matinding automation para sa mga simpleng kaso ng paggamit. Gayunpaman, para sa natatanging lohika ng negosyo, mga pangangailangan sa mataas na pagganap, o kumplikadong pagsasama, kinakailangan pa rin ang pasadyang ginawa na code. Ang mga platform na ito ay karaniwang inililipat lamang ang pagkakayari sa isang mas mataas na antas ng abstraction.
Ano ang "Manifesto para sa Software Craftsmanship"?
Ito ay isang maikling dokumento na nagbibigay-diin sa apat na pangunahing halaga: mahusay na ginawa na software, patuloy na pagdaragdag ng halaga, isang komunidad ng mga propesyonal, at produktibong pakikipagsosyo. Isinulat ito upang ipaalala sa mga developer na ang pagsulat ng code ay isang propesyonal na kalakalan na nangangailangan ng patuloy na pag-aaral at pagmamalaki sa trabaho ng isang tao.
Hatol
Pumili ng automation kapag kailangan mong sukatin ang maaasahang mga proseso at mabilis na lumipat nang hindi sinisira ang mga bagay. Sumandal sa pagkakayari kapag nagtatayo ng pangunahing lohika ng isang natatanging produkto kung saan ang kalidad, kakayahang mabasa, at pangmatagalang ebolusyon ay ang pinakamataas na priyoridad.