Senin, 15 September 2014

Definisi & Deksripsi Pekerjaan dari Program Web dan Agile Development Methods


Dalam industri web terdapat banyak titel dan deskripsi pekerjaan, tapi dalam kenyataan-nya banyak pekerja di industri web terjebak dalam job desc yang tidak spesifik dan perlahan meluas, ini cukup merugikan pekerja di industri web.

Berikut adalah titel-titel pekerjaan dan deskripsi-nya :

1. Web Architect
Web Arsitektur adalah suatu pendekatan terhadap desain dan perencanaan situs yang melibatkan teknis, kriteria estetis dan fungsional. Seperti dalam arsitektur tradisional, fokusnya adalah kebutuhan pengguna. Hal ini memerlukan perhatian perhatian khusus pada konten web, rencana bisnis, kegunaan, desain interaksi, informasi, dan desain arsitektur web. Untuk optimasi mesin pencari yang efektif perlu memiliki apresiasi tentang bagaimana sebuah situs web terkait dengan World Wide Web.

2. Web Designer
Web designer, kata “Web” disini memberikan deskripsi spesifik bahwa pekerjaan si desainer adalah fokus terhadap tampilan dan layout web, pemahaman tentang HTML, CSS & Javascript ringan diperlukan dalam bidang pekerjaan ini. Pada kenyataannya di Indonesia banyak web designer yg job desc-nya hanya sebagai graphic desainer (tidak mengkonversi desain ke web format), ini pun kadang tidak di keluhkan si web desainer karena mungkin saja gaji yang tidak selevel dengan web desainer sebenarnya, so it’s web designer with a graphic designer salary.

3. Web Progammer
Web Programmer adalah seseorang yang menciptakan aplikasi berbasis web dengan menggunakan bahasa pemrograman. Pada dasarnya, web developer membuat berrbagai hal terjadi pada sebuah website. Peran web developer adalah sebagai penghubung dari semua sumber daya yang akan digunakan pada sebuah website. Mulai dari pemanggilan database, membuat halam website yang dinamis, hingga mengatur cara pengunjung untuk berinteraksi dengan elemen-elemen dari website tersebut.
Berikut adalah bagian aplikasi yang harus dipahami oleh seorang web developer :
  • Client-side: JavaScript
  • Server side : ASP,ASP.NET,Java,Perl,PHP,Phyton,Ruby,dsb.
  • Database: MySQL, Oracle, dsb.
Aspek tampilan menjadi sisi yang agak terpinggirkan oleh web developer, Pada umumnya setelah scripting dari aplikasi web telah selesai dibuat, web developer akan menyerahkan pekerjaannya kepada web designer untuk menciptkan tampilan yang baik.

4. Web Developer
Pekerjaan yang satu ini fokus pada pekerjaan backend dan pemrograman yang berhubungan dengan bahasa web PHP, ASP, Ruby atau phyton, pengetahuan yang baik tentang database seperti mysql dan cara kerja server diperlukan dalam job description web developer, tidak lupa juga mereka tentunya mengerti  HTML & CSS. Tapi hal yang terpenting dalam pekerjaan web developer adalah fokus pada konsep pemrograman, keamanan dan struktur web. Sinonim dari titel pekerjaan ini adalah Web Programmer atau Web Application Developer.

5. Web Administrator
Adalah orang yang bertugas untuk memelihara situs web khususnya pada server. Web administrator harus memahami secara mendalam tentang sistem operasi yang digunakan server, proses penginstalan, memahami jaringan LAN, WAN, keamanan data server, dan yang penting dia juga harus dapat mengatasi masalah Troubleshooting.

6. Web Analisis
Web analis adalah pengukuran, pengumpulan, analisis dan pelaporan data internet untuk tujuan pemahaman dan mengoptimalkan penggunaan web.
Web analis bukan hanya sebuah alat untuk mengukur lalu lintas situs Web, namun dapat digunakan sebagai alat untuk penelitian bisnis dan riset pasar. Analisis Web aplikasi dapat juga membantu perusahaan mengukur hasil kampanye iklan cetak tradisional. Ini membantu orang untuk memperkirakan bagaimana lalu lintas ke situs web berubah setelah peluncuran kampanye iklan baru. Web analytics menyediakan data tentang jumlah pengunjung, tampilan halaman dll untuk mengukur popularitas situs yang akan membantu untuk melakukan riset pasar.

