Senin, 15 September 2014

Pekerjaan Dalam WEB dan Agile Development Model

Pekerjaan Dalam WEB


Beberapa Pekerjaan dalam dunia WEB :

1. Web Architect
2. Web Designer
3. Web Programmer
4. Web Developer
5. Web Administrator
6. Web Analis

Web Architect

Arsitektur Website adalah suatu pendekatan terhadap desain dan perencanaan situs yang, seperti arsitektur itu sendiri, melibatkan teknis, kriteria estetis dan fungsional. Seperti dalam arsitektur tradisional, fokusnya adalah benar pada pengguna dan kebutuhan pengguna. Hal ini memerlukan 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.

Sejak web perencanaan isi, desain dan manajemen datang dalam lingkup metode desain, Vitruvian tradisional tujuan komoditas, keteguhan dan kesenangan dapat memandu arsitektur situs, seperti yang mereka lakukan arsitektur fisik dan disiplin desain lainnya. Website arsitektur akan datang dalam ruang lingkup estetika dan teori kritis dan kecenderungan ini dapat mempercepat dengan munculnya web semantik dan web 2.0. Kedua ide menekankan aspek struktur informasi. Strukturalisme adalah sebuah pendekatan untuk pengetahuan yang telah dipengaruhi sejumlah disiplin akademis termasuk estetika, teori kritis dan postmodernisme. Web 2.0, karena melibatkan user-generated content, mengarahkan perhatian arsitek website untuk aspek-aspek struktur informasi.

Suatu pendekatan terhadap desain dan perencanaan situs yang, seperti arsitektur itu sendiri, melibatkan teknis, kriteria estetika dan fungsional. Seperti dalam arsitektur tradisional, fokusnya adalah benar pada pengguna dan kebutuhan pengguna. Hal ini memerlukan 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

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.

Web Programmer

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 programmer, tidak lupa juga mereka tentunya mengerti HTML & CSS. Tapi hal yang terpenting dalam pekerjaan web programmer adalah fokus pada konsep pemrograman, keamanan dan struktur web.

Web Developer

Tugas-tugas dari web developer adalah menganalisis kebutuhan sistem, merancang web (desain dan programmnya), mengonlienkannya (domain dan hosting), mempromosikan, hingga mengurusnya (maintenance). Berbeda dengan web master. Untuk web master lebih banyak ke keahlian. Mulai dari membuat desain, membuat program, dan hal-hal lain yang berhubungan dengan teknis. Untuk menjadi seorang web developer dibutuhkan keahlian mengenai pemrograman web, database, domain dan hosting hingga jaringan. Jadi cakupannya lebih luas dibandingkan menjadi seorang web master.

Web Administrator

Pekerjaan ini 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.

Web Analis

Web analytics adalah pengukuran, pengumpulan, analisis dan pelaporan data internet untuk tujuan pemahaman dan mengoptimalkan penggunaan web.

Web analytics 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.

On-site web analytics mengukur perjalanan sekali pengunjung di website Anda. Ini termasuk yang driver dan konversi, misalnya halaman arahan yang mendorong orang untuk melakukan pembelian. On-site analisis Web mengukur kinerja situs dalam konteks komersial. Data ini biasanya dibandingkan terhadap indikator kinerja kunci kinerja, dan digunakan untuk meningkatkan situs web atau kampanye pemasaran respons penonton.

Secara historis, analisis Web telah disebut di-pengukuran pengunjung situs. Namun dalam beberapa tahun terakhir ini telah kabur, terutama karena vendor yang memproduksi alat-alat yang span kedua kategori.

On-site web analytics teknologi

Banyak vendor yang berbeda memberikan on-site perangkat lunak analisis Web dan layanan. Ada dua pendekatan teknologi utama untuk mengumpulkan data. Metode pertama, analisis logfile, membaca logfiles di mana server web catatan semua transaksi. Metode kedua, tag halaman, menggunakan JavaScript pada setiap halaman untuk memberitahukan pihak ketiga server jika suatu halaman yang diberikan oleh browser web. Keduanya mengumpulkan data yang dapat diolah untuk menghasilkan laporan lalu lintas Web.

Selain itu sumber data lain juga dapat ditambahkan untuk menambah data. Misalnya e-mail tingkat respons, data kampanye surat langsung, penjualan dan memimpin informasi, kinerja pengguna data seperti panas klik pemetaan, atau metrik kustom lainnya yang diperlukan.
Web server logfile analisis

Web server mencatat beberapa transaksi mereka dalam sebuah logfile. Itu segera menyadari bahwa logfiles ini dapat dibaca oleh program untuk menyediakan data tentang popularitas website. Dengan demikian muncul perangkat lunak analisis web log.

Pada awal 1990-an, statistik situs web terdiri terutama dari menghitung jumlah permintaan klien (atau hits) dibuat ke web server. Ini adalah metode yang masuk akal pada awalnya, karena setiap situs web biasanya terdiri dari satu file HTML. Namun, dengan pengenalan gambar dalam HTML, dan situs web yang membentang beberapa file HTML, menghitung ini menjadi kurang bermanfaat. Komersial yang pertama Log Analyzer dirilis oleh IPRO pada tahun 1994.

