search

Pengikut

Rabu, November 27, 2013

Software Quality Assurance Engineer | Sang Pengontrol

software tester

Software Quality Assurance (SQA) engineer mungkin agak jarang terdengar di dunia kerja terutama di indonesia. Hal ini mungkin karena di Indonesia belum banyak lowongan kerja yang mencantumkan posisi ini. Bila anda pernah mendengar posisi “Software Tester”, maka itu termasuk dalam profesi ini. Salah satu tugas SQA engineer memang melakukan testing terhadap software, tetapi bukan itu saja sebenarnya pekerjaan profesi ini. 

Dalam perusahaan software development yang cukup besar dan telah menangani banyak proyek besar, SQA engineer sangat diperlukan terutama untuk menghasilkan software yang berkualitas. Tugas SQA engineer diantaranya adalah melakukan “quality assurance” (QA) dan “quality check” (QC) terhadap software. Pengembangan software harus sesuai dengan prosedur standar yang telah ditetapkan (QA) dan harus melalui proses testing (QC) yang sesuai. Di sinilah tugas SQA engineer untuk memonitor proses software development dan memperbaiki standar yang ada (improve) bila masi memiliki kelemahan.

Dalam software development, terdapat beberapa resiko yang ditanggung oleh para stake holders. Seperti terjadinya bug/defect, waktu pengembangan yang semakin panjang, resource yang semakin bertambah ataupun kendala-kendala lain yang tidak diperkirakan sebelumnya. Tugas SQA engineer yang persifat preventif adalah dengan meminimalisir resiko-resiko ini.

Untuk menilai kemapanan sebuah perusahaan, terutama yang bergerak dalam bidang software development, terdapat beberapa standar seperti CMMI Capability Maturity Model Integration. Singkatnya, makin tinggi level CMMI sebuah perusahaan, resiko project yang ditanganinya akan semakin kecil. Dengan begitu perusahaan dengan level CMMI yang tinggi dianggap sudah mapan dan dipercaya untuk mengerjakan proyek-proyek besar. Salah satu tugas SQA engineer adalah mengusahakan agar perusahaannya lulus sertifikasi CMMI di level tertentu.

Tugas Software Quality Assurance Engineer:

  1. Memonitor jalannya proyek software development apakah sudah sesuai dengan standar dan prosedur yang ada 
  2. Merancang dan membuat test case / skenario software testing 
  3. Melakukan testing sesuai dengan test case / scenario 
  4. Merumuskan dan merancang peningkatkan efisiensi dan efektifitas standar proses yang digunakan

Keahlian yang Diperlukan:

  1. Menguasai hal-hal yang berhubungan dengan software testing (test plan, test case, testing automation, functionality testing, regression testing dll) 
  2. Memahami tentang perinsip kerja software sesuai dengan platformnya masing-masing 
  3. Memahami tentang SDLC dan metodologi software development seperti RUP, Agile, XP, Scrum dll 
  4. Memahami standarisasi seperti CMMI 
  5. Menguasai penulisan dokumen dan komunikasi verbal dengan baik (dalam bahasa Inggris dan Indonesia).

Bagaimana ada yang tertarik menjadi Software Quality Assurance (SQA) ???
Rabu, November 27, 2013

Kekuatan NSA dalam menyadap

NSA Sadap 50.000 Jaringan Komputer di Dunia
Isu penyadapan masih terus hangat diperbincangkan. Kabar terbaru menyebutkan bahwa agen keamanan nasional Amerika Serikat (National Security Agency/NSA) telah menyadap 50.000 jaringan komputer di seluruh dunia dengan cara memasang malware (program berbahaya) pada komputer tersebut.

Informasi ini diungkap oleh surat kabar Belanda NRC yang mengklaim telah melihat dokumen yang dibocorkan oleh Edward Snowden, yang merupakan mantan pegawai NSA.

Menurut NRC, setidaknya ada 20.000 jaringan komputer yang telah diinfeksi dengan malware pada tahun 2008. NSA sendiri menargetkan 85.000 jaringan komputer pada akhir tahun 2013 ini.

PC World yang dikutip Selasa (26/11/2013) melansir, NSA menggunakan Computer Network Exploitation (CNE) di lebih 50 ribu lokasi jaringan komputer tersebut. CNE adalah sistem infiltrasi komputer rahasia yang dibuat dengan meng-install malware.

Malware-malware tersebut dirancang untuk mengumpulkan informasi-informasi penting dari komputer. Malware itu dikembangkan dan distribusikan oleh Tailored Access Operations (TAO) yang merupakan bagian dari kelompok NSA.

Seperti dilaporkan Washington Post, malware ini berfungsi sebagai 'sel tidur digital' yang dapat diaktifkan dan dimatikan dari jarak jauh sesuai perintah NSA.

