Inafahamika sana kwamba AI za uzalishaji (generative AI) zinaweza kuunda picha, zikizalisha picha halisi, vielelezo, na michoro kwa kufuata maelekezo tu.
Wakati huohuo, katika ulimwengu wa biashara, umakini unaelekezwa kwenye uwezo wa AI za uzalishaji wa kutengeneza programu.
AI inayotegemea mazungumzo inatekelezwa kupitia mifumo mikubwa ya lugha (large language models) inayoipa uwezo mkubwa wa kuzungumza katika lugha mbalimbali na kutafsiri kati yao.
Lugha za programu, zinazotumiwa kuunda programu, pia ni aina ya lugha. Waandaaji programu wa kibinadamu, kwa maana fulani, hutafsiri mahitaji ya programu yanayopokelewa kwa mdomo kuwa lugha za programu.
Kwa sababu hii, AI za uzalishaji za mazungumzo zinazotumia mifumo mikubwa ya lugha pia zina ujuzi mkubwa katika kuandaa programu.
Zaidi ya hayo, kuandaa programu ni aina ya kazi ya kiakili ambapo usahihi wa matokeo unaweza mara nyingi kuthibitishwa kiotomatiki na papo hapo. Hii ni kwa sababu kuendesha programu iliyoundwa kunawezesha kubaini kiotomatiki kama matokeo yanayotakiwa yametolewa.
Kwa kweli, waandaaji programu wa kibinadamu mara nyingi huunda programu za majaribio sambamba na programu kuu ili kuthibitisha kwamba programu kuu inafanya kazi inavyokusudiwa, wakikagua tabia yake kadri maendeleo yanavyoendelea.
AI za uzalishaji pia zinaweza kuendelea na uandaaji programu huku zikifanya majaribio, ikiruhusu utaratibu ambapo, ikiwa binadamu atatoa maelekezo sahihi, AI inaweza kufanya marudio kiotomatiki na kukamilisha programu hadi ipite majaribio.
Bila shaka, kutokana na mapungufu ya uwezo wa AI za uzalishaji katika kuandaa programu na utata wa maelekezo ya binadamu, kuna visa vingi ambapo majaribio hayawezi kupitishwa hata baada ya marudio mengi. Pia, majaribio yanaweza kutosha au kuwa si sahihi, mara nyingi yakisababisha makosa (bugs) au matatizo katika programu iliyokamilika.
Hata hivyo, kadri uwezo wa AI za uzalishaji unavyoimarika, wahandisi wa kibinadamu huboresha mbinu zao za kutoa maelekezo, na ujuzi wa AI za uzalishaji katika kuandaa programu huimarishwa kupitia utafutaji kwenye intaneti, upeo wa kuunda programu zinazofaa kiotomatiki unaongezeka kila siku.
Kwa kuongezea, kutokana na umakini wa ulimwengu wa biashara, kampuni za juu zinazofanya utafiti na maendeleo ya AI za uzalishaji pia zinalenga kuboresha uwezo wa AI za uzalishaji katika kuandaa programu.
Katika hali kama hizi, upanuzi wa maeneo na wingi ambapo uandaaji programu kiotomatiki unaweza kukabidhiwa kwa AI za uzalishaji unatarajiwa kuongezeka kasi.
Kuna visa vingi ambapo watu ambao hawajawahi kuunda programu hapo awali wameanzisha mazingira ya kimsingi ya uandaaji programu kulingana na habari za intaneti, kisha wakaruhusu AI za uzalishaji kushughulikia uandaaji programu, wakikamilisha programu kwa ushirikiano.
Mimi mwenyewe, kama muandaaji programu, hutumia AI za uzalishaji kwa uandaaji programu. Mara tu ninapoielewa, ninaweza kukamilisha programu bila kuhariri programu kabisa, kwa kunakili tu programu kwenye faili au kukata na kubandika kulingana na maelekezo ya AI za uzalishaji.
Bila shaka, kuna matukio mengi ambapo nakumbana na matatizo. Haya mara nyingi husababishwa na kompyuta yangu au zana za kuandaa programu kuwa na mipangilio tofauti kidogo na mipangilio ya kawaida, au vipengele vya programu huria kuwa vipya zaidi kuliko vile ambavyo AI ya uzalishaji ilijifunza, na hivyo kusababisha pengo la maarifa, au wakati mwingine maudhui yangu niliyoomba kuwa ya kipekee kidogo.
Katika hali nyingi, ikiwa hakuna tofauti ndogo kama hizo au hali maalum, na nikiielekeza kuunda kipengele cha kawaida sana cha programu, programu zinazofaa hutengenezwa.
Kuelekea Zama za Liquidware
Kama msanidi programu, ninaweza kutoa programu ninazotengeneza. Na programu ambazo sisi wahandisi tunatoa hutumiwa na watumiaji mbalimbali.
Baadaye ambapo mtu yeyote anaweza kufanya usanidi huu wa programu kwa kutumia AI ya uzalishaji ni mwendelezo wa mjadala hadi sasa.
Hata hivyo, huu si mabadiliko tu kwenye upande wa usanidi wa programu. Mabadiliko makubwa pia yatatokea upande wa mtumiaji.
Kuielekeza AI ya uzalishaji kwa mdomo ili kuongeza au kubadilisha vipengele kwenye programu kunaweza kufanywa si tu wakati wa awamu ya usanidi kabla ya programu kutolewa bali pia wakati inatumiwa. Zaidi ya hayo, inaweza kufanywa na watumiaji wa programu wenyewe.
Wasanii wa programu wanahitaji tu kufafanua mipaka inayoruhusiwa na isiyoweza kubadilishwa na kutoa programu na kipengele cha ubinafsishaji kinachotumia AI ya uzalishaji.
Hii ingeruhusu watumiaji kuomba AI ya uzalishaji kubadilisha masuala madogo ya urahisi wa matumizi au mapendeleo ya muundo wa skrini.
Zaidi ya hayo, itawezekana kuongeza vipengele rahisi vinavyopatikana katika programu zingine, kufanya mchanganyiko wa shughuli nyingi kwa kubofya mara moja, au kutazama skrini zinazofikiwa mara kwa mara kwenye onyesho moja.
Kutoka kwa mtazamo wa msanidi programu, kuwezesha ubinafsishaji kama huo wa mtumiaji kunatoa faida kubwa. Huondoa hitaji kwao kuongeza vipengele kulingana na maombi ya mtumiaji, na kwa kuzingatia kuwa inaweza kuongeza umaarufu wa programu kwa kuepuka maoni hasi na kutoridhika kuhusu urahisi wa matumizi, ni ushindi mkubwa.
Wakati watumiaji wanaweza kubadilisha skrini na kazi kwa uhuru kwa njia hii, dhana hiyo inatofautiana sana na kile tulichokiita "programu" jadi.
Ingefaa kuiita "liquidware" kuashiria kuwa ni yenye majimaji zaidi na inayoweza kubadilika kuliko programu (ambayo ni rahisi ikilinganishwa na vifaa), na kwamba inamfaa mtumiaji kikamilifu.
Hapo awali, kazi zilitambuliwa tu na vifaa, lakini kisha programu inayoweza kubadilishwa iliibuka, ikiruhusu kazi kutambuliwa na mchanganyiko wa vifaa + programu.
Kutoka hapo, tunaweza kufikiria liquidware ikitokea, ambayo inahusu sehemu zinazoweza kurekebishwa na AI ya uzalishaji. Hivyo, kazi za jumla zingetambuliwa na vifaa + programu (zinazotolewa na wasanidi) + liquidware (marekebisho ya mtumiaji).
Katika enzi hii ya liquidware, mawazo ya kurekebisha upande wa mtumiaji yatashamiri.
Wazo la mageuzi la kipekee lililobuniwa na mtumiaji mmoja linaweza kuwa mada moto kwenye mitandao ya kijamii, na kusababisha wengine kuiga na kurekebisha liquidware mbalimbali.
Pia, liquidware inayoweza kuunganisha na kushughulikia aina mbalimbali za programu itaibuka. Hii ingeruhusu watumiaji kutazama ratiba za matukio kutoka majukwaa mengi tofauti ya SNS katika programu moja, au kuunganisha matokeo ya utafutaji kutoka majukwaa mengi.
Kwa njia hii, katika ulimwengu ambapo liquidware imeenea, vifaa mbalimbali, ikiwemo kompyuta na simu mahiri, vitatoa kazi zinazofaa kikamilifu maisha na shughuli za kila mtu.
Jambo Linaloendelea Sasa
Kile kilicho muhimu kwa wahandisi wa programu kama mimi ni kwamba 'liquidware' si dhana ya siku zijazo au jambo la miaka kadhaa ijayo.
Hii ni kwa sababu 'liquidware' rahisi tayari inaweza kufikiwa.
Kwa mfano, tuseme mimi ni mhandisi ninayetengeneza programu ya wavuti (web application) kwa ajili ya tovuti ya biashara mtandaoni ya kampuni yangu (e-commerce site).
Programu za wavuti za aina hiyo kwa kawaida huwa na hifadhidata (databases), mifumo ya usimamizi wa mauzo, na mifumo ya usafirishaji wa bidhaa kwenye seva zinazosimamiwa na kampuni au huduma za wingu zilizokodiwa. Mtumiaji anapofanya ununuzi, mifumo hii huunganishwa ili kukusanya malipo na kusafirisha bidhaa.
Mifumo mikuu na hifadhidata kwa shughuli hizi haziwezi kubadilishwa kiholela.
Hata hivyo, ikiwa muundo wa tovuti ya biashara mtandaoni ambayo watumiaji wanaona utarekebishwa kwa urahisi wa kila mtumiaji, kwa kawaida husababisha matatizo kidogo. Bila shaka, ikiwa mabadiliko ya mtumiaji mmoja yataathiri skrini ya mtumiaji mwingine, hilo ni tatizo, lakini ubinafsishaji wa kibinafsi wa mtumiaji binafsi ni sawa.
Marekebisho mbalimbali yanawezekana: kufanya maandishi kuwa makubwa zaidi, kubadilisha mandharinyuma kuwa rangi nyeusi, kusogeza vitufe vinavyobonyezwa mara kwa mara kwenye nafasi rahisi kufikiwa na mkono wa kushoto, kupanga bidhaa kwa bei kwenye orodha, au kuonyesha maelezo ya bidhaa mbili kando kando.
Kitaalamu, marekebisho haya yanaweza kufikiwa kwa kubadilisha faili za usanidi na programu kama HTML, CSS, na JavaScript zinazoonyesha skrini kwenye kivinjari.
Kwa upande wa usalama, faili hizi hapo awali huendeshwa kwenye kivinjari cha wavuti, kwa hivyo zinaweza kurekebishwa na wahandisi wanaofahamu programu za wavuti. Kwa hiyo, zinashughulikia tu kazi na data ambazo ni salama kurekebishwa.
Hivyo, kwenye upande wa seva ya programu ya wavuti ya biashara mtandaoni, mtu anaweza kuhifadhi faili hizi kando kwa kila mtumiaji aliyeingia, kuongeza skrini kwa mazungumzo na AI ya mazungumzo, na kuunda utaratibu wa kurekebisha faili za HTML, CSS, na JavaScript za mtumiaji huyo kwenye seva kulingana na maombi yao.
Ukitoa maandishi haya, pamoja na habari ya usanidi na msimbo wa chanzo wa programu ya wavuti ya biashara mtandaoni iliyopo, kwa AI ya uzalishaji, kuna uwezekano mkubwa itatoa hatua na programu muhimu za kuongeza utendaji kama huo.
Kwa njia hii, 'liquidware' tayari ni mada ya sasa; haingekuwa ajabu ikiwa ingekuwa jambo linaloendelea.
Mhandisi wa Kila Upande (Omnidirectional Engineer)
Hata kama wigo wa programu otomatiki zinazotumiwa na AI utapanuka na enzi ya 'liquidware' tayari imeanza, uundaji wa programu bado hauwezi kufanywa kikamilifu na AI ya uzalishaji pekee.
Hata hivyo, ni hakika kwamba uzito wa programu katika uundaji wa programu utapungua sana.
Kwa kuongezea, ili kutengeneza programu vizuri, maarifa mengi na ujuzi wa uhandisi unahitajika, sio tu programu ya jumla, bali pia miundombinu ya wingu, mitandao, usalama, majukwaa, mifumo ya uundaji, na hifadhidata—ikijumuisha mfumo mzima kutoka juu hadi chini.
Wafanyakazi wenye maarifa na ujuzi kama huo wanaitwa wahandisi wa 'full-stack'.
Hadi sasa, wahandisi wachache wa 'full-stack' walishughulikia muundo wa jumla, huku wahandisi waliobaki walizingatia tu programu au walibobea katika maeneo maalum yasiyo ya programu ndani ya 'system stack', wakishirikiana majukumu kwa namna hii.
Hata hivyo, kadri AI ya uzalishaji inavyochukua jukumu la programu, gharama za uundaji wa programu zitapungua kwa kiasi kikubwa, na kusababisha upangaji wa programu mpya mbalimbali.
Matokeo yake, kila mradi wa uundaji utahitaji wahandisi wachache sana wanaoweza kuandika tu msimbo; badala yake, idadi kubwa ya wahandisi wa 'full-stack' watahitajika.
Zaidi ya hayo, katika hali hii, kuwa na maarifa na ujuzi wa 'full-stack' tu hautoshi. Hii ni kwa sababu miradi mbalimbali ya uundaji programu itahitaji aina tofauti za programu, ikimaanisha kwamba uundaji hautahitajika kila mara ndani ya 'system stack' sawa. Pia, mahitaji ya mifumo mchanganyiko inayohitaji 'system stacks' nyingi yataongezeka.
Kwa mfano, 'system stack' kwa programu ya wavuti inatofautiana na ile ya mifumo ya biashara au mifumo mikuu. Kwa hiyo, mhandisi wa programu ya wavuti wa 'full-stack' hawezi kukabidhiwa mradi wa uundaji wa mfumo mkuu.
Zaidi ya hayo, programu za wavuti, programu za simu mahiri, na programu za kompyuta zina 'system stacks' tofauti. Katika ulimwengu wa programu iliyopachikwa (embedded software), kama IoT, 'system stack' hubadilika kabisa kulingana na kifaa ilichopachikwa.
Hata hivyo, ikiwa mkazo juu ya programu utapungua na gharama ya jumla ya uundaji wa programu itapungua, uundaji wa mifumo mchanganyiko inayochanganya programu na 'system stacks' tofauti unapaswa kuongezeka.
Ingawa hii itahitaji kukusanya wahandisi kadhaa tofauti wa 'full-stack' kwa ajili ya uundaji, wahandisi wanaoweza kusimamia picha nzima na kufanya muundo wa kimsingi watakuwa na nafasi muhimu.
Hii inamaanisha kwamba wahandisi wenye maarifa na ujuzi wa pande zote (omnidirectional) katika 'system stacks' nyingi, wakivuka mipaka ya 'system stacks' za kibinafsi, watahitajika.
Wahandisi kama hao labda wataitwa wahandisi wa pande zote (omnidirectional engineers).
Na kama vile mahitaji ya wahandisi wanaoweza kuandaa programu tu yatapungua kutokana na AI ya uzalishaji, hatimaye kutakuja enzi ambapo mahitaji ya wahandisi wa 'full-stack' waliofungwa kwenye 'system stack' moja pia yatapungua.
Ikiwa unataka kubaki hai kama mhandisi wa IT katika enzi hiyo, lazima uanze kujitahidi kuwa mhandisi wa pande zote mara moja.
Jukumu la Mhandisi Anayeweza Kila Kitu (Omnidirectional Engineer)
Lugha za programu, majukwaa, na mifumo ya kuandaa programu vitakavyoundwa ni tofauti.
Hata hivyo, hii haimaanishi kwamba mtu anapaswa kujifunza zote. Hii ni kwa sababu mhandisi anayeweza kila kitu anaweza pia kupokea msaada kutoka kwa AI ya uzalishaji.
Ikikabidhiwa kwa AI ya uzalishaji, hata lugha za programu, majukwaa, au mifumo ambayo mtu hajawahi kutumia binafsi inaweza kutengenezwa kwa kutoa maelekezo tu kwa mdomo.
Bila shaka, kuna hatari ya kuingiza makosa (bugs) au mianya ya kiusalama, au kukusanya deni la kiufundi ambalo linaweza kufanya marekebisho ya baadaye kuwa magumu.
Ili kutambua na kupunguza hatari hizi, ujuzi wa lugha au maktaba husika ni muhimu. Hata hivyo, ujuzi huo unaweza pia kupatikana kutoka kwa AI ya uzalishaji. Mhandisi anayeweza kila kitu anahitaji tu kuweza kujenga kikamilifu taratibu na mifumo ya kugundua na kuzuia masuala haya, au ya kuyashughulikia baada ya kutokea.
Taratibu na mifumo hii haibadiliki sana na tofauti katika mfumo wa 'stack'. Ikiwa mtu anaweza kurasimisha taratibu na mifumo ya kuzuia kuingizwa kwa makosa na mianya ya kiusalama, na kuhakikisha upanuzi wa baadaye wakati wa uundaji, basi mengine yanaweza kukabidhiwa kwa AI ya uzalishaji au wahandisi wenye ujuzi katika maeneo hayo maalum.
Mhandisi anayeweza kila kitu hahitaji kuwa na ujuzi wa kina au uzoefu wa muda mrefu na kila mfumo wa 'stack' binafsi.
Zaidi ya hayo, mojawapo ya majukumu makuu ya mhandisi anayeweza kila kitu ni kubuni jinsi kazi zinavyosambazwa na jinsi zinavyoshirikiana ndani ya programu tata inayofanya kazi kwa ushirikiano katika mifumo mingi tofauti ya 'stack'.
Kwa kuongezea, kuzingatia jinsi programu nzima inapaswa kuendelezwa na kusimamiwa pia inakuwa jukumu muhimu kwa mhandisi anayeweza kila kitu.
Programu ya Kila Upande (Omnidirectional Software)
Hebu tuchunguze ni aina gani ya uundaji wa programu inayohitaji mhandisi anayeweza kila upande.
Hapo awali, nilitoa mfano wa kuendeleza programu ya wavuti ya biashara mtandaoni.
Chini ya uongozi wa mtendaji anayehusika ambaye ameagizwa na uongozi mkuu wa kampuni kurekebisha programu hii ya wavuti ya biashara mtandaoni, timu ya mipango inaweza kuja na mahitaji yafuatayo:
Mabadiliko ya Jukwaa la Jumuiya ya Watumiaji. Hii inamaanisha si tu programu au tovuti maalum ya biashara mtandaoni, bali kutoa jukwaa ambapo watumiaji wa bidhaa wanaweza kuingiliana kuhusu bidhaa zenyewe na matumizi yake. Lengo ni kuhifadhi watumiaji, athari ya mdomo-kwa-mdomo, utajiri wa maudhui kupitia michango ya watumiaji, na kuunganisha maoni ya uundaji wa bidhaa (chanya na hasi) na mipango mipya ya bidhaa na masoko.
Upatanifu wa Kifaa Chochote (Omni-device Compatibility). Hii inawezesha ufikiaji wa jumuiya ya watumiaji na habari za bidhaa kutoka si tu programu za wavuti bali pia programu za simu mahiri, visaidizi vya sauti, vifaa vinavyoweza kuvaliwa, vifaa mahiri vya nyumbani, na vifaa vingine vyote.
Upatanifu wa Jukwaa Chochote (Omni-platform Compatibility). Hii inajumuisha si tu jukwaa la jumuiya ya watumiaji la kampuni yenyewe bali pia, kwa mfano, orodha za bidhaa na kushiriki ukaguzi kwenye tovuti za jumla za biashara mtandaoni, kuunganisha na mitandao ya kijamii, na uhusiano wa utendaji na habari na zana mbalimbali za AI.
Kuboresha Mfumo wa Biashara. Wakati kwa muda ikiunganisha na mifumo iliyopo ya usimamizi wa mauzo na utoaji wa bidhaa, mifumo hii pia itaboreshwa. Baada ya kuboresha, ukusanyaji wa data ya mauzo kwa wakati halisi, utabiri wa mahitaji, na kuunganisha na mifumo ya usimamizi wa hesabu kunaonekana. Zaidi ya hayo, kadri ushirikiano wa hatua kwa hatua na mifumo ya hesabu iliyosambazwa kikanda na huduma za usafirishaji wa bidhaa zinazotolewa na kampuni za utoaji unavyoendelea, mifumo ya habari lazima pia iunganishwe hatua kwa hatua ipasavyo.
Upatanifu wa Liquidware. Bila shaka, miingiliano yote ya watumiaji itakuwa inaoana na liquidware. Kwa kuongezea, miingiliano yote ya ndani ya watumiaji, kama vile ya ukusanyaji wa habari na maoni kwa ajili ya uundaji na mipango ya bidhaa, idara za uendeshaji wa mfumo, na ripoti za usimamizi, pia zitabadilishwa kuwa liquidware.
Ikiwa mpango wa uundaji wa programu tata kama hiyo ungewasilishwa, timu ya jadi ya uundaji wa programu labda haingeukubali mara moja. Au, wakati wa mchakato wa kuboresha vipimo vya mfumo, wangethibitisha kimantiki hitaji la gharama kubwa za uundaji na wakati, na kusukuma kwa kupunguza kwa kiasi kikubwa vipimo.
Hata hivyo, vipi kama AI ya uzalishaji ingeweza kuendesha programu nyingi kiotomatiki, na zaidi ya nusu ya "system stacks" zilizowasilishwa zilifahamika kwa mtu fulani katika timu, na timu ilikuwa na uzoefu wa awali wa kuanzisha kwa mafanikio "system stacks" mpya, majukwaa, na mifumo tangu mwanzo kwa msaada wa AI ya uzalishaji? Na vipi kama wewe, kama mhandisi anayeweza kila upande, ulikuwa tayari umeingia kwenye njia hii na ulikuwa unakusudia kuendelea nayo?
Kutokana na mtazamo huo, inapaswa kuonekana kama mradi unaovutia sana. Ungefanya kazi na timu ya mipango inayowasilisha mapendekezo kabambe chini ya uongozi wa mipango, na timu ya uundaji yenye uwezo wa kukua na kuwa timu ya uundaji wa programu ya kila upande.
Pia kuna uhakika wa mifumo iliyopo. Pia ni mradi unaoruhusu michakato ya uundaji wa haraka, ambapo vipengele vyenye athari kubwa vinaweza kujengwa haraka, na mfumo unaweza kukua hatua kwa hatua na maoni kutoka kwa watumiaji wa mwanzo.
Kwa kuzingatia hili, uundaji wa programu hii ya kila upande unapaswa kuonekana kama mradi unaovutia.
Hitimisho
Shukrani kwa programu otomatiki zinazoundwa na AI ya uzalishaji, 'liquidware' na uundaji wa programu za pande zote (omnidirectional software) tayari vimekuwa ukweli wa sasa.
Katika hali kama hiyo, wahandisi wa IT wanazidi kuhitaji kupita kiwango cha 'full-stack' na kulenga kuwa wahandisi wa pande zote.
Zaidi ya hayo, zaidi ya hapo, upeo wao utapanuka hadi kwenye uhandisi wa biashara wa pande zote (omnidirectional business engineering), ambao unashughulikia kikamilifu shughuli za shirika kwa kuunganisha wateja, wafanyakazi wa ndani, na AI zaidi ya upeo wa mifumo ya IT, na uhandisi wa jamii wa pande zote (omnidirectional community engineering).
Na hata zaidi ya hapo, ninaamini kuwa uwanja unaoitwa uhandisi wa kijamii wa pande zote (omnidirectional social engineering) utaibuka, ukilenga kuboresha jamii kwa ujumla.