Dua unit pengukuran diperkenalkan pada pertengahan tahun 1990-an untuk mengukur secara lebih akurat jumlah aktivitas manusia pada web server. Ini adalah tampilan halaman dan dilihat (atau sesi). Sebuah tampilan halaman didefinisikan sebagai permintaan yang dibuat ke web server untuk sebuah halaman, sebagai lawan dari grafis, sedangkan kunjungan didefinisikan sebagai urutan permintaan dari klien yang diidentifikasi secara unik kedaluwarsa setelah jumlah tertentu tidak aktif, biasanya 30 menit . Halaman pandangan dan kunjungan umumnya masih ditampilkan metrik, namun sekarang dianggap lebih canggih pengukuran.

Munculnya search engine spider dan robot pada akhir tahun 1990-an, bersama dengan web proxy dan alamat IP yang ditetapkan secara dinamis untuk perusahaan besar dan ISP, membuatnya lebih sulit untuk mengidentifikasi manusia unik pengunjung ke sebuah website. Log analyzer menanggapi dengan melacak kunjungan oleh cookie, dan dengan mengabaikan permintaan dari laba-laba dikenal.

Ekstensif menggunakan web cache juga disajikan masalah bagi analisis logfile. Jika seseorang mengunjungi kembali halaman, permintaan kedua biasanya akan diambil dari cache browser, jadi tak ada permintaan akan diterima oleh server web. Ini berarti bahwa orang jalan melalui situs tersebut hilang. Caching bisa dikalahkan dengan mengkonfigurasi server web, tetapi hal ini dapat mengakibatkan kinerja yang rusak pengunjung ke situs web.

AGILE DEVELOPMENT MODEL



Pengertian

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada.Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.

Pendahuluan

Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting menentukan Metodologi pengembangan perangkat lunak dan Proses pengembangan perangkat lunakyang akan digunakan. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, sedangkan Proses pengembangan perangkat lunak adalah model-model dan metodologi yang digunakan untuk mengembangkan suatu perangkat lunak. Ada beberapa model Metodologi pengembangan perangkat lunak diantaranya : waterfall, fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.Terdapat enam langkah yang digunakan dalam Metodologi pengembangan perangkat lunak, yaitu :
  • Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.
  • Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
  • Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
  • Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
  • Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
  • Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.

Agile Manifesto

Martin Fowler, salah satu pencetus ide agile development method
Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto, diantaranya :
  1. Interaksi dan personel lebih penting dari pada proses dan alat.
  2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
  3. Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.
  4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.
Pengertian dari Agile Alliance's Manifesto dijelaskan di bawah ini:
  • Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
  • Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
  • Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
  • Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak.

Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim tersebut harus mengikuti dua belas prinsip yang ditetapkan oleh Agile Alliance, yaitu :

  1. Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan perangkat lunak yang bernilai dengan cepat dan rutin.
  2. Menyambut perubahan kebutuhan, walaupun terlambat dalam pengembangan perangkat lunak. Proses Agile memanfaatkan perubahan untuk keuntungan kompetitif klien.
  3. Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan, dengan preferensi kepada jangka waktu yang lebih pendek.
  4. Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap hari sepanjang proyek.
  5. Kembangkan proyek di sekitar individual yang termotivasi. Berikan mereka lingkungan dan dukungan yang mereka butuhkan, dan percayai mereka untuk menyelesaikan pekerjaan dengan baik.
  6. Metode yang paling efisien dan efektif untuk menyampaikan informasi dari dan dalam tim pengembang perangkat lunak adalah dengan komunikasi secara langsung.
  7. Perangkat lunak yang bekerja adalah ukuran utama kemajuan.
  8. Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-pengembang, dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara berkelanjutan.
  9. Perhatian yang berkesinambungan terhadap keunggulan teknis dan rancangan yang baik meningkatkan Agility.
  10. Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal yang amat penting.
  11. Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari tim yang yang dapat mengorganisir diri sendiri.
  12. Secara berkala, tim pengembang berefleksi tentang bagaimana untuk menjadi lebih efektif, kemudian menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.

Dua belas prinsip tersebut menjadi suatu dasar bagi tim agar sukses menerapkan agile development methods. Dengan prinsip-prinsip tersebut agile berusaha untuk menyiasati tiga masalah yang biasanya dihadapi saat proses pembuatan perangkat lunak, yaitu:

  • Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
  • Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
  • Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Tujuan Agile

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.

Bagaimana Agile bekerja

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 :
  • 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.
  • Manajer / Scrum Master, bertugas mengkolaborasikan developer dengan klien, membuat dan mengevaluasi target pengerjaan perangkat lunak.
  • Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan dibuat.
  • 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:
  • ID – Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari kehilangan jejak story kalau kita mengganti namanya.
  • Nama – Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata), sehingga tim dan klien memahami kira-kira story yang dibicarakan.
  • 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.
  • Perkiraan awal – Perkiraan awal tim tentang berapa banyak kerja yang diperlukan untuk mengimplementasikan sebuah story.
  • 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.
  • Daftar anggota tim harus lengkap.
  • Sprint backlog (daftar story yang akan diikutkan dalam sprint).
  • Tanggal demo yang pasti.
  • 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

Beberapa kelebihan dari agile diantaranya :
  • 82% Menambah produktivitas tim.
  • 77% Menambah kualitas perangkat lunak.
  • 78% Menambah kepuasan klien.
  • 37% Menghemat biaya.

Kekurangan

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

Source :

http://eka-yunita-ekayunita.blogspot.com/2013/04/web-developer.html