GEO ENG
GEO ENG

სტატიები

პროგრამული უზრუნველყოფის ტექნიკური დავალების ფორმირება

თითქმის ყველა ორგანიზაციას ესაჭიროება გარკვეული სახის პროგრამული უზრუნველყოფა. დღევანდელ რეალობაში ქართული კომპანიები რომელიმე ორგანიზაციას ან შიდა პროგრამისტს სთხოვენ ამოცანის გადაჭრას, მოკლედ მოუყვებიან მოთხოვნების შესახებ, გააფორმებენ ხელშეკრულებას და…

 

ამ მომენტიდან იწყება გაუთავებელი პრობლემები – პროგრამა ზოგადია, ბევრი ხარვეზია, ძალიან მნიშვნელოვან ფუნქციებს ვერ ასრულებს, უფრო მეტი პრობლემები წარმოიქმნება, როდესაც ახალი, სრულიად განსხვავებული ფუნქციის დამატებაა საჭირო. საბოლოოდ ვიღებთ ხუხულას, რომელიც დღედღეზე ჩამოიშლება, რომელიც ძალიან მოუხერხებელია და ამას ყველა ერთხმად აღიარებს. შემდგომი ეტაპი ნაკლებ საინტერესოა, ყველა ყველაფერს ერთმანეთს აბრალებს, მტყუან-მართალის გარკვევა შეუძლებელია..

 

რა უნდა გავაკეთოთ, ეს რომ თავიდან ავიცილოთ? ამისათვის, უპირველეს ყოვლისა, უნდა გვქონდეს რაც შეიძლება ზუსტი ტექნიკური დავალება, რომელიც მოიცავს არამხოლოდ ამ ეტაპზე არსებულ საჭიროებებს, არამედ რა ფუნქციები შეიძლება დაემატოს სამომავლოდ.

 

როგორ უნდა დავწეროთ ტექნიკური დავალება? ეს პროცესი საკმაოდ საინტერესოა და არც ისე რთულია. რა არის მთავარი მის შესაქმნელად? არც სიღრმისეული IT ცოდნა, არც დიდი გამოცდილება, მთავარია შემსრულებელ პირს კარგად ესმოდეს ბიზნესი და მისი სამომავლო განვითარების პერსპექტივები, ორგანიზება გაუკეთოს პროცესს, სადაც ჩართავს ყველა საჭირო პირს, მოახდენს გადაწყვეტილებების დაჩქარებასა და ფასილიტაციას.

ჩვენ მიერ რეკომენდირებული პროცესი ტექნიკური დავალების შესაქმნელად, რომელსაც საკუთარ გამოცდილებაზე დაყრდნობით გთავაზობთ, ასეთი სახისაა:

 

1. ორგანიზაციის ბიზნეს მოდელის შესწავლა – უნდა გამოიკვეთოს ორგანიზაციის მთავარი დანიშნულება და ყველა ის ამოცანა, რომელსაც კომპანია ჭრის ან სამომავლოდ შეიძლება გადაჭრას.

 

ეს არის დავალების ქვაკუთხედი, რაც არ უნდა ვიწრო შეიძლება იყოს პროგრამული უზრუნველყოფა, აუცილებელია დავალების შემქმნელს მისი აღქმა გააჩნდეს ორგანიზაციასთან მიმართებაში. ამ საკითხში ძალიან მნიშვნელოვანია ტოპ-მენეჯერებთან ინტერვიუები, მათთან ამოცანების განხილვა, რა გეგმები აქვთ, რა ცვლილებები შეიძლება შევიდეს კომპანიის საქმიანობაში.

 

2. პროცესების გამოკვეთა-დამუშავება – მას მერე, რაც ცხადი გახდება ამოცანები, ამის მიხედვით უნდა გაკეთდეს არსებული და პოტენციური ბიზნეს-პროცესების სია, რომლებიც თუნდაც ერთ წერტილში კვეთს პროგრამას.

სიის შექმნის შემდგომ აუცილებელია პროცესების აღწერა პროცესის მონაწილეების და შემსრულებლების დახმარებით. აქ არ არის აუცილებელი ოპტიმიზაცია ან დახვეწა, თუმცა ამის შესაძლებლობებიც გამოჩნდება, რისი გამოყენებაც ორგანიზაციისათვის ღირებულია.

 

3. მთავარი მოთხოვნების განსაზღვრა – ინტერვიუების საშუალებით მთავარ მომხმარებელთა მოთხოვნები, არსებული პრობლემები უნდა გამოკვეთოთ. რას ელიან ახალი სისტემისაგან, რა პრობლემები უნდა გადაუჭრას, რა საქმიანობა უნდა შეუმსუბუქოს.

 

