Karibu kila mtu ambaye ameagiza programu ana hadithi kuhusu kutofanya kazi vizuri. Mradi ulichelewa kwa miezi kadhaa. Gharama ya mwisho ilikuwa mara mbili ya nukuu. Kilichowasilishwa kitaalamu kilifanya kazi lakini hakikutatua tatizo. Au kiliachwa kimya kimya baada ya uzinduzi kwa sababu hakuna mtu aliyekitumia. Kushindwa huku ni jambo la kawaida kiasi kwamba wakati mwingine watu huchukulia kama jambo lisiloepukika, gharama ya kufanya biashara na teknolojia.
Sio jambo lisiloepukika. Tukiangalia miradi mingi, sababu za kushindwa ni thabiti sana, na nyingi zinahusu watu na mchakato badala ya msimbo. Hilo linatia moyo, kwa sababu watu na mchakato vinaweza kuboreshwa na mtu yeyote, kwa ukubwa wowote, kabla ya mstari mmoja wa msimbo kuandikwa. Makala haya yanaelezea sababu kumi na mbili za kawaida za kushindwa kwa mradi wa programu, yanaelezea jinsi kila moja inavyoonekana na kutoa njia za vitendo za kuzuia. Imeandikwa kwa ajili ya wamiliki wa biashara na viongozi wa bidhaa kama vile kwa watengenezaji wa programu.
Kushindwa kunaonekanaje hasa?
Inafaa kuwa sahihi, kwa sababu "kushindwa" huja katika aina kadhaa.
- Kuzidisha bajeti. Mradi unagharimu zaidi ya ilivyopangwa.
- Kuzidisha ratiba. Uwasilishaji unafika miezi kadhaa umechelewa.
- Bidhaa si sahihi. Programu inafanya kazi lakini haikidhi mahitaji halisi.
- Ubora duni. Ni hitilafu, polepole au haina uhakika.
- Kutumika kidogo. Watu hawaitumii.
- Kuachwa. Mradi husimamishwa kabla ya kukamilika.
- Matokeo yasiyoweza kudumishwa. Inafanya kazi leo lakini hakuna mtu anayeweza kuibadilisha.
Mradi unaweza kushindwa kwa njia moja na kufanikiwa kwa njia nyingine. Sababu zilizo hapa chini huwa na kuzalisha kadhaa kwa wakati mmoja.
1. Mahitaji yasiyoeleweka au yanayobadilika
Hii ndiyo sababu inayotajwa mara nyingi. Ikiwa hakuna anayeweza kusema haswa kile ambacho programu lazima ifanye, timu hujenga ubashiri wake bora, na ubashiri kwa kawaida huwa si sahihi kwa njia ambazo huonekana kuchelewa tu. Mahitaji pia hupotea: mawazo mapya hufika mfululizo, na bila mchakato kila wazo huwa sehemu ya mradi.
Jinsi ya kuzuia:
- Andika muhtasari wa lugha rahisi kabla ya kuanza, ukiwa na watumiaji, malengo, vitu muhimu na vizuizi. Tunaelezea muundo rahisi katika namna ya kuandika hati ya mahitaji ya programu.
- Weka orodha ya "baadaye" ili mawazo mazuri yarekodiwe, yasipotee au kulazimishwa.
- Kubali jinsi mabadiliko yanavyopendekezwa, kukadiriwa na kuidhinishwa.
2. Kujaribu kujenga kila kitu mara moja
Matoleo makubwa ya kwanza huchukua muda mrefu, yanagharimu sana na hayafundishi chochote hadi yatakapokamilika. Kufikia wakati watumiaji wanapoona bidhaa, mawazo yaliyotolewa mwaka mmoja uliopita yanaweza kuwa si sahihi, na hakuna pesa au nguvu iliyobaki ya kuyarekebisha.
Jinsi ya kuzuia:
- Jenga toleo dogo zaidi linalotoa thamani halisi na kujaribu dhana yako hatari zaidi.
- Toa kwa hatua, kila moja likitumika peke yake.
- Soma MVP ni nini na MVP dhidi ya bidhaa kamili ili kujua jinsi ya kuchora mstari.
3. Makadirio na matarajio yasiyo ya kweli
Shinikizo la bei ya chini au muda mfupi huongoza timu, wakati mwingine kwa kujua, kutoa idadi nzuri. Mradi kisha huanza katika matatizo na hubaki pale. Tatizo linalohusiana ni kuchukulia makadirio ya awali kama ahadi ya lazima.
Jinsi ya kuyazuia:
- Uliza masafa yenye dhana zilizotajwa, si nambari moja.
- Linganisha wigo kabla ya kulinganisha bei.
- Jumuisha dharura halisi.
- Kadiria tena mradi unapozidi kuwa wazi. Mwongozo wetu wa jinsi ya kukadiria mradi wa programu unaelezea jinsi makadirio yanavyojengwa na jinsi ya kuyasoma.
4. Kutoelewa watumiaji halisi
Programu mara nyingi hubainishwa na mtu anayeilipia, ambaye huenda asiwe mtu anayeitumia. Vipengele vinavyoonekana kuwa vya busara katika mkutano huwa vigumu katika kazi ya kila siku, na watu hupata suluhisho badala ya kutumia mfumo.
Jinsi ya kuizuia:
- Zungumza na watumiaji halisi kabla, wakati na baada ya ujenzi.
- Tazama jinsi kazi inavyofanywa leo, si tu jinsi inavyoelezwa.
- Jaribu mifano ya awali na watu watakaoitumia.
- Washirikishe watumiaji wachache katika maonyesho ya kawaida.
5. Mawasiliano duni
Umbali, lugha isiyoeleweka, dhana na ukimya vyote huzaa kutokuelewana. Timu zinaweza kusema ndiyo kwa mambo ambazo hazielewi, na wateja wanaweza kusema chochote huku kutoridhika kukiongezeka. Mapengo madogo katika uelewa yanachanganywa na mapengo makubwa katika bidhaa.
Jinsi ya kuizuia:
- Kubaliana kuhusu mdundo: nani anazungumza na nani, mara ngapi na kupitia njia zipi.
- Sisitiza maonyesho ya mara kwa mara ya programu inayofanya kazi, si ripoti za hali tu.
- Andika maamuzi na uyashiriki.
- Uliza "unaelewa nini kwa hilo?" badala ya kudhani unakubaliana.
- Himiza habari mbaya mapema. Utamaduni ambapo matatizo yamefichwa ni utamaduni unaoelekea kushindwa. Kwa kazi ya mbali, tazama [uundaji wa programu ya nje: jinsi ya kuifanya ifanye kazi] (blogu/uundaji-wa-programu-nje-ya-nje-ya-kuifanya-ifanye kazi).
6. Kuchagua mshirika asiyefaa
Timu yenye uzoefu usiofaa, ukongwe usiotosha, michakato dhaifu au tabia ya kuahidi kupita kiasi inaweza kuzama hata mradi uliofafanuliwa vizuri. Ishara za onyo zinaonekana wakati wa uteuzi ikiwa unajua wapi pa kuangalia.
Jinsi ya kuzuia:
- Angalia uzoefu katika miradi kama yako na zungumza na wateja wa zamani.
- Kutana na watu ambao watafanya kazi hiyo.
- Anza na ushiriki mdogo unaolipwa ili kujaribu uhusiano.
- Jihadhari na alama hatarishi: nukuu bila maswali, shinikizo la kusaini haraka, bila kutaja majaribio au umiliki.
- Tumia orodha ya ukaguzi katika jinsi ya kuchagua kampuni ya ukuzaji wa programu.
7. Uongozi dhaifu na kufanya maamuzi kwa upande wa mteja
Miradi hukwama wakati hakuna mtu upande wa mteja anayemiliki maamuzi. Maswali husubiri siku kwa majibu, vipaumbele hubadilika kila mkutano na wadau tofauti hutoa maagizo yanayokinzana. Timu ya uundaji haiwezi kurekebisha hili, hata kama ni zuri kiasi gani.
Jinsi ya kulizuia:
- Teua mtu mmoja mwenye mamlaka ya kufanya maamuzi ya bidhaa.
- Kubaliana jinsi wadau wanavyotoa maoni, na ni nani anayetatua migogoro.
- Jibu maswali haraka. Ucheleweshaji hugharimu sawa na saa za watengenezaji.
- Linda timu kutokana na upangaji upya wa vipaumbele mara kwa mara.
8. Kuruka ugunduzi na kupanga
Kuruka moja kwa moja kwenye maendeleo huhisi kuwa na tija, lakini kujenga kabla ya uelewa ni njia ghali ya kujifunza. Mambo yasiyojulikana kama vile ujumuishaji, ubora wa data na vikwazo vya kiufundi huathiri mradi katikati ya mradi, wakati kubadilisha mwelekeo ni ghali.
Jinsi ya kuzuia:
- Wekeza katika awamu fupi ya ugunduzi: fafanua malengo, watumiaji, upeo na hatari.
- Tengeneza fremu za waya au mfano kabla ya uundaji kamili.
- Chunguza mambo yasiyojulikana mapema, kama vile kama mfumo wa mtu wa tatu unatoa data unayohitaji.
- Chukulia ugunduzi kama sehemu ya mradi, sio gharama ya ziada.
9. Upimaji usiotosha na mbinu bora
Ratiba zinapobana, upimaji ndio kitu cha kwanza kukatizwa. Matokeo yake ni programu inayofanya kazi katika maonyesho na kushindwa kutumika halisi, huku hitilafu zikigunduliwa na wateja. Ubora duni pia hufanya kila mabadiliko ya baadaye kuwa hatari zaidi na polepole zaidi.
Jinsi ya kuyazuia:
- Inahitaji majaribio otomatiki kwa sehemu muhimu zaidi, kama vile malipo, ruhusa na sheria kuu.
- Jumuisha ukaguzi wa msimbo na majaribio katika makadirio, na usiruhusu yaachwe kimya kimya.
- Jaribu kwa data halisi na kwenye vifaa na vivinjari halisi.
- Washirikishe watumiaji katika majaribio ya kukubalika kabla ya uzinduzi.
10. Kupuuza mahitaji yasiyo ya utendaji
Timu huzingatia vipengele na kusahau usalama, utendaji, uaminifu na ufikiaji hadi viwe matatizo. Mfumo unaofanya kazi kwa watumiaji kumi unaweza kuporomoka kwa elfu moja, na usalama ukaongezwa baada ya ukweli kuwa dhaifu na ghali zaidi.
Jinsi ya kuzuia:
- Eleza matarajio ya kasi, upatikanaji, usalama na kiwango katika mahitaji.
- Zingatia katika muundo, si tu katika wiki za mwisho.
- Panga ufuatiliaji na nakala rudufu.
- Kagua usalama haswa; Kwa programu, tazama [orodha yetu ya ukaguzi wa usalama wa programu za simu] (blogu/orodha-ya-uhakiki-wa-usalama-wa-programu-ya-simu).
11. Kupuuza umiliki, nyaraka na makabidhiano
Baadhi ya miradi hufanikiwa siku ya uwasilishaji na hushindwa baadaye kwa sababu hakuna mtu anayeweza kudumisha matokeo. Nambari iko kwenye akaunti ya muuzaji, hakuna kilichoandikwa, na mtu pekee aliyeelewa amehama.
Jinsi ya kuzuia:
- Sisitiza kwamba nambari inaishi katika hazina yako mwenyewe kuanzia siku ya kwanza.
- Inahitaji nyaraka za usanidi, usanifu na maamuzi muhimu.
- Panga makabidhiano sahihi, ikiwa ni pamoja na mafunzo ikiwa inahitajika.
- Panga mwendelezo: nini kitatokea mtu akiondoka? Tazama [timu iliyojitolea dhidi ya wafanyakazi huru dhidi ya wasanidi programu wa ndani] (blogu/timu-iliyojitolea-dhidi ya wafanyakazi huru-dhidi ya wasanidi programu-wa-ndani).
12. Kusahau maisha baada ya uzinduzi
Kuzindua mara nyingi huchukuliwa kama mwisho. Kwa kweli ni mwanzo wa maoni halisi, na gharama zinazoendelea za upangishaji, masasisho na maboresho. Bidhaa zisizo na mpango wa kuharibika baada ya uzinduzi, na watumiaji wanaona.
Jinsi ya kuzuia:
- Bajeti ya matengenezo tangu mwanzo; mwongozo wa kawaida ni asilimia 15 hadi 20 ya gharama ya ujenzi kwa mwaka. Tazama gharama za matengenezo ya programu.
- Fafanua vipimo vya mafanikio na uvipitie baada ya uzinduzi.
- Panga hatua inayofuata kulingana na kile ambacho watumiaji hufanya.
- Amua ni nani atakayemiliki bidhaa siku hadi siku.
Mifumo iliyo nyuma ya sababu
Ukiangalia katika hizo kumi na mbili, mada kadhaa hurudiwa.
- Kutokuwa na uhakika hakusimamiwi. Miradi inayodhani kila kitu kinajulikana hushangazwa kila mara.
- Maoni huja kuchelewa sana. Kuona programu halisi mapema ndio ulinzi bora.
- Hakuna anayemiliki matokeo. Uwajibikaji unaenea.
- Wigo unakua kimya kimya. Bila mabadiliko yanayoonekana, hukua kila wakati.
- Shinikizo la muda mfupi hushinda afya ya muda mrefu. Njia za mkato zinazochukuliwa ili kufikia tarehe ya kurudi kama gharama baadaye.
Mradi mzuri hufanya kinyume chake: unakubali kutokuwa na uhakika, unaonyesha kazi mara kwa mara, una umiliki wazi, hufanya mabadiliko yaonekane na kulinda ubora.
Ishara za tahadhari za mapema
Hugundua matatizo yakiwa madogo. Jihadhari na:
- Maonyesho yanaendelea kuahirishwa au "yako karibu tayari".
- Kazi zile zile hubaki "zinaendelea" kwa wiki kadhaa.
- Mahitaji hubadilika bila mjadala wowote wa gharama au muda.
- Maswali kwa timu hujibiwa kwa njia isiyoeleweka.
- Hakuna programu inayofanya kazi ya kuona, ni ripoti tu.
- Watu huacha kuibua matatizo.
- Makadirio hayakuwahi kuelezewa na sasa yanaendelea.
- Upimaji "utafanywa mwishoni".
Ukigundua kadhaa kati ya haya, acha na uweke upya: kagua wigo, jenga upya mpango na urejeshe maonyesho ya kawaida.
Miradi iliyofanikiwa inafanana
- Lengo lililo wazi, lililoandikwa na toleo la kwanza lililokubaliwa.
- Mmiliki mmoja anayewajibika upande wa mteja.
- Mizunguko mifupi ya uwasilishaji yenye programu inayoonekana inayofanya kazi.
- Mawasiliano ya uaminifu, ikijumuisha kuhusu matatizo.
- Ubora uliojengewa ndani: majaribio, mapitio na nyaraka.
- Masharti ya kibiashara ya haki na ya uwazi na umiliki wazi.
- Mpango wa baada ya uzinduzi.
- Utayari wa kubadilisha mwelekeo wakati ushahidi unasema hivyo.
Hakuna hata moja kati ya haya linalohitaji akili maalum. Linahitaji nidhamu, na mshirika anayeshiriki. Mchakato wetu wenyewe umeelezewa kwenye ukurasa wa mbinu, na tabia zile zile zinatumika iwe unafanya kazi nasi au mtu mwingine yeyote.
Orodha ya ukaguzi wa kabla ya mradi
Kabla ya kuanza, hakikisha unaweza kusema ndiyo kwa kila moja ya haya.
- Tunaweza kuelezea tatizo na lengo katika sentensi chache.
- Tunajua watumiaji ni akina nani na tumezungumza na baadhi yao.
- Toleo la kwanza limefafanuliwa, na orodha ya "baadaye" kwa kila kitu kingine.
- Tuna muhtasari ulioandikwa na safu ya makadirio yenye mawazo.
- Mtu mmoja anamiliki maamuzi upande wetu.
- Tulichagua mshirika wetu kwa uangalifu na kujaribu uhusiano kwenye kipande kidogo cha kazi.
- Tutaona programu inayofanya kazi kwa vipindi vya kawaida.
- Upimaji, nyaraka na umiliki wa msimbo viko kwenye makubaliano.
- Bajeti inajumuisha dharura na gharama baada ya uzinduzi.
- Tunajua jinsi tutakavyopima mafanikio.
Mawazo ya mwisho
Miradi ya programu mara chache hushindwa kwa sababu ya kosa moja kubwa. Wanashindwa kupitia mkusanyiko wa polepole wa madogo, yanayoweza kuepukika: sharti lisiloeleweka hapa, onyesho lililorukwa hapo, uamuzi ambao hakuna mtu aliyeumiliki. Upande wa kutia moyo ni kwamba vivyo hivyo ni kweli kuhusu mafanikio. Mradi unaoangaziwa wazi, unaotolewa kwa hatua, unaowasilishwa kwa uaminifu na kujengwa kwa uangalifu una uwezekano mkubwa wa kufanikiwa.
Ikiwa unapanga mradi na unataka mshirika anayefanya kazi hivi, zungumza nasi. Tutakusaidia kufafanua toleo la kwanza la kweli, kuweka mdundo unaoweka kila mtu sawa na kukuambia mapema ikiwa tutaona tatizo linakuja.