Perbedaan Kerja di Company IT yang Merancang Aplikasi untuk Product atau Project Dari Sisi Proses Development— Part 1
Mungkin di era Digital sekarang banyak sekali perusahaan-perusahaan IT di startup/unicorn/decacorn yang berkembang dengan pesat yang mendeliver beberapa aplikasi digital, baik berupa aplikasi dekstop, web, mobile bahkan ada yang membuat aplikasi untuk mendukung keperluan perangkat seperti IoT.
Semua aplikasi yang di buat bertujuan untuk memenuhi kebutuhan industri bahkan bisa menjadi kebutuhan masyarakat pada umumnya. Di era digital, tidak dipungkiri semua kebutuhan manusia berubah drastis yang dulunya mungkin yang terbiasa ketika mencari makanan, beli minuman, beli kebutuhan pokok bahkan berbelanja elektronik kita harus datang ke tempat makan, ke toko, restoran, dsb. Tetapi dengan kemajuan era digital dan teknologi dengan cepat membuat semuanya bisa diselesaikan dengan perangkat yang mungkin teman-teman sekarang pakai, baik PC, laptop ataupun smartphone yang teman-teman pakai.
Jaman dulu mungkin mulai era awal tahun 90 sampai 2000an dulu gadget hanya digunakan untuk hanya bersifat untuk keperluan pekerjaan dan menyimpan data yang bersifat hanya bisa di akses melalui masing-masing gadget, meskipun era segitu komputer belum secanggih sekarang karena teknologi internet, tetapi di era sekarang gadget yang teman-teman pakai bisa terkoneksi dan terhubung satu sama lain bahkan device yang teman-teman pakai itu sudah bisa terhubung satu sama lain dengan adanya internet.
Jaman dulu, perusahaan teknologi hanya membuat software yang bersifat base desktop atau yang bersifat offline software, tetapi di jaman sekarang sudah banyak di beberapa device seperti aplikasi berbasis web dan mobile yang dimana sudah didukung dengan teknologi internet.
Pada dasarnya, semua aplikasi yang di buat dari jaman dulu tidak ada perbedaan yang signifikan, hanya saja di jaman sekarang banyak sekali tools yang dikembangkan semakin banyak dan banyak sekali optimasi yang terkini dari beberapa aplikasi. Sehingga aplikasi yang di kembangkan semakin maju dan pesat karena sering kemajuan internet, juga memberikan dampak aplikasi yang up to date dan cepat karena pasti teknologi di masing-masing device pun terus di update agar software yang dipakai terus berkembang dan semakin banyak fitur-fitur yang terkini.
Di Industri IT, banyak sekali perusahaan yang mengembangkan aplikasi-aplikasi yang dimana mencakup kebutuhan para pengguna agar bisa memberikan manfaat dari aplikasi yang dibuat. Aplikasi tersebut ada yang bersifat project maupun product tergantung perusahaan bergerak di bidang apa. Kok bisa berbeda sifatnya? Mari kita bahas satu per satu.
Aplikasi Berbasis Project
Aplikasi berbasis project merupakan aplikasi yang bersifat pengembangan berbasis timeline. Maksudnya aplikasi tersebut dibuat hanya dalam 1 kali pengembangan sampai beres timeline yang telah di tentukan, yang dimana kita harus men-deliver aplikasi pada waktu tertentu sesuai MoU yang di buat perusahaan dan client. Biasanya aplikasi tersebut bertujuan untuk membantu para client untuk memenuhi kebutuhan bisnis client dan biasanya client tidak memiliki resource IT yang mumpuni sehingga memerlukan resource tambahan dari perusahaan lain bahkan bisa di bilang outsourcing. Biasanya perusahaan ini disebut software house, digital agency, IT Consultant, dsb. Metode pengembangan aplikasi tersebut hampir kebanyakan perusahaan yang bergerak di bidang ini menggunakan metode Waterfall Design yang dimana metode tersebut seperti air terjun yang dimana rangkaian awalnya mulai dari analisa, system design, coding/development dan testing bahkan maintenance (jika di perlukan). Berikut gambar yang mungkin bisa kebayang seperti apa Waterfall Design.
Biasanya metode ini sering dipakai untuk men-deliver beberapa project. Tahap awal agar bisa berjalan dengan optimal diawali dengan mengumpulkan beberapa requirement yang dibutuhkan seperti requirement flow, business proccess, requirement system dsb.
Lalu setelah semua requirement dibutuhkan sudah terpenuhi, tahap selanjutnya yaitu membuat tahapan design system. Dalam tahap design system pada biasanya membuat rancangan design aplikasi yang akan dibuat seperti apa yang dirancang oleh tim UI/UX dan biasanya membuat rancangan design database yang akan di implementasi juga dari sisi sistem aplikasi yang bertujuan untuk membuat beberapa model data yang akan di proses dalam metode CRUD (Create, Read, Update, Delete).
Setelah semua design system sudah rampung maka selanjutnya adalah tahap implementation atau coding. Dan disinilah fase-fase developer memulai men-develop beberapa fitur penting, mulai men-develop Backend oleh Backend Developer (yang berperan sebagai perancang sistem di belakang layar untuk membuat service yang akan di integrasikan dengan Frontend). Lalu, tim Frontend Developer merancang dan membuat beberapa halaman yang akan di buat berdasarkan design dari UI/UX dan mengintergasikan semua data-data yang di butuhkan yang telah di-develop oleh Backend Developer.
Setelah semua aplikasi sudah deliver, maka tahap selanjutnya yaitu Verification atau mungkin bisa di istilahkan dengan Testing. Pada tahap ini aplikasi yang sudah rampung di test untuk memastikan bahwa semua aplikasi yang sudah jadi dipastikan minim bugs dan error agar ketika aplikasi sudah di pakai di beberapa pengguna sudah tidak ada error. Biasanya pada tahap ini dilakukan oleh Quality Assurance atau bisa disebut QA. Pada dasarnya, QA ini mendapat dokumentasi bernama User Acceptence Test (UAT) yang dibuat oleh System Analyst, dimana berisikan informasi mengenai bagaimana fitur-fitur yang ada di aplikasi berjalan sesuai ekspetasi, jadi bisa di bilang Test Case. Hanya saja Test Case yang dibuat oleh Analyst hanya berisikan informasi case-case yang berhubungan dengan flow aplikasi. Lalu, peran QA disini dia tidak hanya test berdasarkan skenario yang di buat oleh analyst, QA juga justru dia menambahkan beberapa special cases (ini bisa lebih gila skenarionya wkwkwkwk) yang bertujuan bahwa aplikasi tersebut rentan dari beberapa scripts yang out of the box. Misal dia inject dalam form aplikasi menggunakan script yang agak rentan misal dia tambah sql injection atau script bash command, dsb, yang dimana beberapa script tersebut sangat berbahaya untuk diserang hacker. Tapi di era sekarang QA pun bisa dituntut bisa coding juga :’)
Setelah semuanya oke, maka tahap selanjutnya live production yang dimana aplikasi tersebut sudah launch dan bisa digunakan oleh user.
Tetapi namanya aplikasi tidak luput dari istilah bugs dan error, maka dari itu ketika aplikasi project telah beres, ada dinamakan masa maintenance atau bisa di bilang dalam bahasa umumnya “GARANSI”, yang dimana ketika masa maintenance tersebut kita menjaga bahwa aplikasi tersebut minim dari errors. Biasanya pada masa ini bisa di bilang masa garansi, biasanya ketika perjanjian di awal dengan client, dari awal pitching project bahwa perusahaan akan memberikan masa maintenance yang bertujuan agar aplikasi tersebut selama masa garansi bisa di maintenance dengan optimal. Namun namanya juga sudah di tengah jalan, kadang client pun suka minta yang aneh-aneh juga :”) pada fase ini jika ada penambahan fitur atau perubahan flow dari sisi aplikasi yang sekiranya fitur tersebut memerlukan effort lebih, makan pada tahap ini dari perusahaan suka menambahkan opsi Change Request (CR) dikarenakan di aplikasi tersebut sudah ada perubahan yang cukup signifikan. Tetapi jika perubahannya ber-impact besar maka disarankan untuk melakukan kontrak ulang dengan pembuatan aplikasi 2nd Phase.
Begitulah gambarannya jika kita kerja di perusahaan yang core business nya berbasis project.
Lalu apa bedanya dengan Product Base?
Nanti tunggu saja di Part-2 yah hehehe :D