რა თქმა უნდა, რესპოდენტებს ხშირად ეს არ აქვთ ცხადად გააზრებული და ჩამოყალიბებული, ამიტომ აქცენტი უნდა გაკეთდეს არა სისტემაზე, არამედ მიმდინარე საქმიანობაზე. ინტერვიუერი უნდა მიჰყვეს პროცესს და ყველაზე მეტად რა სახის პრობლემები ექმნებათ, რაზე ეხარჯებათ ყველაზე მეტი დრო, რა არის მათ საქმიანობაში ყველაზე მნიშვნელოვანი.

 

საბოლოოდ მოთხოვნები ერთად უნდა შეიკრას, დაიხვეწოს და მოეწყოს ერთიანი შეხვედრა, სადაც განიხილავთ პროცესებსაც და მოთხოვნებსაც პროცესების მიხედვით. აქ კიდევ დაემატება ახალი ღირებული მოთხოვნები, ასევე, კომპანიის თანამშრომლები ჩაერთვებიან დავალების შექმნის პროცესში და თუ დაინახავენ მათთვის სასარგებლო რამ კეთდება, გაიზრდება მათი ჩართულობა და ხელშეწყობა.

 

4. დავალების ბირთვის ფორმირება – უკვე ცხადად ჩანს პროგრამის მიხედვით მოთხოვნები, სად არის ავტომატიზაცია ყველაზე კრიტიკული და აუცილებელი, ჩანს შესაძლებლობები და იწყება დავალების ბირთვის ფორმირება: რა მონაცემები უნდა არსებობდეს პროგრამაში, რაც შეიძლება სრული სია, და რა ფუნქციები/ოპერაციები უნდა სრულდებოდეს.

 

ეს კეთდება პროცესებზე დაყრდნობით. შემსრულებელი უნდა მიჰყვეს თითოეულ პროცესს და სადაც რაიმე მონაცემი ან ოპერაცია შეხვდება, აუცილებლად ჩაინიშნოს. აქ არ არის საჭირო დეტალიზაცია, მხოლოდ აღწერები საკმარისია.

შემდეგ ეს ინფორმაცია კარგად უნდა დამუშავდეს-დალაგდეს გარკვეული ლოგიკის მიხედვით, გახდეს უფრო აღქმადი და წაკითხვადი. აუცილებელია ამ ნაწილის გავლა/შეთანხმება სამუშაო ჯგუფთან.

 

5. პოტენციურ შემსრულებლებთან საწყისი დავალების გავლა – თუ შერჩეულია პოტენციური პარტნიორები, მათთან შეხვედრის დროც მოვიდა.

 

აუცილებელია კარგად მომზადება შეხვედრებისათვის: უპირველეს ყოვლისა განისაზღვროს ამოცანის ყველაზე კრიტიკული ნაწილები – რისი შესრულება არის ორგანიზაციისათვის ყველაზე მნიშვნელოვანი და რისი შესრულება ჩანს ყველაზე რთული. ასევე უნდა მომზადდეს კითხვები მათი გამოცდილების, ცოდნის შესამოწმებლად მსგავსი პროექტების განხორციელებისას.

 

შეხვედრებისას აუცილებელია ყველა კრიტიკული საკითხის გავლა, როგორ ფიქრობენ მის გაკეთებას, რა სირთულეებს ხედავენ, მსგავსი რამ თუ გაუკეთებიათ და რაც მთავარია, რა მოთხოვნები აქვთ, რათა დავალება მაღალი ხარისხით შეასრულონ – ეს შეიძლება იყოს ფინანსური, ტექნიკური ან ნებისმიერი სხვა სახის.

 

ინტერვიუ უნდა დაოქმდეს, გამოიკვეთოს მნიშვნელოვანი საკითხები და გაკეთდეს ანალიზი: არგუმენტები/კონტრარგუმენტები – რომელ პარტნიორს რა უპირატესობა და სისუსტე გააჩნია. ეს ყველაფერი კი უნდა განიხილონ მენეჯერებმა.

 

არ არის აუცილებელი გადაწყვეტილების მაშინვე მიღება. შეიძლება დამატებითი ინფორმაციის მოძიება გახდეს საჭირო, ან თუნდაც უფრო დეტალური ამოცანის გავლა და ა.შ.. არ არის საჭირო სიჩქარე, ძალიან კრიტიკულია პარტნიორის შერჩევა, ვინაიდან არასწორმა გადაწყვეტილებამ შეიძლება დაგაზოგინოთ ფული, მაგრამ შემდგომში ძალიან გაწვალდეთ.

 