Belum diketahui apa saja kemampuan malware ini, namun NSA disinyalir telah mengembangkan versi malware baru yang dapat mengidentifikasi perintah suara dan mengumpulkan kutipan komunikasi tertentu bahkan menyalin data yang disimpan di komputer. Yang jelas malware ini dirancang untuk menyusupi router, switch dan firewall untuk memonitor seluruh jaringan.

Selain menyadap jaringan komputer ternyata NSA juga menyadap jaringan seluler. Menurut laporan-laporan yang dimuat harian Guardian dan Washington Post dalam seminggu terakhir mengungkapkan adanya dua program pemantauan yang dijalankan oleh pemerintah Amerika. 

Pertama adalah program pemantauan hubungan telepon ratusan juta rakyat Amerika tiap hari, guna menciptakan suatu database untuk melihat apakah ada tersangka teroris di luar negeri yang menghubungi orang di Amerika. 

Sementara yang kedua adalah program yang diberi nama PRISM yang memungkinkan NSA dan FBI untuk secara langsung menyadap sembilan jaringan internet Amerika untuk mengumpulkan data tentang penggunaan saluran elektronik itu, termasuk penyadapan audio, video, foto dan email, dan untuk mengetahui informasi apa saja yang dicari orang. Tujuannya adalah untuk mencari kegiatan-kegiatan yang mencurigakan yang datang dari luar negeri. 

Snowden membantah bahwa pelaksanaan kedua program itu dilakukan dengan aman dan sesuai hukum. Katanya, tiap analis bisa saja memilih siapa yang akan dipantau hubungan elektroniknya. Kata Snowden lagi, ia sendiri punya otorita untuk menyadap telepon siapapun, termasuk telepon Presiden Amerika.

Profil lengkap Edward Snowden

Sumber: tekno.liputan6.com
             VOAINDONESIA
Rabu, November 27, 2013

Software Engineer | Sang Perencana

software engineer
Profesi seorang IT selanjutnya adalah software engineer - Profesi software engineer sebenarnya ada kemiripannya dengan profesi programmer, system analyst ataupun SQA engineer. Yang membedakannya adalah software engineer memerlukan keahlian lebih mendalam dalam hal SDLC (Software Development Life Cycle). Pada level tertentu, seorang software engineer juga harus menguasai manajeman proyek software development. Salah satu standar SDLC yang umum digunakan dalam software engineering adalah SWEBOK (Software Engineering Body of Knowledge).

Software engineering menyusun berbagai metodologi untuk mengoptimalkan software development process agar dapat menghasilkan produk software yang sesuai dengan tuntutan perkembangan zaman. Metode-metode software development populer seperti RUP, Agile, Scrum, XP, TDD, BDD memiliki keunggulan dan kelemahan dan tentunya diperlukan keahlian dan pengalaman dalam merekomendasikan dan mengimplementasikan metode yang paling cocok dalam sebuah proyek software development.

Kemampuan untuk menguasai seluruh disiplin dalam SDLC tidak membuat software engineer selalu lebih unggul daripada programmer, system analyst atau SQA engineer. Pada tingkatan yang sama, misalnya pengalaman kerja 5 tahun, seorang sistem analyst tentunya lebih ahli dalam menangkap requirement dan bisnis proses serta membuat proposal. Seorang programmer tentunya lebih menguasai secara mendalam bahasa pemprograman dan IDE (Integrated Development Environment) tools serta trik-trik tertentu dalam bahasa pemprograman. Seorang SQA engineer lebih menguasai software testing dan quality assurance. Diluar hal itu, semuanya bergantung pada pribadi masing-masing dalam mengembangkan keahliannya di profesi apapun.

Tugas Software Engineer:

  1. Melakukan tugas-tugas programmer, system analyst dan sebagian tugas SQA engineer 
  2. Merekomendasikan dan menerapkan metodologi terbaik dalam sebuah proyek software development

Keahlian yang Diperlukan:

  1. Menguasai hal-hal yang dikuasai programmer, system analyst dan SQA engineer (dalam porsi yang lebih sedikit) 
  2. Menguasai SDLC berdasarkan SWEBOK (requirement, design, implementation/construction, testing, maintenance) 
  3. Menguasai metodologi software development seperti RUP, Agile, XP, Scrum dll

Bagaimana ada yang tertarik menjadi software engineer ???
Selasa, November 26, 2013

System Analyst | Sang Penganalisa

System Analyst
Melanjutkan dari artikel yang sebelumnya mengenai profesi seorang IT - Seorang system analyst di satu sisi diharuskan memiliki keahlian dalam menganalisis proses bisnis (problem domain) untuk dapat menghasilkan sebuah SRS (software Requiremant Spesification) dan di sisi lain menguasai aspek technical dan implementasinya dalam software aplikasi (solution domain) untuk dapat menghasilkan DDD (Detailed Design Document)

