2 poin oleh GN⁺ 2023-12-15 | 1 komentar | Bagikan ke WhatsApp

Wawancara dengan ibu saya, seorang programmer COBOL mainframe

  • Ibu saya telah bekerja di salah satu bank terbesar di Uni Eropa sejak sebelum saya lahir.
  • Dunia pemrograman perbankan adalah dunia yang sepenuhnya berbeda dari yang dikenal kebanyakan orang.
  • Jika ibu saya dan timnya berhenti bekerja, bank itu kemungkinan akan kolaps dalam beberapa minggu.

1991

  • Ibu saya memulai pelatihan internal di Nordbanken (sekarang Nordea).
  • Ia menjalani berbagai tes dan lulus tes IQ, tes psikologi, dan tes multitasking.
  • Ia memulai sebagai programmer COBOL mainframe IBM, dan 25 tahun kemudian masih menjalankan pekerjaan yang sama di bank yang sama.

COBOL

  • COBOL bukan bahasa pemrograman keren seperti Haskell yang fungsional atau Golang yang berfokus pada konkurensi.
  • COBOL adalah bahasa imperatif dan prosedural, dan sejak 2002 juga berorientasi objek.
  • Dalam konteks pemrograman mainframe, hampir tidak ada orang yang memahami COBOL.

Basis data

  • Basis data utama disebut IMS, yaitu basis data hierarkis yang dibuat IBM untuk program Apollo.
  • Sedang ada upaya migrasi ke DB2, tetapi ini adalah pekerjaan yang akan memakan waktu bertahun-tahun.
  • Basis data DB2 saat ini menyimpan sekitar 10TB data.

Batch

  • Sekitar 80% sistem terdiri dari pekerjaan batch.
  • Pekerjaan batch dijalankan pada waktu atau interval tertentu, memproses data atau mengirimkan data ke bank/lembaga lain.

Masalah yang dihadapi bank

  • Bank yang menggunakan mainframe memiliki banyak masalah yang harus ditangani.
  • Para programmer semakin menua, dan butuh 2-3 tahun hingga pegawai baru bisa bekerja secara mandiri.
  • Ada program-program yang sudah berusia puluhan tahun, dan tidak ada yang tahu apa sebenarnya yang dilakukan program-program itu.

Kata penutup

  • Sangat menarik untuk melihat teknologi baru apa yang akan diperkenalkan Nordea dan bank-bank lain dalam beberapa tahun ke depan.

Q & A

  • Mengapa memilih pemrograman COBOL mainframe IBM? Karena ingin bekerja dengan komputer.
  • Hal terburuk yang pernah terjadi dalam satu hari kerja? Seorang rekan lupa menuliskan satu titik pada modul sistem penting, sehingga bank mengalami down selama 16 jam.
  • Seperti apa masa depan bank? Mereka menyadari bahwa mainframe harus diganti dengan sesuatu yang lebih modern.
  • Tantangan sebagai programmer perempuan di era 90-an? Tidak ada masalah.
  • Apakah bekerja dengan codebase yang sama selama lebih dari 20 tahun menjadi membosankan? Membangun sistem baru selalu menyenangkan.
  • Apakah menulis kode untuk bank terasa menakutkan? Sangat menakutkan, tetapi lingkungan pengujiannya solid sehingga sebagian besar berjalan lancar.
  • Pernah membuat kesalahan besar untuk bank? Pada 1997, pernah membuat kesalahan yang memungkinkan penarikan uang secara ilegal dari rekening tabungan pensiun.
  • Seperti apa lingkungan kerjanya? Berpindah dari meja pribadi ke ruang kerja terbuka, dan sangat membencinya.

Opini GN⁺

  • Mainframe dan bahasa COBOL masih memainkan peran penting dalam industri keuangan, dan keahlian pada teknologi ini sangat berharga.
  • Kompleksitas sistem perbankan dan ketergantungan pada teknologi lama membuat transisi ke sistem baru menjadi sulit, dan ini merupakan tantangan besar.
  • Wawancara ini menunjukkan bahwa dibandingkan dengan pesatnya perkembangan teknologi, beberapa industri masih menggunakan teknologi lama, dan ini menjadi kontras yang menarik.