6. დეტალიზაცია – რაც დავალების მონახაზი შეთანხმდება, იწყება ტექნიკური სამუშაო – სიღრმისეული ჩაშლა თითოეული მონაცემისა და ფუნქციის – მაგალითად, თუ არსებობს კლიენტის ცხრილი, რა მონაცემები უნდა იყოს კლიენტის შესახებ და როგორ უნდა ივსებოდეს ის (ნაწილი ხელით, ნაწილი ავტომატურად).

 

ასევე თითოეული ოპერაციის სრული აღწერა – რომელი ველიდან სად რა სახით გადადის ინფორმაცია და რა დამუშავებას განიცდის ის. ზოგიერთი ორგანიზაცია არ ითხოვს ამგვარ დეტალიზაციას და თავად იღებს საკუთარ თავზე, თუმცა ასეთ დროს არის იმის რისკი, რომ ვერ შეასრულოს ის, რაც სინამდვილეში იყო საჭირო. სასურველია პარტნიორთან გზადაგზა დეტალიზაციის გავლა , რასაც შეიძლება საინტერესო გამოცდილება ან იდეა გააჩნდეს ამ კუთხით.

 

ბოლოს მსგავსი სტრუქტურის დავალება მიიღება – იქნება მონაცემების ცხრილები, რომელიც უნდა გამოჩნდეს მომხმარებლებთან დეტალური ველებით (მაგალითად, უნივერსიტეტების პროგრამაში შეიძლება იყოს ცხრილი სტუდენტი და გამოჩნდეს მისი დეტალური ველები – სახელი, გვარი, კურსი, GPA და სხვა), ველების შევსების ფუნქციები – რა ველები შედის ხელით (მაგალითად, სახელი და გვარი ხელით შეიძლება შევიდეს), რა ველები გენერირდება ავტომატურად (წლების მიხედვით კურსი ავტომატურად იზრდება ერთით), რა ველები გადმოდის სხვა ცხრილიდან (შეფასებების ცხრილიდან შეიძლება გამოითვალოს და დაგენერირდეს GPA);

 

7. ხელშეკრულების გაფორმება – დავალება მზად არის დეტალიზაციით, სიზუსტით, საჭიროა შერჩეულ პარტნიორთან მისი გავლა, პირობებზე შეთანხმება და ხელშეკრულების გაფორმება.

 

მაგრამ, არ არის საკმარისი მხოლოდ დავალების გადაცემა, მნიშვნელოვანია ეტაპებზე შეთანხმება – რა ვადაში დასრულდება, რა ეტაპებად – I ეტაპზე რა ველები შეიქმნება, II ეტაპზე რა და ა .შ.. თითოეული ეტაპის ბოლოს აუცილებლად უნდა მოხდეს შემოწმება რამდენად სრულდება დავალება, აქვე ახალი მოთხოვნები, სირთულეები და შენიშვნები გაჩნდება და საჭირო იქნება დავალებაშიც ცვლილებების შეტანა. ამიტომაც, ეს ყველაფერი ხელშეკრულებაშივე უნდა ჩაიდოს.

 

***

 

შემდგომი ეტაპია უკვე შესრულების მონიტორინგი, მაგრამ ამ საკითხს აქ აღარ შევეხებით. ალბათ კითხვა გაჩნდება პროგრამული უზრუნველყოფის მოცულობას თუ აქვს მნიშვნელობა დავალების შემუშავებისას? ვფიქრობთ, რომ თუ პროგრამული უზრუნველყოფა ძალიან დიდია, იქ არსებობს განსხვავებული მოდულები განსხვავებული ამოცანებით, რის გამოც დიდი სისტემა უნდა დაიყოს უფრო მცირე მოდულებად და შესაძლოა, თითოეულზე ინდივიდუალურად იმუშაონ განსხვავებულმა ადამიანებმა.

 

შემოთავაზებული პროცესი ერთი შეხედვით ძალიან ხანგრძლივი და რთული ჩანს, მაგრამ სინამდვილეში თითოეული ეტაპი რამდენიმე დღეში, მაქსიმუმ 1 კვირაში დასრულდეს. და რაც მთავარია, გაწეული შრომა ნამდვილად არ არის დასანანი მსგავსი საქმისათვის, ვინაიდან საწინააღმდეგო შემთხვევაში ათმაგი რესურსი, შრომა და ჯაფა შეიძლება დაგეხარჯოთ. თუ თქვენ გამოცდილ და უფრო მოქნილ მეთოდოლოგიასაც გაგვაცნობთ ძალიან ღირებული იქნება როგორც ჩვენთვის, ასევე მკითხველისათვის.