Seorang system analyst biasanya berangkat dari seorang programmer yang sudah mahir dan berpengalaman dalam software development. Kemampuannya dalam menangkap requirement dan proses bisnis, ketajaman analisis mengenai celah-celah dalam sistem serta kemampuan merekomendasikan solusi terbaik secara technical sangat diperlukan dalam mengembangkan software yang berkualitas dan dapat bermanfaat untuk meningkatkan kinerja proses bisnis suatu organisasi.

System analyst bekerja pada tahap requirement dan design, walaupun kadangkala juga diperlukan untuk menyeberang dari tahap requirement dan design ke tahap construction/implementaion (coding/programming). Tentunya ini wajar karena biasanya seorang system analyst dahulunya juga seorang programmer. Tetapi seorang yang benar-benar diposisikan sebagai system analyst, tugas utamanya adalah membuat requirement dan desain software.

Tugas System Analyst:

  1. Membangun/mengembangkan software terutama pada tahap requirement, design dan sebagian dalam tahap construction/implementation 
  2. Membuat dokumen requiremant dan desain software berdasarkan proses bisnis customer/client 
  3. Membuat proposal dan mempresentasikannya di hadapan stake holder / customer / client 
  4. Membuat desain database bila aplikasi yang akan di bangun memerlukan database 
  5. Membangun/mengembangkan framework/library untuk digunakan dalam pengembangan software oleh programmer

Keahlian yang Diperlukan:

  1. Menguasai hal-hal yang dikuasai programmer 
  2. Menguasai metode, best practice pemprograman dan tool/pemodelan pemprograman seperti OOP, design pattern, UML (kemampuan membangun/mendesain) 
  3. Menguasai SQL, ERD dan RDBMS secara lebih mendalam 
  4. Memahami tentang arsitektur aplikasi dan teknologi terkini

Bagaimana ada yang tertarik menjadi system analyst ???
Selasa, November 26, 2013

Programmer | Sang Kreator

bahasa pemprograman
Berhubung ada waktu senggang saya ingin membahas beberapa peluang kerja yang memiliki keahlian dalam bidang Teknologi Informasi (IT) - Profesi programmer adalah profesi yang paling sering terdengar, karena profesi ini sudah ada sejak diciptakannya komputer itu sendiri. Keahlian dalam algoritma dan penguasaan terhadap salah satu atau beberapa bahasa pemprograman mutlak diperlukan oleh seorang programmer. 

Macam-macam programmer berdasarkan jenis programming dan output yang dihasilkan, yaitu:

1. Hardware Programmer 

Hardware programmer sebenarnya adalah bagian dari hardware engineer. Sesuai namanya, mereka melakukan programming secara low level terhadap hardware, misalnya mikrokontroler, embeded sistem, PLC atau device lainnya. Pada awal diciptakannya komputer, programmer jenis ini lebih dominan karena cara memprogram komputer waktu itu mirip dengan cara memprogram mikrokontroller saat ini. Bahasa yang digunakan dulunya adalah bahasa mesin tetapi saat ini cenderung digunakan bahasa assembly dan C.

2. System Programmer 

Dalam pekerjaannya, system programmer menggunakan low level dan medium level language. Biasanya mereka dipekerjakan dalam pengembangan sistem operasi dan modul-modul pendukungnya. Salah satu contohnya: Para pengembangan driver untuk periferal. Perbedaan system programmer dengan hardware programmer adalah: 
System programmer bekerja pada tahap pengembangan suatu platform / sistem operasi atau yang terkait erat dengannya untuk dijadikan sebagai landasan (platform) bagi pengembangan selanjutnya, sedangkan hardware programmer bekerja pada tahap implementasi suatu produk agar sesuai dengan requirement end user. 

3. Application Programmer 

Bagi yang sering mendengar profesi “Application Developer”, “Software Developer”, “Web Developer”, “Enterprise Developer” atau “Developer” saja, profesi-profesi tersebut tergolong sebagai Application programmer. Programmer jenis inilah yang paling banyak dan populer di dunia kerja terutama di Indonesia. Hal ini disebabkan karena aplikasi adalah jenis software yang paling banyak di gunakan.

Perbedaan istilah “application” dengan “software”. Dalam dunia IT, yang disebut application sudah pasti adalah sebuah software, sedangkan software belum tentu sebuah application. Software yang bukan termasuk aplikasi contohnya adalah operating system, device driver, protocol dll. Sedangkan yang dikenal sebagai aplikasi adalah software seperti office suite, image editor, games, sistem informasi retail/swalayan, sistem informasi pendidikan, sistem informasi hotel/retaurant, sistem informasi manajeman gudang, sistem informasi logistik, ERP (Enterprise Resource Planning), SCM (Suply Chain Managemant), CRM (Customer Relationship Managemant) , sistem bank, sistem airline dan masih banyak lainnya.

