Identitas

Ketika kita bekerja sebagai seorang pengembang perangkat lunak, kita dapat memiliki berbagai macam sebutan atau job title. Seperti Programmer, Application Developer, Android App Developer, atau di generalisasi dengan sebutan Software Developer. Setiap organisasi memiliki alasannya masing-masing dalam memberikan job title kepada pegawainya. Dan itu sah-sah saja selama deskripsi pekerjaannya relevan.

Tapi sebagai pribadi, kita pun boleh menyebutkan diri kita sebagai apapun. Dalam hal ini saya pribadi menyebut diri saya adalah seorang Software Engineer. Sekalipun di tempat bekerja tidak seperti itu, tapi tetap relevan.

Mengapa begitu? karena job title adalah bagian dari identitas. Identitas adalah salah satu faktor kuat dalam penentu kebiasaan-kebiasaan yang dilakukan. Dengan syarat, kita memahami peran kita dengan baik.

Bidang

Setelah memahami identitas selanjutnya memahami bidang yang kita geluti. Dalam bidang Software Engineering, salah satu praktisi atau pelaku nya disebut dengan Software Engineer. IEEE, dalam standarnya 610.12-1990, mendefinisikan Software Engineering (rekayasa perangkat lunak) sebagai penerapan yang sistematis, disiplin, yang merupakan pendekatan komputasi untuk pengembangan, pengoperasian, dan pemeliharaan perangkat lunak. Maka seorang Software Engineer (insinyur perangkat lunak) adalah seorang profesional yang menerapkan prinsip-prinsip Software Engineering (rekayasa perangkat lunak) untuk merancang, mengembangkan, memelihara, menguji, dan mengevaluasi perangkat lunak komputer.

SWEBOK – Software Engineering Body of Knowledge adalah buku acuan yang komprehensif tentang berbagai macam aspek yang dibahas dalam bidang Software Engineering. Ebooknya dapat di download gratis di tautan berikut https://www.computer.org/education/bodies-of-knowledge/software-engineering. Coba selesaikan baca bukunya, untuk menambah wawasan di bidang Software Engineering.

Bekerja Dalam Tim

Memahami identitas dan bidang pekerjaan akan sangat membantu kita dalam merencanakan pengembangan diri dan mengetahui apa yang harus dilakukan sehingga dapat memiliki kontribusi yang lebih baik bagi diri sendiri maupun perusahaan. Khususnya ketika bekerja sebagai tim. Namun dalam prosesnya tentu ada saja kendalanya, seiring proses pendewasaan setiap individu.

Berikut ada beberapa hal dalam proses pengembangan perangkat lunak yang pernah saya lihat atau pernah saya alami ketika 3 tahun awal bekerja. Yang mana masih sering terlihat seiring waktu saya bekerja.

Saran saya ketika teman-teman bekerja sebagai software developer apapun frontend, backend, smartphone, desktop, dan lainnya. Sebaiknya jadikan software engineer sebagai identitas. Pahami prosesnya secara sistematis.

Perhatikan gambar diatas, mungkin tulisan digambar tersebut bisa dibilang kiasan kata dengan kata-kata bahasa dan frasa yang di lebih-lebihkan. Tapi disisi lain ada maksud yang ingin disampaikan seperti:

  • Psychology safety environment
  • Critical thinking
  • Communication, collaboration, negotiation
  • Creative thinking
  • Room for improvement

Pengalaman saya 13 tahun bekerja dalam tim software developer, saya sering melihat atau pernah mengalami sendiri bahwa software developer ini ragu-ragu dalam menantang spesifikasi kebutuhan (requirement specification) yang bagi dia sendiri terasa rancu. Kalau pun berani mempertanyakan requirement kepada Business Analyst atau System Analyst ketika mereka bilang “ini sudah sesuai dengan kebutuhan pengguna” atau “permintaan pengguna seperti itu”, software developer agak menciut dan akhirnya sibuk berjibaku dengan kerumitan di kepalanya sendiri. Belum lagi ada tantangan teknis yang bisa jadi tidak terlihat di awal. Ditambah dengan rasa enggan untuk berdiskusi dengan teman satu tim. Hal tersebut akan menyebabkan eksekusi pekerjaan tidak efektif.

Maka dari itu maksud dari gambar dan tulisan pada gambar diatas adalah untuk mendorong sekaligus sedikit menyentil teman-teman software developer agar berpikir dan melakukan refleksi. Selanjutnya, mari perhatian gambar berikut ini, yang mungkin provokatif;

Kasarnya begini; jangan sampai software developer itu seperti di jajah oleh spesifikasi kebutuhan. Hanya iya-iya saja terhadap spesifikasi kebutuhan. Justru software developer harus proaktif untuk memahami spesifikasi kebutuhan. Belajarlah berkomunikasi yang baik dengan rekan kerja agar bisa terjalin kolaborasi yang harmonis.

Ketika kita dihadapkan dengan spesifikasi kebutuhan yang belum lengkap, kurang jelas, dan lain sebagainya, yang mempersulit eksekusi pekerjaan, maka pastikan kita sebagai software developer sudah mencoba memahami gambaran besarnya dulu atau korelasi antar satu hal dengan hal lainnya. Seperti yang di ilustrasi kan pada gambar berikut;

Manfaatkan rekan kerja untuk berdiskusi agar bisa saling bertukar pikiran dan saling menjaga agar performa tim pun baik.

Terkadang pair-programming bisa menjadi solusi untuk berbagai permasalahan teknis maupun non-teknis.

Room for improvement adalah aspek yang penting dalam pengembangan diri yang akan berdampak terhadap kinerja suatu tim. Seseorang yang selalu mengejar perbaikan kualitas diri dalam hal pekerjaan, akan memiliki dampak terhadap tim juga perusahaan. Namun perlu diperhatikan jangan sampai improvisasi dalam pekerjaan justru seperti terlihat ingin jadi superhero saja, pastikan kontribusinya bisa juga di nikmati khususnya teman satu tim.

Saya menggunakan istilah software developer dalam beberapa paragraf diatas. Yang sebetulnya hal tersebut seharusnya menjadi identitas seorang software engineer. Memahami proses dari ujung ke ujung memang tidak mudah, apalagi ruang lingkup pekerjaannya cukup luas. Tapi di situlah kita belajar menggunakan pendekatan yang sistematis. Sesuai dengan panduan di bidang software engineering.

Mungkin ini adalah artikel yang subjektif, karena pengalaman setiap orang bisa berbeda-beda. Tapi semoga bisa sedikit memberikan inspirasi atau menambah sudut pandang dalam konteks pengembangan perangkat lunak.

Photo by Thomas Bonometti on Unsplash

Author

Engineering Manager, Software Engineer, Chatbot Developer, Natural Language Processing Enthusiast, JAMStack Enthusiast.

Write A Comment