Proyek IT mempunyai beragam skala dari skala kecil hingga besar. Kecil disini dapat ditangani oleh beberapa 2 orang saja, atau bahkan sampai harus belasan atau puluhan orang yang diterjunkan karena lingkupnya yang semakin besar.
Proyek IT biasanya bersumber dari permintaan BUMN, Pemerintahan, Kepolisian, Militer, atau instansi lain seperti rumah sakit, restoran, mall, manufaktur, perhotelan dan lainnya. Biasanya proyek – proyek tersebut dikerjakan dalam rentang waktu tahunan, atau bulanan saja.
Ada kalanya suatu instansi meminta jasa dari CV atau PT yang ingin dibuatkan sebuah aplikasi atau solusi lainnya. Namun ternyata ingin hemat dengan budgetalakadarnya. Padahal dalam pengerjaan proyek IT, idealnya tidak bisa diselesaikan oleh satu atau dua orang saja.
[postingan number=3 tag=”hacker”]
Bahkan bila harus dikerjakan oleh satu orang pun, orang tersebut dapat merangkap tiga peran mulai dari project manager, system analyst, sekaligus web developer dalam dirinya sendiri. Oleh karena itu perusahaan wajib mengetahui bahwa dalam pengerjaan proyek, pihak developer lah yang harus menentukan berapa orang yang bisa diberdayakan agar proyek tersebut selesai sesuai perannya masing – masing.
Menyewa programmer saja bukan langkah yang sepenuhnya tepat, karena programmer pun punya spesialisasi yang berbeda – beda, belum lagi bila harus membuat dokumentasi dan pengujian aplikasi, tentu waktu yang dimiliki programmer tidak akan selapang yang dipikirkan.
Lalu apa sajakah peran – peran yang ada dalam sebuah tim pengerjaan proyek IT? umumnya adalah sebagai berikut.
1. Project Manager
Tanpa Project Manager, tim IT akan sulit menentukan arah. Karena memang harus ada satu orang yang fokus untuk mengatur task dan berbicara dengan client. Bila programmer harus berbicara langsung dengan client bisa habis sudah, apalagi bila harus berbicara dengan komite. Waktu untuk mengerjakank aplikasi pun tidak akan cukup.
Project manager berperan besar untuk menjadi barrier bagi rekan – rekank setimnya dalam hal negosiasi infrastruktur dan timeline pengerjaan proyek. Juga untuk membatasi fitur yang tidak seharusnya dikerjakan di dalam timeline yang ditentukan. Tantangan menjadi project manager adalah bagaimana kita harus membendung fitur yang diinginkan client tapi ternyata harus mengganggu timeline yang ada. Pasti bikin greget kalau sudah merasakan hal tersebut.
Selain itu Project Manager pun diharapkan mempunyai pengetahuan yang sama dengan rekan setimnya, paling tidak pernah menjadi programmer terlebih dahulu agar bisa mengukur kemampuan temannya untuk menyelesaikan suatu task. Bila tidak pernah melakukan programming, bisa jadi task yang diberikan tidak sesuai dengan kemampuan pengerjaan programmer-nya.
[postingan number=3 tag=”startup”]
2. System Analyst
System Analyst berperan besar dalam analisis keseluruhan sistem dan bisnis proses. Bisnis proses yang diinginkan client harus dipastikan dapat garis besar dan detailnya. Kemudian divalidasi kepada client dan diterjemahkan menjadi beberapa wujud diagram. Bisa berupa flowchart, DFD, maupun UML. Jangan lupa analisis juga kebutuhan database-nya dan harus dituangkan ke dalam ERD.
Tidak lepas pula analisis penunjang lain seperti kebutuhan networking dan infrastruktur harus dianalisa juga bersama network engineer dan system engineer. Dan kewajibannya adalah mendokumentasikannya dengan baik agar dapat digunakan oleh programmer.
System Analyst berperan besar dalam memudahkan programmer untuk tidak melakukan analisanya sendiri. Salah satu masalah dalam proyek IT adalah bila programmer harus melakukan analisa sendiri. Misal apakah suatu form harus divalidasi dengan rule tertentu. Atau programmer bingung dengan bisnis proses yang harus seperti apa. Kebingungan tersebut dapat membuat flow aplikasi atau sistem menjadi tidak semestinya.
Karena itu disanalah peran system analyst diperlukan.
3. UI/UX Designer
Tidak semua tim memperkejakan seorang UI/UX Designer secara terpisah dari frontend designer. UI/UX Designer juga bukanlah desainer grafis yang sering salah diartikan. Disini UI/UX Designer pun sebenarnya harus dipisah lagi menjadi dua peran, namun masih bisa digabung bila lingkupnya tidak terlalu besar.
UX Designer berperan dalam bagaimana membuat pengguna merasa nyaman dan betah dalam menggunakan aplikasi. Tapi yang utama adalah bagaimana membuat user dapat menyelesaikan kebutuhannya saat menggunakan aplikasi. Tidak mungkin kan bila user ingin membuat sebuah data baru tapi tombolnya tersembunyi atau harus melakukan 5 aksi terlebih dahulu? disanalah peran UX Designer untuk menentukan seperti apa aplikasi harus berinteraksi dengan user-nya.
Hasilnya, akan diwujudkan oleh UI Designer untuk menjadi wireframe atau rancangan kasar berupa layout yang akan dikerjakan oleh frontend desinger. Frontend designer akan membuat berbagai komponen dengan komposisi warna yang berbeda yang akan digunakan oleh application developer.
[postingan number=3 tag=”blockchain”]
4. Technical Writer
Haruskah seorang programmer yang mendokumentasikan keseluruhan sistem yang dibuat? tentu tidak, karena itu dalam sebuah tim proyek IT harus ada seseorang yang mendokumentasikannya secara keseluruhan dan jelas. Technical Writer harus berperan disini.
Umumnya pekerjaan ini sering dijumpai oleh kalangan wanita profesional lulusan jurusan IT. Mungkin salah satu alasannya adalah kepiawaian dalam menanyakan sesuatu dan dokumentasi yang rapi.
Technical Writer tidak hanya mendokumentasikan sistem dan aplikasi yang dibuat, juga membuat help guide dan software manual documentation untuk diberikan kepada client. Tanpa dokumentasi yang baik, aplikasi dan sistem hanyalah seonggok kode yang sulit dimengerti. Client pun bukan dewa yang tahu akan segalanya, oleh karena itu dokumentasi dan help guide harus dibuat sebaik mungkin.
5. Quality Assurance
Perangkat atau sistem yang dibangun tentu harus lolos uji. Tidak mungkin kita memberikan sesuatu yang penuh dengan bug dan fitur yang tidak semestinya. Oleh karena itu quality assurance diperlukan untuk menangani masalah tersebut.
Setiap fitur yang dikerjakan oleh programmer harus segera di-test baik secara manual ataupun otomatis dengan test case yang sudah disiapkan. Berbagai kemungkinan harus dicoba baik sesuai dugaan maupun diluar dugaan. Dan jangan lupa test case dan hasil test harus didokumentasikan dengan baik.
Seiring bertambahnya jumlah fitur yang terbenam dalam sistem atau aplikasi, diharapkan seorang quality assurance mampu melakukan automated testingagar lebih mengefisienkan waktu dan dapat menggunakan waktunya untuk kepentingan yang lain.
[postingan number=3 tag=”programming”]
6. Network Engineer
Seringkali proyek IT skala besar tidak mau melibatkan peran yang satu ini. Padahal kemampuan computer networking itu mempunyai kekhususan tersendiri. Orang yang menguasai suatu web framework atau relational databasetertentu. Belum tentu menguasai networking baik itu instalasi maupun maintenance-nya.
Katakanlah bila suatu sistem pelayanan rumah sakit harus dipasang di semua bagian gedung. Bila harus dibebankan pada programmer tentu tidak akan efektif. Oleh karena itu network engineer harus diikutsertakan untuk menyumbang kemampuannya dalam memasang instalasi jaringan komputer yang dibutuhkan sistem.
7. System Engineer
Selain harus paham dengan computer networking, system engineer harus mampu menguasai konfigurasi yang mumpuni untuk menyediakan infrastruktur untuk aplikasi dan sistem yang diperlukan. Katakanlah bila seorang system engineer harus memasang server dan meng-install web server dan database di dalamnya, tentu konfigurasi yang diperlukan pun tidak mungkin secara defaultsaja. Harus ada konfigurasi yang lebih aman dan sesuai dengan kebutuhan.
Belum lagi bila infrastruktur harus tersebar antar wilayah dan gedung. Dan tidak lain, seorang system engineer pun harus siap sedia setiap saat seperti Rexona bila terjadi masalah dengan infrastruktur. Berbeda dengan network engineeryang masih bisa dikerjakan besok. Seorang system engineer, harus sedia 24 jam karena masih bisa mengakses sistem melalui SSH di laptop mereka. Itu tantangannya.
8. Frontend Designer
Frontend designer merupakan salah satu jenis peran dari programmer yang berada dalam proyek IT. Tentu saja tantangannya mempunyai keunikan tersendiri dibandingkan backend web developer.
Kemampuanya dibutuhkan dalam menerjemahkan apa yang dibuat oleh UI/UX Designer. Namun tidak jarang ada juga yang merangkap ketiganya. Selain menjadi frontend designer juga sebagai UI/UX designer. Biasanya frontend designer akan mengerjakan rancangan jadi berupa HTML/CSS/Javascript yang berisikan efek – efek jQuery dan sudah membuat tampilan web dengan dihiasi CSS.
Sehingga programmer lain dalam hal ini web developer dapat mulai menjahit logikanya dengan sisi backend yang akan dibuatnya.
[postingan number=3 tag=”games”]
9. Web Developer
Backend web developer merupakan salah satu jenis peran dari programmer yang berada dalam proyek IT. Tugasnya adalah membangun sisi backend yang kokoh serta mengimplementasikan database dan bisnis proses yang sudah diberikan oleh system analyst. Jangan sampai web developer mengambil keputusannya sendiri yang dapat berpengaruh buruk terhadap pengembangan aplikasi dan sistem.
Web developer pun bertugas untuk menjahit tampilan web yang sudah dikerjakan oleh frontend designer. Dan juga menyediakan web service untuk digunakan oleh mobile developer atau desktop application developer.
10. Mobile Apps Developer
Bisa jadi mengerjakan aplikasi untuk iOS ataupun untuk Android. Mobile apps developer bertugas untuk hal tersebut. Tentu saja aplikasi yang dibuatnya harus sepengathuan UI/UX designer dan mampu berkomunikasi dengan system analyst serta web developer.
Mobile Apps Developer ini tidak bisa berdiri sendiri dan membutuhkan banyak pihak agar aplikasinya cepat terwujud. Selain itu harus mempu bekerja sama dengan baik bersama quality assurance karena mobile apps kan menjadi garda terdepan dalam suatu sistem yang digunakan langsung oleh client.
11. Desktop Application Developer
Tidak semua aplikasi berbasis mobile atau web, yang membutuhkan desktop pun masih ada. Walaupun paradigmanya mulai berbeda dimana aplikasi desktopmulai menggunakan web service selayaknya mobile apps.
Di perusahaan manufaktur, rumah sakit, dan retail kebutuhan akan aplikasi desktop masih tinggi misalnya untuk membangun help desk ataupun point of sale. Karena memang lebih efektif bila harus menggunakan aplikasi desktopketimbang dengan aplikasi web yang bisa lebih lambat performanya.
Desktop application developer harus mampu bekerjasama dengan pihak lain sebagaimana mobile apps developer bila harus web service centric. Namun ada juga yang tidak membutuhkan web service sehingga tidak perlu berinteraksi banyak dengan web developer. [cp/ap]
[postingan number=3 tag=”learn”]