search

Pengikut

Sabtu, Desember 07, 2013

Technical Consultant | Sang Spesialis

konsultan IT
Technical Consultant atau kadang disebut sebagai “Consultant” saja sesuai namanya bekerja sebagai konsultan IT. Tugas utama seorang konsultan adalah merekomendasika solusi teknologi IT terbaik untuk memecahkan masalah yang ada. Bila seorang software architect lebih menguasai solution domain, seorang technical consultant lebih menguasai problem domain. 

Seorang technical consultant mirip seorang system analyst yang lebih sering membuat konsep proses bisnis dan requirment daripada melakukan design atau coding. Technical consultant tentunya juga menguasai teknologi software development tetapi pada level yang lebih umum dan luas (high level) dan lebih condong termasuk dalam bidang software consulting.

Berbeda dengan software architect yang lebih banyak bekerja secara internal dalam perusahaan, technical consultant lebih banyak bekerja untuk memberikan konsultasi kepada client/customer dan lebih banyak berhadapan dengan banyak orang. Untuk itu dibutuhkan interpersonal dan writing skill yang memadai.

Apabila anda sering mendengar istilah ERP (Enterprise Resource Planning) consultant, profesi tersebut termasuk dalam technical consultant. seorang ERP consultant tentunya harus menguasai proses bisnis enterprise dan bagaimana mengimplementasikannya dalam produk software yang dikuasai / direkomndasikannya. 

Tugas Technical Consultant:

  1. Memberikan konsultansi/rekomendasi mengenai solusi IT terbaik untuk memecahkan masalah 
  2. Membuat dokumen seperti proposal, requirement dan desain software secara umum 
  3. Melakukan pelatihan (training) kepada para pengguna software

Keahlian yang Diperlukan:

  1. Berpengalaman dan menguasai berbagai macam proses bisnis enterprise atau jenis bisnis tertentu 
  2. Menguasai teknologi IT secara luas 
  3. Menguasai secara mendalam tentang solusi software yang direkomendasikan 
  4. Menguasai penulisan dokumen dan komunikasi verbal dengan baik (dalam bahasa Inggris dan Indonesia)

Denger-denger bayaran Technical Consultant adalah yang tertinggi dalam bidang IT.
Bagaimana ada yang tertarik menjadi Technical Consultant ??
Sabtu, Desember 07, 2013

Database Administrator (DBA) | Sang Data

Database Administrator (DBA)
Profesi Database Administrator (DBA) terkait erat dengan programmer dan system analyst. Seorang DBA biasanya pernah menjadi seorang programmer tetapi pekerjaannya lebih sering berkaitan dengan database.

Perbedaannya dengan database application programmer adalah seorang DBA memiliki keahlian lebih mendalam dalam hal desain, optimasi dan manajemen RDBMS (Relational Database Managemant System) tertentu seperti Oracle, SQL Server, MySQL dll. Tentunya penguasaan terhadap SQL (Structured Query Language) mutlak diperlukan. DBA harus memiliki keahlian menterjemahkan requirement proses bisnis ke obyek-obyek dalam database seperti tabel, query\view dan stored procedure disamping keahliannya dalam optimasi database seperti tuning, indexing, clustering, backup data, maintain high availability dan sebagainya.

Seorang DBA juga perlu memahami beberapa hal tentang hardware seperti teknologi server, storage devices dll agar dapat merekomendasikan database yang optimal. Pengetahuan tentang server clustering, storage array network (SAN), RAID, backup devices dan optimalisasinya merupakan keahlian unik seorang DBA.

Tugas Database Administrator:

  1. Merancang dan membangun database dalam sebuah system 
  2. Merekomendasikan solusi terbaik dalam implementasi database baik dalam hal software maupun hardware 
  3. Memaintain database agar dapat berjalan dengan baik dan optimal

Keahlian yang Diperlukan:

  1. Menguasai ERD, SQL dan desain database secara mendalam 
  2. Menguasai berbagai teknik optimalisasi/tuning, backup dan maintain database 
  3. Menguasai secara mendalam salah satu atau lebih RDBMS beserta tools yang ada. 
  4. Memahami tentang salah satu platform/bahasa pemprograman untuk mengakses database 
  5. Menguasai teknologi server, storage, operating system yang berkaitan dengan implementasi database