Dalam pekerjaannya, application programmer menggunakan high level language seperti Java, C#, Visual Basic (VB), VB.Net, Delphi, PHP dll. Dengan menggunakan high level language, proses pengembangan akan lebih mudah dan lebih cepat. Hal ini sesuai dengan tuntutan kebutuhan customer yang terus berkembang dengan cepat. Dalam hal cakupan keahlian yang dibutuhkan, secara kasar jenis aplikasi dapat dibagi menjadi:
  • Desktop Application (aplikasi yang berwujud Windows Form, WPF, XWindows atau jenis GUI lainnya yang berjalan di O/S masing-masing) 
  • Web Application (aplikasi yang user interface-nya berwujud HTML dan diakses dengan web browser, biasa dikembangkan dengan framework PHP, ASP.Net, Java, Spring, Ruby on Rails dll ) 
  • Database Application (aplikasi yang memerlukan akses ke database menggunakan teknologi seperti ADO.Net, OLEDB, ODBC, JDBC, ORM, Hibernate dll) 
  • Distributed Application (aplikasi terdistribusi/server service seperti Web Service, J2EE, WCF, COM+ dll)

Walaupun digolongkan dalam ke empat macam keahlian tersebut, seringkali seorang application programmer harus memiliki keahlian di beberapa jenis aplikasi untuk dapat menghasilkan aplikasi yang berguna. Contohnya: Web programmer harus memiliki kemampuan dalam web application dan database application untuk dapat mengembangkan aplikasi web yang memerlukan database sebagai penyimpanan data. Tidak sedikit pula programmer yang memiliki keahlian di seluruh jenis aplikasi sehingga sering disebut disebut enterprise application developer.

Bagaimana ada yang tertarik menjadi Programmer ??
Selasa, November 26, 2013

Yahoo akan Mengenkripsi Data Usernya pada 2014

Yahoo Mulai Mengenkripsi Data Penggunanya
Raksasa internet penyedia e-mail dan mesin pencari, Yahoo menguumkan bakal mengenkripsi semua informasi digital penggunanya yang berada di pusat server Yahoo mulai maret 2014 mendatang.

Langkah ini dilakukan Yahoo, menyusul pembocoran dokumen yang dilakukan mantan anggota Badan Keamanan Nasional (NSA) Amerika Serikat, Edward Snowden. Dokumen tersebut mengungkapkan, pihak NSA dan badan keamanan Inggris GCHQ telah menyusup ke pusat data Yahoo dan Google secara ilegal.

Yahoo tak ingin kecolongan lagi setelah pemerintah AS dan Inggris secara diam-diam melakukan penyadapan dan mengakses data penggunanya, tanpa sepengetahuan perusahaan. Padahal, pihaknya menyediakan opsional bila pemerintah ingin meminta data tertentu dari Yahoo, maka mesti mengajukan permohonan dulu, namun dengan sejumlah syarat dan ketentuan berlaku.

Dilansir dari BBC, CEO yahoo Marissa Mayer menegaskan, Yahoo tidak akan pernah memberikan akses kepada NSA maupun badan pemerintah manapun untuk bisa langsung mengakses pusat datanya.
“Tidak ada yang lebih penting bagi kami selain melindungi rahasia pribadi pengguna kami,” ujar bos Yahoo berparas cantik itu.
Pesaing terdekatnya, Google sudah lama melakukan enkripsi di layanan e-mail-nya. Google pun juga sudah melakukan proses enkripsi di pusat datanya sejak Juni tahun ini. Tampaknya, Yahoo masih terkesan lamban untuk melakukan antisipasi terkait adanya penyadapan ini. Padahal, Google telah melakukan pengenkripsian data jauh-jauh hari, sebelum informasi dokumen yang dibocorkan Snowden mencuat pada akhir Oktober lalu.
“Yahoo bergerak bersama perusahaan lain ke dalam arah ini. Ini lebih baik daripada tidak ada pengenkripsian. Namun, apakah ini sudah cukup?. Ini mungkin membuat hacker lebih sulit meretas, namun mungkin tidak bagi instansi pemerintah untuk mengaksesnya, tergantung dari jenis enksripsi apa yang digunakan,” kata Profesor Mark Manulis, seorang ahli kriptografi dan kemananan jaringan dari University of Surrey.
Sekuat apapun sistem yang dibuat pasti dapat ditembus karena manusia yang menciptakannya. Saran saya jika data tersebut sangat rahasia jangan disimpan dalam suatu jaringan komputer (internet).

Sumber: jagatreview.com