Ada dua kategori analisis Web; off-site dan on-site web analytics.
Off-site web analisis mengacu pada pengukuran dan analisis web tidak peduli apakah Anda sendiri atau mempertahankan sebuah website. Ini mencakup pengukuran potensi sebuah situs web penonton (kesempatan), berbagi suara (visibilitas), dan buzz (komentar) yang terjadi di Internet secara keseluruhan.



 Agile Development Methods


Secara garis besar tujuan dirumuskannya agile development methods, yaitu :
  1. High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
  2. Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.
  3. Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
  4. High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.
  5. Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.
  6. Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
  7. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agile, developer dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.
  8. Bagaimana agile bekerja
  9. Topik selanjutnya yaitu tentang cara kerja agile development methods. Disini akan dijelaskan bagaimana agile development methods (model scrum) digunakan dalam manajemen proyek.
Komposisi tim
Secara umum komposisi dari sebuah tim pengembang perangkat lunak yaitu :
  1. Owner / Klien, bersama dengan developer sebagai bagian terpenting dalam proyek, tugas dari klien menentukan fungsi dari perangkat lunak yang akan di buat, melakukan testing dan memberikan feedback.
  2. Manajer / Scrum Master, bertugas mengkolaborasikan developer dengan klien, membuat dan mengevaluasi target pengerjaan perangkat lunak.
  3. Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan dibuat.
  4. Developer, merupakan titik vital dalam tim, tanpa developer perangkat lunak tidak akan bisa dibuat.
Story
Story adalah daftar kebutuhan atau fitur yang nanti akan dibuat. Story berisi apa yang klien kehendaki, dan ditulis dalam bahasa yang dimengerti klien. Dengan kata lain dapat disimpulan Story adalah bagian terpenting dari Scrum.
Story terdiri dari kolom-kolom berikut ini
  1. ID – Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari kehilangan jejak story kalau kita mengganti namanya.
  2. Nama – Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata), sehingga tim dan klien memahami kira-kira story yang dibicarakan.
  3. Kepentingan – Derajat kepentingan yang diberikan oleh klien terhadap story. Pemberian derajat kepentingan biasanya menggunakan deret fibonacci (1,1,2,3,5,dst). Semakin tinggi nilainya maka semakin tinggi pula prioritas pengerjaannya.
  4. Perkiraan awal – Perkiraan awal tim tentang berapa banyak kerja yang diperlukan untuk mengimplementasikan sebuah story.
  5. Demo – deskripsi umum bagaimana cara story ini didemokan pada waktu sprint demo (lakukan ini, klik itu, lalu ini akan muncul,dll).
Sprint
Sprint (Rapat perencanaan pembuatan perangkat lunak dilakukan 2-8 minggu sekali), yang perlu diperhatikan saat melaksanakan sprint antara lain
Tujuan sprint.
  1. Daftar anggota tim harus lengkap.
  2. Sprint backlog (daftar story yang akan diikutkan dalam sprint).
  3. Tanggal demo yang pasti.
  4. Tempat dan waktu yang jelas untuk pelaksanaan sprint berikutnya.
Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei dikerjakan, sebagai contoh:
Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan dilakukan 3 minggu kemudian. Setelah dilakukan demo untuk mengevaluasi kerja yang dilakukan tim pada Sprint 1, maka Sprint 1 dianggap selesei. Bahan evaluasi dari Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai aplikasi selesei dikerjakan.
Kelebihan dan Kekurangan

Kelebihan
  1. Beberapa kelebihan dari agile diantaranya
  2. 82% Menambah produktivitas tim.
  3. 7% Menambah kualitas perangkat lunak.
  4. 78% Menambah kepuasan klien.
  5. 37% Menghemat biaya.

Kekurangan
  1. Sedangkan kekurangan dari agile antara lain :
  2. Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
  3. Tidak cocok dalam skala tim yang besar (>20 orang).
  4. Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

2 komentar:

  1. Artikelnya udah bagus, lanjutkan Rizky!. :)

    BalasHapus
  2. nah ini yang saya cari, terima kasih ya!
    ditunggu kunjungan baliknya :)
    http://blog.agittm.info

    BalasHapus