Saya sendiri sudah mengalami beberapa tentang database pada mata-kuliah SBD (Sistem BasisData) dan SIM (Sistem Informasi Manajemen). Dan alhamdulillah saya pusing.

Bagaimana ada yang tertarik menjadi Database Administrator (DBA) ??
Minggu, Desember 01, 2013

Software Architect | Sang Arsitek

Technical Architect
Software architect atau kadang disebut juga sebagai Technical Architect biasanya bekerja di perusahaan software development yang memiliki produk-produk software yang cukup besar dan kompleks. software architect bertugas untuk mendesain dan merekomendasikan secara technical mengenai bagaimana dan apa yang diperlukan dalam mengembangkan produk software tersebut. Profesional di bidang ini biasanya pernah meniti karir sebagai programmer, software engineer atau system analyst.

Bila system analyst harus memiliki pengetahuan yang berimbang antara proses bisnis (problem domain) dan software technology (solution domain), seorang architect dituntut untuk menguasai software technology secara lebih mendalam. Kemampuannya dalam hal technical sangat diperlukan dalam proyek-proyek software development berskala besar dan kompleks, dimana keputusan dalam pemilihan teknologi yang paling tepat dan penguasaanya sangat menentukan kesuksesan proyek. Keahlian utama seorang software architect adalah dalam bidang software design dan software development technology.

Tugas Software Architect:

  1. Merekomendasikan teknologi yang paling cocok untuk mengembangkan produk software 
  2. Membuat standar-standar software development yang akan digunakan oleh tim programmer / developer 
  3. Membuat rancangan/desain software dan proses pengembangannya secara keseluruhan

Keahlian yang Diperlukan:

  1. Menguasai hal-hal yang dikuasai programmer, system analyst dan software engineer 
  2. Menguasai secara mendalam tentang software development technology 
  3. Menguasai penulisan dokumen dengan baik (dalam bahasa Inggris dan Indonesia)

Bagaimana ada yang tertarik menjadi system Architect???
Sabtu, November 30, 2013

User Interface Designer | Sang Seniman

web designer
Profesi yang satu ini merupakan profesi kesukaan sekaligus impian saya - Mungkin kebanyakan orang tidak mengenal dengan istilah "User Interface Designer".

Tugas User Interface Designer:

  1. Mendesain user interface agar menarik dan serasi secara visual dan user friendly 
  2. Mendesain image/gambar/animasi yang akan digunakan di tampilan user interface (UI) software aplikasi

Keahlian yang Diperlukan:

  1. Memiliki bakat/minat di seni rupa / desain visual 
  2. Memahami dasar-dasar pemprograman baik web maupun secara umum 
  3. Menguasai scripting untuk user interface seperti seperti HTML, DHTML, CSS, JavaScript, action script, XAML dll. 
  4. Menguasai tools manipulasi image dan animasi

Berbeda dengan profesi programmer, system analyst, software engineer dan profesi IT lainnya. Profesi ini umumnya dituntut untuk memiliki bakat seni sekaligus kemampuan technical. Seorang user interface designer harus dapat membuat desain yang menarik, serasi, user friendly tetapi tetap efisien. Profesional di bidang ada dua macam yaitu:
  • Web designer yang sering dipekerjakan dalam web development, pekerjaannya sendiri adalah mendesain UI (user interface) web agar nyaman saat dilihat oleh user.
    Selain menguasai programming terutama web programming, seorang web designer juga harus menguasai tools dalam image design dan animasi seperti produk-produk Adobe, Corel dll. Dalam web development, user interface designer bekerja bahu-membahu dengan web programmer/developer untuk menghasilkan aplikasi web yang baik dalam hal tampilan dan fungsionalitas. Tampilan yang baik, menarik dan user friendly akan membuat aplikasi web tersebut dinilai lebih bermutu.
  • Software designer, biasanya diperkerjakan dalam software development, pekerjaannya sendiri adalah mendesain UI software agar user tertarik menggunakan software yang didesain dan user mudah dalam pengoperasikannya.

Bagaimana ada yang tertarik menjadi User Interface Designer ???
Kalau saya siih, udah tertarik dari dulu namun masih dalam tahap pembelajaran.
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

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 ??