Bidhaa iliyounganishwa inaweza kuonekana imekamilika muda mrefu kabla ya uhandisi unaoizunguka kukamilika. Mfano ni thabiti, data hufikia wingu, programu inaonyesha thamani sahihi, na kundi la kwanza la vifaa tayari liko mikononi mwa watumiaji. Katika hatua hiyo, sehemu ya nyuma bado inaweza kuwa rahisi vya kutosha kiasi kwamba timu inajua karibu kila kifaa kivyake. Utoaji unaweza kushughulikiwa kwa hati, mabadiliko ya usanidi yanaweza kufanywa kwa mikono, na ikiwa kitu kitashindwa, mhandisi anaweza kufuatilia tatizo moja kwa moja.
Kisha lazima ianze kuishi katika ulimwengu halisi. Marekebisho ya pili ya vifaa yanaonekana. Baadhi ya wateja bado wanatumia marekebisho ya kwanza. Matoleo ya Programu dhibiti yanaanza kutofautiana. Usanidi mpya unahitajika kwa mteja au soko tofauti, huku vifaa vya zamani bado vinahitaji masasisho na usaidizi.
Hakuna kinachoharibika. Programu iliyo nyuma ya kifaa imepata mzunguko wake wa maisha.
Mpito huo ni rahisi kukosa kwa sababu mfano unaweza kuendelea kufanya kazi vizuri kabisa. Lakini mara tu matoleo mengi ya bidhaa moja halisi yanapolazimika kuishi pamoja uwanjani, sehemu ya nyuma si miundombinu tu nyuma ya vifaa. Inakuwa sehemu ya usanifu wa bidhaa yenyewe.
Mfano unaofanya kazi uliounganishwa bado si bidhaa inayoweza kupanuliwa
Mfano una kazi muhimu: kuthibitisha kwamba mfumo unafanya kazi kuanzia mwanzo hadi mwisho. Kifaa hufanya kazi yake kuu, programu dhibiti huwasiliana na sehemu ya nyuma, telemetry hufika inapopaswa, amri hufanya safari ya kurudi, na kiolesura cha simu au wavuti huonyesha utendaji kwa mtumiaji.
Kile ambacho kwa kawaida hakijathibitishwa ni jinsi mfumo huo huo unavyoshughulikia utofauti.
Vifaa ishirini vya kwanza vinaweza kutumia programu dhibiti sawa, kujengwa kwa marekebisho sawa ya vifaa, na kusanidiwa na wahandisi sawa. Katika hatua hiyo, usajili wa mikono, mabadiliko ya usanidi wa moja kwa moja, au hati ndogo ya kuingia inaweza kuwa na maana kabisa. Uundaji wa vifaa vya kiwango cha uzalishaji kabla ya bidhaa kujithibitisha inaweza kuwa mapema.
Kipimo hubadilisha tatizo. Vifaa hubaki nje ya mtandao, hubadilishwa, huendesha programu dhibiti tofauti, na huhitaji usanidi tofauti wa wateja. Usaidizi unapaswa kutofautisha kitengo ambacho hakijawahi kutolewa kwa usahihi kutoka kwa kile ambacho hakijasanidiwa vizuri au hakiwezi kufikiwa.
Deni la mfano mara nyingi huanza hivi: si kwa uamuzi mbaya, bali kwa uamuzi wa muda unaobaki baada ya bidhaa kuhama. Na moja ya mambo ya kwanza yanayolazimisha mabadiliko hayo kuonekana ni vifaa vyenyewe. Marekebisho mapya hayachukui tu nafasi ya yale ya zamani; yanapaswa kuishi pamoja nayo.
Kila marekebisho ya vifaa huunda tatizo la mzunguko wa maisha ya programu
Marekebisho mapya ya vifaa mara chache huja kama mbadala safi wa yale ya zamani. Kiutendaji, matoleo yote mawili hubaki uwanjani, wakati mwingine kwa miaka mingi. Ongeza kundi la mpito, matawi machache ya programu dhibiti, na usanidi maalum kwa mteja, na kundi hilo haraka linakuwa tofauti zaidi kuliko modeli ya bidhaa asili inavyopendekeza.
Safu ya programu haiwezi tena kuchukulia kila kitengo kama "kifaa" cha dhahania. Inahitaji kujua kile kitengo hicho mahususi kinaweza kufanya.
Bodi iliyorekebishwa inaweza kutumia kitambuzi tofauti, moduli ya mawasiliano, au kidhibiti. Amri ambayo ni halali kwa toleo jipya zaidi inaweza isiungwe mkono na toleo la awali. Thamani za urekebishaji zinaweza kubadilika. Vikomo vya usanidi vinaweza kubadilika. Kifurushi cha programu dhibiti kinachofaa kwa kizazi kimoja kinaweza kuwa si salama kwa kingine.
Wahandisi wa bidhaa halisi tayari wanafanya kazi hivi. Vipengele viwili vinavyofanana karibu haviwezi kubadilishwa ikiwa marekebisho, uvumilivu, au vipimo vyao vinatofautiana. Bidhaa zilizounganishwa huunda tatizo sawa upande wa programu: jukwaa linahitaji njia ya kuaminika ya kuelewa ni toleo gani la bidhaa halisi linalozungumziwa na ni sheria gani zinazotumika kwake.
Fikiria bidhaa ambayo marekebisho yake ya kwanza hutumia utaratibu mmoja wa urekebishaji huku ya pili ikianzisha kitambuzi kipya na seti tofauti ya vigezo. Kwa mteja, vitengo vyote viwili vinaweza bado kuwa bidhaa sawa. Kwa mfumo, haviwezi kuwa hivyo.
Ikiwa tofauti hizo hazijawakilishwa waziwazi, huwa zinaingia kwenye mantiki ya programu kama visa maalum. Mtiririko mmoja wa kazi huangalia safu ya nambari za mfululizo. Mwingine hutumia toleo la programu dhibiti kama proksi ya kutengeneza vifaa. Ya tatu ina ubaguzi ulioongezwa baada ya usaidizi kugundua kundi la zamani kufanya kazi tofauti kwenye uwanja. Hakuna marekebisho haya yanayoonekana kuwa hatari sana yenyewe, lakini kwa pamoja hufanya kila mabadiliko ya siku zijazo kuwa magumu kufikiria.
Vifaa vya zamani mara chache hupotea kwa ratiba. Timu za bidhaa kwa kawaida huzingatia marekebisho mapya zaidi, huku wateja mara nyingi wakiweka matoleo ya awali kwa muda mrefu zaidi kuliko ilivyotarajiwa. Kwa hivyo, jukwaa linapaswa kuunga mkono vizazi kadhaa kwa wakati mmoja badala ya kudhani kwamba msingi uliosakinishwa utawahi kuungana katika hali moja ya sasa.
Mara tu hilo likitokea, mageuzi ya vifaa na usimamizi wa mzunguko wa maisha ya programu huwa hayatenganishwi. Jukwaa linahitaji kujua sio tu mahali kifaa kilipo na kama kiko mtandaoni, lakini pia ni nini, kinaweza kuendeshwa, jinsi kinavyopaswa kusanidiwa, na ni mabadiliko gani ambayo ni salama kutumia.
Na kabla ya maswali yoyote kati ya hayo kujibiwa kwa uhakika, kila kifaa kinapaswa kuingia kwenye mfumo kwa njia thabiti.
Utoaji ni mahali ambapo uhandisi wa mikono huacha kuongeza ukubwa
Utoaji unaonekana rahisi wakati kundi ni dogo: tengeneza rekodi ya kifaa, ingiza nambari ya mfululizo, toa sifa, toa kitengo kwa mteja, tumia usanidi, na uendelee. Kwa vifaa kadhaa, kushughulikia baadhi ya hivi kwa mikono bado kunaweza kuwa chaguo sahihi.
Hata hivyo, katika kiwango cha uzalishaji, utoaji uko katika makutano ya utambulisho wa kifaa, sifa, umiliki, usanidi, na hali ya mzunguko wa maisha. Kosa linalofanywa wakati wa uanzishaji linaweza kuathiri jinsi kitengo kinavyoendeshwa na kuungwa mkono muda mrefu baada ya kuondoka kiwandani.
Lahajedwali huenda lisilingane tena na kile kilichosakinishwa. Kifaa mbadala kinahitaji muunganisho sahihi wa wateja bila kurithi utambulisho usio sahihi. Kuweka upya mipangilio ya kiwandani huunda njia nyingine kupitia mchakato huo. Kisakinishi kinaweza kugawa kitengo kwenye akaunti isiyo sahihi, na kuacha usaidizi wa kubaini kama kiko nje ya mtandao, kimetolewa kimakosa, au kimebeba usanidi usio sahihi.
Mara tu kujibu maswali hayo mara kwa mara kunahitaji msanidi programu kukagua hifadhidata au kuendesha hati ya ndani, mchakato huo umeacha kuongeza ukubwa wa bidhaa.
Kurudia ni ishara nyingine ya onyo. Kila aina ya bidhaa huanza kupata hati yake ya uanzishaji, zana ya usanidi, au mtiririko wa kazi wa kisakinishi. Tofauti hizo zinaweza kuonekana ndogo, lakini jukumu la msingi ni lile lile. Utoaji umekuwa miundombinu ya mfumo inayoweza kutumika tena badala ya kazi ya usanidi iliyounganishwa na kifaa fulani.
Na mara chache si uwezo pekee unaohitaji kutumika tena.
Safu ya jukwaa inapaswa kuwa miundombinu inayoweza kutumika tena
Mara tu marekebisho kadhaa ya bidhaa au vifaa yanaposhiriki mahitaji sawa ya msingi, baadhi ya uwezo wa programu huacha kuwa mahususi kwa bidhaa. Utambulisho wa kifaa, utoaji, muunganisho, telemetri, uwasilishaji wa programu dhibiti, hali ya mzunguko wa maisha, mwonekano wa meli, na uchunguzi ni mifano mizuri. Kuzijenga upya kwa kila aina mpya huunda msimbo zaidi na njia zaidi za uendeshaji za kudumisha bila kuifanya bidhaa yenyewe kuwa ya kipekee zaidi.
Timu mara chache hujipanga kuunda nakala hii. Tofauti ndogo hujikusanya karibu na kila bidhaa hadi timu itakapokuwa na utekelezaji kadhaa wa kile ambacho kimekuwa jukumu lile lile la uhandisi.
Mpaka safi zaidi ni kutenganisha safu ya bidhaa na safu ya jukwaa. Safu ya bidhaa ina tabia, mtiririko wa kazi, violesura, miunganisho, na mantiki ya kikoa ambayo hufanya kifaa fulani kuwa cha thamani. Safu ya jukwaa hushughulikia mitambo ambayo inapaswa kubaki thabiti hata kama vifaa vinabadilika.
Kadri bidhaa zilizounganishwa zinavyosonga mbele zaidi ya kutolewa kwao kwa mara ya kwanza, utoaji wa vifaa, usimamizi wa mzunguko wa maisha wa vifaa, usimamizi wa meli, na zana za usaidizi zinakuwa miundombinu ya pamoja badala ya maelezo ya mradi wa mara moja. IoT PaaS kwa makampuni inaweza kutoa safu hiyo ya jukwaa inayoweza kutumika tena katika bidhaa nyingi au aina mbalimbali za bidhaa, ikishughulikia usimamizi wa kawaida wa vifaa na data kupitia vitalu vya ujenzi vinavyoweza kutumika tena huku timu za uhandisi zikiweka juhudi zao maalum zikizingatia vifaa, mtiririko wa kazi, na uzoefu wa mtumiaji.
Msingi wa pamoja bado unapaswa kuacha nafasi ya tofauti halisi za bidhaa. Kifaa kipya kinaweza kuhitaji mfumo tofauti wa data, mtiririko wa usanidi, ujumuishaji, au mantiki ya udhibiti, na tofauti hizo zinapaswa kubaki rahisi kuanzisha. Lengo ni kuepuka kufanya kila tofauti iburute kwenye sajili nyingine ya kifaa, bomba la telemetri, utaratibu wa utoaji, au seti ya zana za usimamizi wa meli.
Jukwaa linaweza kuonekana kama la juu wakati timu inajenga bidhaa ya kwanza na kama mali kwa upande wa pili au wa tatu. Mara tu mitambo ya kawaida ya uendeshaji itakapowekwa, toleo jipya linaweza kurithi msingi unaofanya kazi badala ya kufika na sehemu nyingine ya nyuma ambayo timu italazimika kudumisha kwa maisha yote ya bidhaa hiyo.
Weka uhandisi maalum mahali ambapo bidhaa ni tofauti kabisa
Jukwaa linaloweza kutumika tena halipaswi kufanya bidhaa zilizounganishwa kuwa za jumla zaidi. Kazi yake ni kuondoa uhandisi unaorudiwa kutoka kwa sehemu ambazo hazileti utofautishaji.
Juhudi maalum bado zinafaa katika tabia ya kifaa, mantiki mahususi ya kikoa, mtiririko wa kazi, uzoefu wa mtumiaji, ujumuishaji maalum, na jinsi bidhaa fulani inavyoingiliana na ulimwengu halisi. Hayo ndiyo maeneo ambayo chaguo za uhandisi zinaweza kufanya bidhaa moja kuwa bora zaidi kuliko nyingine kwa maana.
Kinachostahili matibabu sawa mara chache ni mabomba yanayozunguka uendeshaji. Toleo la msingi na toleo la viwanda la mashine moja linaweza kuhitaji vitambuzi, vidhibiti, na violesura tofauti, lakini hazipaswi kuhitaji njia tofauti za kutambua vifaa, kufuatilia matoleo ya programu dhibiti, au kudhibiti kundi la vifaa.
Ningependa kuona wahandisi wakitumia muda huo kuboresha jinsi bidhaa inavyofanya kazi uwanjani kuliko kujenga upya mitambo ambayo timu tayari inayo kwa ajili ya bidhaa nyingine. Msingi wa pamoja haupunguzi wigo wa uhandisi maalum; unalinda juhudi hizo kutokana na kutumiwa na miundombinu.
Jaribio halisi linakuja wakati timu inapoanza bidhaa nambari mbili.
Jukwaa zuri hurahisisha bidhaa inayofuata kuliko ya kwanza
Ikiwa bidhaa nambari mbili inahitaji karibu kazi sawa ya jukwaa na bidhaa nambari moja, ni machache sana ambayo yametumika tena.
Toleo jipya linapaswa kuwa na uwezo wa kurithi sehemu za mfumo wa uendeshaji ambazo hazijabadilika: mtiririko wa utoaji, utambulisho, fundi wa mzunguko wa maisha, zana za meli, michakato ya programu dhibiti, mwonekano wa usaidizi, na miunganisho ya kawaida. Jitihada za uhandisi kisha huingia katika tofauti - labda kifurushi kipya cha vitambuzi, mtiririko mwingine wa kazi wa udhibiti, au muunganisho maalum wa mteja - badala ya kujenga upya msingi.
Kizazi kipya cha vifaa huweka wazo lile lile chini ya shinikizo zaidi. Uwezo wake unaweza kubadilika sana huku vitengo vya zamani vikiendelea kufanya kazi uwanjani. Jukwaa lililokomaa linaweza kusaidia vyote bila kulazimisha timu kudumisha safu mbili tofauti za jukwaa kwa kile ambacho wateja bado wanakiona kama familia moja ya bidhaa.
Hakuna hata moja kati ya haya inayohitaji sehemu moja ya nyuma ya monolithic. Bidhaa tofauti bado zinaweza kuhitaji mipaka iliyo wazi ya usanifu. Kinachohitajika ni kuepuka utekelezaji wa pili wa jukumu lile lile la uhandisi bila sababu nzuri.
Hapo ndipo jukwaa linakuwa rasilimali badala ya matumizi yaliyokusanywa. Usaidizi una zana chache zinazofanana za kuelewa, matoleo hufuata njia thabiti zaidi, na kuongeza bidhaa nyingine kunakuwa kiendelezi kinachodhibitiwa badala ya sehemu nyingine ya nyuma ambayo kampuni hurithi milele.
Tumia jukwaa kama sehemu ya usanifu wa bidhaa
Bidhaa halisi zimeundwa kwa kuzingatia marekebisho, uimara wa huduma, uimara wa utengenezaji, na mabadiliko ya baadaye. Bidhaa zilizounganishwa zinahitaji taaluma sawa upande wa programu.
Sehemu ya nyuma ya kwanza inaweza kuwa ya muda mfupi. Vivyo hivyo hati ya kwanza ya utoaji au zana ya usaidizi. Hakuna ubaya wowote kiasili na hilo. Matatizo huanza wakati mitambo hiyo ya muda inapoanza kuwa usanifu wa kudumu kimya kimya huku bidhaa yenyewe ikiendelea kubadilika.
Kufikia wakati huo, bidhaa iliyounganishwa si vifaa tu, programu dhibiti, na programu. Pia inategemea miundombinu inayotambua kila kifaa, inayoelewa uwezo wake, inayotumia usanidi sahihi, inayounga mkono masasisho, na husaidia timu kugundua matatizo miaka mingi baada ya usafirishaji.
Mara tu safu hiyo inapochukuliwa kama usanifu wa bidhaa, mgawanyiko unakuwa wazi zaidi: mbinu za kawaida hubaki kutumika tena, huku kazi maalum ikienda katika kile kinachotofautisha bidhaa moja au familia ya bidhaa kutoka kwa nyingine.
Jukwaa lenye nguvu zaidi si lile tu linalowezesha bidhaa ya kwanza iliyounganishwa. Ni lile linaloruhusu timu ya uhandisi kujenga ya pili, ya tatu, na ya nne bila kurithi sehemu mpya ya nyuma kila wakati.