1 komentar

 
GN⁺ 2023-12-15
Komentar Hacker News
  • Kiriman HN asli tahun 2016 adalah https://news.ycombinator.com/item?id=12096250
    Jika mencari bacaan tambahan tentang topik “dunia pemrograman perbankan adalah dunia yang sama sekali berbeda dari yang biasa kita kenal”, An oral history of Bank Python juga bagus: https://calpaterson.com/bank-python.html
    Dulu juga pernah muncul di HN: https://news.ycombinator.com/item?id=29104047

    • Mengejutkan bahwa itu sudah 7 tahun lalu. Saya sempat ingin mewawancarai ibu saya tentang kisahnya memprogram mainframe dengan Michigan Algorithm Decoder, tapi akhirnya tidak kesampaian
      https://news.ycombinator.com/item?id=12097032
  • Orang sering berpikir, “kalau programmer mainframe berusia 20 tahun, usia punya nilai yang sangat besar, jadi pasti bergaji tinggi,” tetapi kenyataannya biasanya rata-rata atau bahkan di bawah rata-rata, sehingga muncul masalah pipeline talenta
    Yang benar-benar bernilai bukanlah keterampilan itu sendiri seperti “tahu COBOL”, melainkan pengetahuan organisasi tentang logika bisnis besar yang menumpuk di dalam COBOL. Developer rata-rata pun bisa belajar COBOL, tetapi programmer COBOL pensiunan yang kembali dengan kontrak 500 ribu dolar per tahun itu bukan karena COBOL, melainkan karena pengetahuan institusional yang terakumulasi
    Jika bank dan institusi benar-benar membayar programmer mainframe muda dengan sangat tinggi, masalah struktur demografi saat ini mungkin tidak separah ini

    • Di pascasarjana saya bertemu seseorang yang berada dalam situasi seperti itu. Ia bekerja di bank, lalu diberhentikan saat krisis finansial, dan bank berusaha memigrasikan sistem lama ke sesuatu seperti Java
      Mereka melihat proyeknya hampir selesai, dan menganggap tim penulisan ulang sudah cukup akrab dengan COBOL sehingga sisanya bisa dilakukan tanpa dia. Namun kenyataannya, meskipun mereka memahami COBOL, pengetahuan institusional miliknya sangat dibutuhkan. Akhirnya ia kembali paruh waktu dengan tarif konsultasi yang sangat tidak masuk akal sampai transisi selesai, sambil menjalani sekolah pascasarjana dan meningkatkan kemampuannya
    • Saya menangani sistem inti COBOL di perusahaan asuransi besar, dan sepenuhnya setuju. Yang dibayar perusahaan bukanlah pengetahuan COBOL itu sendiri, melainkan orang-orang yang mengetahui keanehan dan jebakan yang tidak terdokumentasi di dalam kode
      Programmer yang cukup baik bisa membaca dan mengikuti program COBOL. Namun mereka tidak tahu mengapa ekspor inti saat ekstraksi data untuk pelaporan 10-K tiba-tiba mati. Penyebabnya, seseorang berasumsi jumlah record tertentu tidak akan melebihi 3000, lalu meng-hardcode agar program langsung error jika nilai itu terlampaui
    • Saat pertama bekerja, saya menangani pekerjaan mainframe bank/asuransi, dan lingkungan kerjanya cukup buruk, dari hal kecil seperti dress code sampai hal rumit seperti codebase legacy yang sangat usang. Kalau bayarannya bagus mungkin saya tahan, tapi ternyata tidak
      Kenyataannya saya dibayar jauh lebih rendah daripada pekerjaan sebelumnya memasang infrastruktur kabel fisik, yaitu memasang fiber optic dan Ethernet tembaga; alasan saya memilih pekerjaan itu pun hanya karena kantornya ber-AC. Itu bukan pekerjaan yang ingin saya jadikan karier
      Ketika bekerja sebagai administrator sistem Windows level menengah yang menangani dukungan telepon pelanggan di penyedia cloud, saya menghasilkan hampir 30% lebih banyak dibanding saat menjadi staf mainframe junior di bank/asuransi. Meski merupakan keterampilan langka dan berada di industri bernilai tinggi, pekerjaan mainframe dibayar jauh lebih rendah, dan di perusahaan itu developer mainframe mendapat kompensasi terendah di antara developer pada semua level karier. Satu-satunya yang mendapat bayaran pantas adalah kontraktor independen yang sebelumnya sudah bekerja 30 tahun sebelum pensiun
    • Saya punya pengalaman COBOL, pernah melakukannya di mainframe, dan bersedia melakukannya lagi. Untuk ukuran programmer COBOL, saya masih muda, jadi seseorang mungkin bisa memanfaatkan saya 20 tahun lagi
      Namun gaji untuk peran seperti itu menyedihkan dibanding kompensasi yang bisa didapat dengan teknologi lain, dan kehidupan modern sangat menekan kita untuk mengejar gaji yang lebih besar
    • Kasus seperti itu memang ada. Saya bekerja di bank multinasional yang berkantor pusat di AS, dan tim kantor pusat membuat program mewah untuk merekrut lulusan ilmu komputer baru
      Program ini menawarkan harga pasar yang “adil” untuk posisi entry-level di industri, dan pada tahun pertama membuat peserta mencoba 2–3 tim atau departemen. Di akhir program, jika perusahaan masih menyukai mereka, kandidat bisa memilih tim untuk posisi tetap, tetapi tidak ada kenaikan gaji, dan pada titik itu orang-orang yang tidak cepat menunjukkan hasil sudah tersaring
      Dari sisi perusahaan, hasilnya luar biasa. Mereka bisa memakai programmer muda yang lebih mahir COBOL daripada rekan baru mereka dengan biaya 60 ribu–70 ribu dolar per tahun, sementara rekan senior atau yang sudah lama bekerja dalam beberapa kasus menerima 200 ribu–400 ribu dolar
  • Nenek saya memprogram dengan punched card, tetapi saya tidak tahu perangkat kerasnya apa, dan sekarang sudah terlambat untuk bertanya. Ayah saya banyak memakai Fortran dan COBOL di mainframe Soviet, lalu kemudian banyak mengerjakan Y2K di AS
    Barang paling keren di antaranya adalah cetakan program Fortran yang dulu dirobek menjadi tiga bagian oleh ayah saya untuk membungkus film format besar 64mm dari foto gunung yang ia ambil. Sepertinya itu berasal dari mainframe Minsk-32, nama programnya MATR1, melakukan manipulasi matriks, dan komentarnya menyebut medan/topografi. Sekarang saya membingkainya dan menggantungnya di dinding dekat meja kerja
    Saya sendiri sudah coding dengan berbagai bahasa sepanjang hidup, dan kini anak remaja saya tertarik pada coding, belajar Java dan Python di SMA. Menuju programmer generasi ke-4

    • Kedengarannya seperti ide film tentang codebase yang diwariskan lintas generasi. Judul yang cocok: Legacy Code
  • Jika benar dari sudut pandang teknologi itu adalah posisi paling penting di bank, mengingat pangsa pasar Nordea di Swedia dan Nordik, kalau tim itu hilang, ekonomi Swedia—bahkan mungkin Nordik—bisa terguncang. Kalau begitu, sepertinya dampaknya ke UE juga akan cukup besar
    Setelah membaca tulisan ini, saya terus bertanya-tanya apakah para programmer COBOL yang membuat bank-bank seperti ini tetap berjalan sebenarnya adalah bus factor yang sangat diremehkan di berbagai kawasan ekonomi dunia. Saya juga penasaran apa rencana cadangan untuk situasi seperti itu
    [0] https://en.wikipedia.org/wiki/Nordea

    • Saya jadi penasaran apakah programmer APL juga berada dalam situasi serupa. Setahu saya cukup banyak perusahaan besar memakai APL
    • Rencana cadangan untuk situasi seperti itu bisa jadi, sebagaimana terkenal buruknya, berhenti berfungsi selama beberapa minggu: https://en.wikipedia.org/wiki/TSB_Bank_(United_Kingdom)#Migration_to_the_Sabadell_Proteo_banking_platform
      Menurut saya hilangnya pengetahuan institusional mungkin menjadi faktor besar dalam bencana itu
    • Sebagai programmer yang pernah tertabrak bus—dan bus yang sama itu lalu saya tumpangi 5 jam sampai terminal di Yunani Barat—risiko tewas tertabrak mobil jauh lebih besar
      Ditambah lagi meningkatnya penjualan SUV yang lebih berbahaya bagi pejalan kaki dan pesepeda, justru bisa terasa mengejutkan bahwa bank runtuh bukan karena programmer yang meninggal, melainkan karena pembukuan buruk dan penipuan
  • Bagian “dulu saya punya meja pribadi, tapi sekarang dipindahkan ke ruang terbuka tempat memilih kursi mana saja, dan saya benar-benar membencinya” anehnya sangat terasa relevan meski saya belum pernah bekerja dengan mainframe

    • Saya juga jauh lebih suka meja pribadi. Sangat wajar orang menata lingkungan sesuai selera dan preferensinya, jadi saya tidak paham mengapa sebagian perancang kantor tidak mempertimbangkan hal itu
    • Saya penasaran apakah kebanyakan kantor juga seperti kantor kami: disebut “flexible seating”, tetapi sebenarnya semua orang punya tempat masing-masing, sehingga saat masuk kantor selalu duduk di meja yang sama, dan umumnya saling menghormati hal itu
      Karena kursi, posisi dan kecerahan monitor, tinggi meja, dan sebagainya sudah disesuaikan dengan diri sendiri, konsep hot desking itu sendiri jadi terasa konyol. Saya berharap mereka sekalian saja menyerahkannya secara resmi
  • Saat bekerja sebagai konsultan integrasi sistem di bidang layanan keuangan, saya sering harus berintegrasi dengan sistem core banking seperti ini
    Biasanya, jika menegosiasikan antarmuka yang benar-benar baru, gesekan dari sisi teknis, bisnis, dan kepatuhan regulasi bisa besar sehingga proyek mudah molor 1–2 tahun atau lebih. Karena itu kami berusaha memakai ulang titik integrasi yang sudah ada dari proyek sebelumnya
    Integrasinya biasanya berupa pengiriman dokumen terstruktur sebelum jam tertentu pada malam hari untuk pemrosesan batch malam. Dokumen data berbasis offset secara desain memiliki area yang belum dialokasikan untuk pembaruan dan penggunaan di masa depan, dan jika perlu informasi baru, kami menegosiasikan byte mana dari area itu yang bisa dipakai
    Di sisi ekstraksi data, kadang ada upaya mencari API yang lebih “modern”, tetapi jangan terlalu berharap pada sesuatu yang granular seperti REST. Kami sering rapat dengan tim regulasi dan kepatuhan untuk mencari cara menghindari pengembangan baru yang mahal
    Tambahan lagi, staf kepatuhan sering kali jauh lebih pragmatis dan berorientasi solusi daripada orang IT. Meyakinkan tim kami bahwa teks regulasi tidak selalu harus ditafsirkan secara harfiah dengan batasan paling ketat sering kali lebih sulit daripada mencapai kesepakatan dengan staf kepatuhan
    Jika membayangkan lapisan integrasi seperti ini menumpuk selama puluhan tahun lewat ratusan proyek, barulah terasa mengapa penggantian core system begitu sulit

  • Ibu mertua saya bekerja seumur hidup di departemen IT sebuah perusahaan asuransi. Ia tidak banyak memprogram, tetapi seiring waktu menjadi sumber pengetahuan domain
    Banyak cerita lama. Sebelum ada sistem komputer yang layak, tentu saja semuanya disimpan sebagai dokumen fisik, dan proyek pertamanya setelah lulus kuliah adalah berkeliling ke kantor-kantor satelit untuk menata ulang sistem berkas cabang agar sesuai dengan strategi baru yang dibuat kantor pusat
    Operasional cabang itu berhenti sementara tim benar-benar mengeluarkan semua dokumen, memberi label ulang, lalu memasukkannya kembali, dan keseluruhan proyek memakan waktu lebih dari setahun. Itu agak mengubah cara saya memandang pekerjaan saya sendiri

    • Jika memikirkan bagaimana bank-bank saat itu mendorong batas kemampuan kertas, kompleksitas bank modern sulit dibayangkan. Saya tidak cukup memahami keuangan sehingga bahkan tidak tahu harus mulai membayangkannya dari mana
  • Saya menyesal tidak lebih banyak berbicara dengan nenek sebelum ia terkena demensia. Saya tahu ia seorang matematikawan dan programmer, tetapi saat kami sempat berbincang beberapa tahun lalu, ia mengatakan pernah bekerja menghitung orbit satelit di Uni Soviet
    Setidaknya saya berharap itu memang satelit

    • Saya berada dalam situasi serupa. Ibu saya menangani simulasi perangkat lunak untuk sistem AEGIS. Itu bukan hal yang umum bagi perempuan kulit hitam pada 1980-an
      Ia meraih gelar matematika dalam 3 tahun pada usia 20, dan pada 1970-an memprogram komputer dengan kartu berlubang.
      Sekarang ia bahkan tidak bisa mengikat tali sepatu dengan stabil. Saya harap kalian mencatat pencapaian dan kisah hidup orang-orang tercinta sebelum terlambat
    • Jika pernah terpikir melakukan hal seperti ini, saya sangat menyarankan untuk melakukannya. Jika bingung harus mulai dari mana, saya merekomendasikan aplikasi StoryCorps
      Mudah dipakai, punya banyak pertanyaan siap pakai, dan Anda juga bisa membuat pertanyaan sendiri. Rekam langsung di ponsel, dan jika mau, wawancaranya juga bisa diunggah ke Perpustakaan Kongres AS
      https://storycorps.org/participate/storycorps-app/
    • Bisa saja keduanya: https://en.wikipedia.org/wiki/Fractional_Orbital_Bombardment_System#Development_history_and_deployment
  • Nenek saya berusia 95 tahun tahun ini. Ia masih berangkat setiap hari ke lembaga riset di kawasan bekas Soviet dan menulis simulasi numerik dengan Fortran dan Maple
    Rekan-rekannya masih tidak ingin pensiun, dan nenek saya juga menunda pensiun setiap tahun. Pengetahuan analisis numerik dan matematikanya luar biasa, dan saya benar-benar bangga padanya

  • Pekerjaan pemrograman pertama saya adalah di sebuah perusahaan transportasi, dan ada banyak programmer yang sudah bekerja lebih dari 15–20 tahun; banyak di antaranya terutama memelihara COBOL yang menjalankan bisnis
    Di antara para programmer senior itu ada banyak perempuan, dan rasanya di kelompok senior jumlahnya lebih dari 50%. Yang menyedihkan, programmer yang lebih muda masih cukup banyak yang perempuan, tetapi umumnya laki-laki
    Karena perusahaan itu terutama merekrut dari perguruan tinggi teknik setempat, ini tampak seperti contoh menarik yang menunjukkan bagaimana, seiring waktu, jumlah perempuan yang masuk ke jurusan rekayasa perangkat lunak menurun

    • Saya ingat pernah mendengar bahwa dulu pemrograman komputer dianggap mirip dengan pekerjaan mengetik atau sekretaris, sehingga pada awalnya terutama menarik banyak perempuan