Senin, 15 September 2014

Definisi pekerjaan dalam Web

03.08 Posted by Irfan 3 comments

      Ada yang tau daftar pekerjaan-pekerjaan dalam pembuatan Web ?  Mungkin kata Web Designer yang sering kita dengar, namun ternyata itu hanyalah salah satu dari beberapa pekerjaan dalam pembuatan web. Mau tau ? Mari kita simak ...

1. Web Architec

       Seperti halnya Arsitek bangunan, web Architect memegang peran penting pada perancangan dan struktur bagian-bagian website yang akan dibuat. Web architect menentukan seperti apa skema/hirarki link-link yang akan disuguhkan, layanan-layanan apa yang diberikan ke public. Orang ini hendaknya memiliki pengalaman bernavigasi di internet, terutama surfing kesitus-situs lain guna melakukan perbandingan dan evaluasi sehingga menemukan pola website terbaik yang sesuai dengan misi organisasi.
       Seorang Web Architect boleh jadi tenaga sewaan dari konsultan IT. Ketika sebuah organisasi menyampaikan bahwa mereka ingin membuat website, web architect akan dapat memberikan nasehat website seperti apa yang mereka butuhkan . setiap kategori situs memiliki ciri khas sendiri. Situs-situs e-commerce berbeda jauh dengan situs-situs kampus. Demikian pula situs-situs pemerintah tidak akan sama dengan situs-situs perusahaan entertainment.
       Organisasi anda mungkin hanya akan membutuhkan Web Architect pada fase-fase awal pembuatan website namaun begitu, bayaran mereka cukup tinggi. Ini dapat dimaklumi mengingat peran seorang “Perancang” sangat menentukan pengembangan ke depan. Ingat bahwa perombakan website (yang dikarenakan salah strategi) hanya akan membuat buang waktu dan biaya).
2. Web Designer

       Web designer adalah seseorang yang bekerja dengan unsur-unsur visual pada suatu halaman web. Dia adalah orang yang membuat wajah halaman web tampak begitu “cantik”. Para web design mengintegrasikan komponen seperti gambar, file flash, atau multimedia ke dalam halaman web untuk menambah pengalaman visual user, atau untuk melengkapi content page.
       Pemahaman tentang Client-side scripting, HTML, CSS, cara memanipulasi image dan animasi merupakan beberapa hal yang dikuasai oleh web designer.
Berikut adalah bagian hal yang harus dipahami oleh seorang web designer:
• Client-side scripting: JavaScript
• Server-Side scripting: PHP, ASP, dsb.
• Cascading Style Sheets
• HTML
• Manipulasi image : Adobe Photosop, GIMP, Corel Draw, dsb.
• Animasi, biasanya berupa flash.

       Web designer biasanya bekerja dalam tim untuk memastikan sebuah tampilan website dapat membuat aplikasi web bekerja dengan baik. Keterampilan tambahan berupa komunikasi, tentu akan menjadi sangat berguna bagi para web designer.
Sisi lain yang juga harus dipahami oleh web designer adalah usability / kegunaaan, standar W3C untuk HTML dan CSS dan kompabilitas tampilan pada browser yang berbeda.

3. Web Programmer

  •        Programmer adalah orang yang membuat suatu aplikasi untuk client/user baik untuk perusahaan, instansi ataupun perorangan.


Tugas :
Membuat program baik aplikasi maupun system operasi dengan menggunakan bahasa pemrograman yang ada.

Kualifikasi :
Menguasai logika dan algoritma pemrograman
Menguasai bahasa pemrograman seperti HTML, Ajax, CSS, JavaScript, C++, VB, PHP, Java, Ruby dll.
Memahami SQL
Menguasai bahasa inggris IT

4. Web Developer

       Web developer adalah seseorang yang menciptakan aplikasi berbasis web dengan menggunakan bahasa pemrograman. Pada dasarnya, web developer membuat berbagai 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 halaman website yang dinamis, hingga mengatur cara pengunjung untuk berinteraksi dengan elemen-elemen dari website tersebut.
Seorang web developer yang handal akan terbiasa dengan bahasa pemrograman, baik itu di sisi server ( server-side scripting ) maupun disisi client ( client-side scripting ). Dan jangan lupa dengan aspek database yang akan digunakan. ;) Berikut adalah bagian aplikasi yang harus dipahami oleh seorang web developer.
• Client-side: JavaScript
• Server side: ASP, ASP.NET, Java, Perl, PHP, Python, Ruby, dsb.
• Databases: 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 menciptakan tampilan yang baik.

5. Web Administrator

       Web Administrator adalah seseorang yang bertanggung jawab secara teknis terhadap operasional sebuah situs atau website khususnya server. Seseorang Web Administrator harus mengerti secara mendalam tentang sistem operasi yang di gunakan server, proses penginstalan, memahami jaringan LAN, WAN, keamanan data server, dan yang penting dia juga harus dapat mengatasi masalah Troubleshooting.

Tugas Web Administrator 

Server Monitoring
Server Monitoring adalah Mengawasi sebuah server sehingga server dapat berfungsi dengan baik.

Server Management
Server Management adalah mengatur sebuah server terhadap sebuah konfigurasi server, baik dari sisi keamanan maupun fitur – fitur yang disediakan

Server Update
Server Update adalah Memperbaharui sebuah system server terhadap perangkat lunak pendukung yang digunakan

System Recovery
System Recovery adalah Sebuah tindakan untuk meng cover data bila terjadi error atau trouble dalam operating system

Space Monitoring
Space Monitoring adalah mengawasi pemakaian kapasitas data dari server

BackUp
Melakukan proses backup data secara berkala.

Dokumentasi
Membuat dokumentasi sebuah server

6. Web Analisis

  • Web Analisis adalah orang yang memiliki keahlian untuk menganalisa system pada sebuah web yang akan diimplementasikan, mulai dari menganalisa system yang ada, kelebihan dan kekurangannya, sampai studi kelayakan dan desain system yang akan dikembangkan.

      Tugas :
  • Mengembangkan perangkat lunak/software dalam tahapan requirement, design dan construction
  • Membuat dokumen requirement dan desain software berdasarkan jenis bisnis customer
  • Membangun framework untuk digunakan dalam pengembangan software oleh programmer 


      Kualifikasi :
  • Menguasai keahlian sebagai programmer
  • Menguasai metode dan best practice pemrograman
  • Memahami arsitektur aplikasi dan teknologi terkini


      Deskripsi kerja : 

  • Mengumpulkan informasi untuk penganalisaan dan evaluasi sistem yang sudah ada maupun untuk rancangan suatu sistem.
  • Riset, perencanaan, instalasi, konfigurasi, troubleshoot, pemeliharaan, dan upgrade sistem pengoperasian.
  • Riset, perencanaan, instalasi, konfigurasi, troubleshoot, pemeliharaan, dan upgrade perangkat keras, perangkat lunak, serta sistem pengoperasiannya.
  • Melakukan analisis dan evaluasi terhadap prosedur bisnis yang ada maupun yang sedang diajukan atau terhadap kendala yang ada untuk memenuhi keperluan data processing.
  • Mempersiapkan flowchart dan diagram yang menggambarkan kemampuan dan proses dari sistem yang digunakan.
  • Melakukan riset dan rekomendasi untuk pembelian, penggunaan, dan pembangunan hardware dan software.
  • Memperbaiki berbagai masalah seputar hardware, software, dan konektivitas, termasuk di dalamnya akses pengguna dan konfigurasi komponen.
  • Memilih prosedur yang tepat dan mencari support ketika terjadi kesalahan, dan panduan yang ada tidak mencukupi, atau timbul permasalahan besar yang tidak terduga.
  • Mencatat dan memelihara laporan tentang perlengkapan perangkat keras dan lunak, lisensi situs dan/ atau server, serta akses dan security pengguna.
  • Mencari alternatif untuk mengoptimalkan penggunaan komputer.
  • Mampu bekerja sebagai bagian dari team, misalnya dalam hal jaringan, guna menjamin konektivitas dan keserasian proses di antara sistem yang ada.
  • Mencatat dan menyimpan dokumentasi atas sistem.
  • Melakukan riset yang bersifat teknis atas system upgrade untuk menentukan feasibility, biaya dan waktu, serta kesesuaian dengan sistem yang ada.
  • Menjaga confidentiality atas informasi yang diproses dan disimpan dalam jaringan
  • Mendokumentasikan kekurangan serta solusi terhadap sistem yang ada sebagai catatan untuk masa yang akan datang.

7. Agile Development Method

       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.


      Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting menentukan Metodologi pengembangan perangkat lunak dan Proses pengembangan perangkat lunak yang 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 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.


Beberapa model dari agile development methods, yaitu :

  • Acceptance Test Driven Development (ATDD)
  • Agile Modeling
  • Adaptive Software Development (ASD)

Adaptive software development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari adaptive software development adalah kolaborasi manusia dan tim yang mengatur diri sendiri. Sistem kerja adaptive software development : collaboration dan learning. '
  1. Collaboration : orang-orang yang bermotivasi tinggi bekerja sama, saling melengkapi, rela membantu, kerja keras, terampil di bidangnya, dan komunikasikan masalah untuk menyelesikan masalah secara efektif.
  2. Learning: tim developer sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui tiga cara:
  3. Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.
  4. Formal Technique Reviews, tim ASD lengkap melakukan review.
  5. Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses.

  • Agile Unified Process (AUP)
  • Continuous integration (CI)
  • Crystal Clear
  • Crystal Methods
  • Dynamic Systems Development Method (DSDM)

Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototip yang incremental dalam lingkungan yang terkondisikan. Metode ini bisa membuat pengerjaan software lebih cepat 80%.Hal -hal yang perlu diperhatikan jika menggunakan dynamic system development method:
  1. Feasibility study, siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM.
  2. Business Study, susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi.
  3. Functional model iteration, perlihatkan fungsi perangkat lunak ke klien untuk mendapatkan feedback
  4. Design and Build Iteration, cek ulang prototip yang dibangun dan pastikan bahwa prototip dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja.
  5. Implementation: buat perangkat lunak sesuai protoip yang ada dan terus tambah fungsionalitasnya.

  • Extreme Programming (XP)
  • Feature Driven Development (FDD)

Feature driven development merupakan sebuah model pengembangan perangkat lunak yang berdasarkan pada fitur yang akan dibuat. Keuntungan dari metodefeature driven development :
  1. User dapat menggambarkan dengan mudah bentuk sistem yang akan dibuat.
  2. Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai hirarki yang ada.
  3. Desain dan kode lebih mudah diperiksa secara efektif.
  4. Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh fiturnya.

  • Graphical System Design (GSD)
  • Kanban
Lean software development
  • Rational Unified Process (RUP)
Rational unified process, adalah suatu kerangka pengembangan perangkat lunak iteratif yang dibuat oleh Rational Software, suatu divisi dari IBM sejak 2003.Rational unified process bukanlah suatu proses dengan aturan yang konkrit, melainkan suatu kerangka proses yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh tim pengembang perangkat lunak yang akan memilih elemen proses disesuaikan dengan kebutuhan mereka.Model ini membagi suatu sistem aplikasi menjadi beberapa komponen sistem dan memungkinkan para developer aplikasi untuk menerapkan metoda iterative (analisis, disain, implementasi dan pengujian) pada tiap komponen. Dengan menggunakan model ini, Rational unified process membagi tahapan pengembangan perangkat lunaknya ke dalam 4 fase sebagai berikut.
  1. Inception, merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup analisis sistem, perumusan target dari sistem yang dibuat, identifikasi kebutuhan, perumusan kebutuhan pengujian, pemodelan diagram UML, dan pembuatan dokumentasi.
  2. Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pembuatan disain arsitektur subsistem, disain komponen sistem, disain format data disain database, disain antarmuka/tampilan, disain peta tampilan, penentuan design pattern yang digunakan, pemodelan diagram UML, dan pembuatan dokumentasi.
  3. Construction, merupakan tahap untuk mengimplementasikan hasil disain dan melakukan pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan ulang hasil analisis dan disain, terutama disain pada diagram sequence,class, component, dan deployment. Apabila disain yang dibuat telah sesuai dengan analisis sistem, maka implementasi dengan bahasa pemrograman tertentu dapat dilakukan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pengujian hasil analisis dan disain (misal menggunakan class responsibility collaborator untuk kasus pemrograman berorientasi obyek), pendataan kebutuhan implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis), penentuan coding pattern yang digunakan, pembuatan program, pengujian, optimasi program, pendataan berbagai kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.
  4. Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap ekspetasi pengguna.
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, evolutionaryagile 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 agiledeveloper dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.


Topik selanjutnya yaitu tentang cara kerja agile development methods

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

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.

SUMBER :
http://suyono.web.id/menjadi-webmaster-1/
http://bomy-id.blogspot.com/2014/05/jenis-jenis-profesi-dan-deskripsi.html
http://www.rumahweb.com/journal/web-developer-web-designer-dan-webmaster.htm
http://adityaadiyatma.wordpress.com/2013/11/08/web-administrator/
http://id.wikipedia.org/wiki/Agile_Development_Methods

Selasa, 26 Agustus 2014

Studi Kasus Pemodelan Perangkat Lunak

03.18 Posted by Irfan No comments
1. MODEL WATERFALL

          Tuan X adalah General Manager A Company, sebuah perusahaan perkapalan yang berbasis di Singapura. Sebagai perusahaan UKM muda yang terus berkembang, Tuan X menginvestasikan sebagian modal perusahaan untuk promosi di media cetak dan elektronik, serta melatih kemampuan karyawan melalui berbagai kursus. Untuk mendukung kerja karyawan, A Company menggunakan komputer dasar (Basic PC) yang dilengkapi dengan office software. Seperti kebanyakan UKM lainnya, A Company juga memiliki akses internet yang hanya dapat digunakan secara terbatas di beberapa PC. A Company memiliki satu buah email resmi yang masih menggunakan domain dari ISP (Internet Service Provider). Untuk komunikasi dilingkungan karyawan, mereka menggunakan fasilitas email gratis yang banyak tersedia di internet. Email gratis ini kadang juga digunakan untuk berkomunikasi dengan supplier dan pelanggan.
           Sebagai perusahaan UKM yang terus berkembang cepat, Tuan X mulai berfikir untuk mengembangkan A Company lebih professional. Harapan Tuan X, calon pelanggan potensial, pelanggan, supplier dan karyawan lebih mengenal A Company. Disisi lain, ia juga berharap agar cara yang digunakan lebih efisien, hemat biaya, tetapi menampilkan sosok perusahaan yang meyakinkan atau bonafit. Tuan X meyakini, bahwa berkomunikasi menggunakan alamat email atau domain sendiri; promosi melalui website sendiri; data yang terintegrasi dan dapat diakses disemua komputer perusahaan akan dapat membawa perusahaan menjadi lebih profesional.
          A Company tidak memiliki departemen khusus untuk menangani TI. Untuk mewujudkan keinginannya, Tuan X meminta bantuan perusahaan khusus TI. Implementasi TI dikerjakan oleh perusahaan TI (sebagai pemenang tender) dalam jangka waktu kontrak 1 tahun, Dalam proses implementasi, Tuan X menyerahkan tugas dan tanggung-jawab kepada bawahannya. Semua karyawan dilibatkan dalam pertemuan dan diskusi dengan perusahaan pembangun TI. Dari waktu kontrak 1 tahun yang disepakati, TI yang bisa diimplementasikan adalah pembangunan jaringan komputer, akses internet, email, dan pembangunan data terpusat. Sedangkan untuk website belum bisa dikerjakan sepenuhnya karena sebagian besar waktu yang tersedia habis digunakan untuk menyatukan keinginan para pihak yang terkait dalam implementasi.
          Meskipun demikian, sistem yang dibangun mulai dirasakan manfaatnya oleh A Company. Komunikasi melalui email mulai dapat dilakukan karyawan dengan supplier dan pelanggan. Pengambilan keputusan sudah mulai bisa dilakukan dengan cepat karena data yang diperlukan sudah terpusat. Tuan X juga merasakan terjadinya penghematan dalam penggunaan kertas dan alat tulis, karena perusahaan mulai menerapkan e-document. Namun demikian, kepuasan Tuan X tidak bertahan lama, karena sistem TI mulai menimbulkan masalah. Hal itu misalnya terjadi pada email yang mengalami over quota dan dibanjiri virus, sehingga komunikasi perusahaan dengan pelanggan menjadi terputus dan komputer perusahaan menjadi rusak.
          Hal yang terjadi tidak hanya membuat kerjaan perusahaan menjadi terganggu, tetapi berbagai peluang bisnis menjadi hilang. Citra perusahaan dimana supplier dan pelanggan menjadi berubah dan A Company harus menanggung kerugian investasi.
Tuan X baru menyadari bahwa implementasi TI yang dilakukan belum memberikan hasil positif secara keseluruhan kepada perusahaannya. Ditambah lagi ia harus menyiapkan budget tambahan untuk memperbaiki sistem jaringan yang rusak. Kekecewaan Tuan X bertambah ketika budget yang diusulkan dalam proposal implementasi tidak termasuk biaya perawatan. Tuan X akhirnya memutuskan untuk menghentikan proyek pengerjaan website, karena TI yang sudah diimplementasikan merugikan perusahaan dan menghabiskan budget yang sudah dialokasikan sebelum keseluruhan proyek selesai dilaksanakan.
2. MODEL SPIRAL
          Dinas Pekerjaan Umum Kota Sawahlunto merupakan salah satu badan publik yang mempunyai tugas melaksanakan urusan pemerintah daerah di bidang pekerjaan umum yang meliputi bina marga, pengairan, cipta karya dan tata ruang. Dalam menjalankan tugas tersebut Dinas Pekerjaan Umum Kota Sawahlunto juga mempunyai fungsi memberikan pelayanan umum di bidang pekerjaan umum (Perda Kota Sawahlunto No 19, 2010:4). Pelayanan umum yang diberikan yaitu layanan perizinan (Izin usaha jasa konstruksi dan izin mendirikan bangunan) dan layanan pengaduan masyarakat tentang sarana dan prasarana lingkungan (Layanan pengaduan lampu jalan, layanan jalan rusak dan jembatan rusak). Disamping mempunyai fungsi memberikan layanan umum, Dinas Pekerjaan Umum Kota Sawahlunto juga melakukan pembinaan dan pelaksanaan tugas pembangunan
Kota Sawahlunto.
           Berdasarkan hasil survei dan wawancara yang peneliti lakukan pada Dinas Pekerjaan Umum Kota Sawahlunto pada bulan Desember tahun Dua Ribu Dua Belas, didapatkan informasi, pencarian informasi layanan IUJK sangat sulit, Proses layanan yang dirasa terlalu berbelit-belit dan tidak ada kejelasan dari proses pertama keproses
beriuktnya dan waktu pengurusan IUJK rata-rata enam hari kerja. Kondisi seperti ini menjadi hambatan bagi stakehoder dalam pelayanan IUJK, sedangkan di beberapa Kabupaten/Kota di Indonesia, Layanan izin usaha jasa konstruksi telah memanfaatkan media website, Pemerintahan Kabupaten Tanah Bumbu, Kabupaten Kerinci, dan Kabupaten Bogor.
          Berdasarkan permasalahan di atas dan kemajuan teknologi informasi dalam memberikan layanan baik saat ini, maka perlu mengembangkan sistem informasi pelayanan perizinan usaha jasa konstruksi berbasis web pada Dinas Pekerjaan Umum Kota Sawahlunto yang dapat memberikan pelayanan yang efektif dan efisien. Pelayanan ini diharapkan bisa diakses oleh masyarakat dimana saja dan kapan saja. Kontraktor dapat melihat persyaratan pengurusan perizinan usaha jasa konstruksi, melakukan pendaftaran dan mendapatkan jadwal validasi secara online. Kontraktor hanya tinggal membawa kelengkapan persyaratan disaat menjemput sertifakat IUJK.
          Pengembangan sistem informasi pada Dinas Pekerjaan Umum Kota Sawahlunto memilih menggunakan metoda spiral. Model Spiral, merupakan model pengembangan system yang digambarkan berupa spiral. Setiap untaian pada pada spiral menunjukkan fase software process. Model ini merupakan perbaikan dari model waterfall dan prototype.
Pengembangan Sistem Informasi Pelayanan Perizinan Usaha Jasa Konstruksi berbasis Web pada Dinas Pekerjaan Umum Kota Sawahlunto merupakan penelitian pengembangan. Model pengambangan yang akan dikembangkan berupa model prosedural yang bersifat deskriptif, dengan menunjukan langkah-langkah yang harus diikuti untuk menghasilkan
produk. Pembangunan sistem informasi IUJK menggunakan metode Spiral. Adapun tahaptahap pengembangan sistem dengan metode Spiral, yaitu Customer Communication,Risk AnalysisEngineeringConstruction and Release, dan Customer Evaluation.

3. MODEL EVOLUTIONARY

         Proyek SITINA(1) dimulai dengan kebutuhan terhadap suatu sistem EDM utilitas (1) yang harus melalukan pemantauan dengan mudah, benar-benar otomatis,pada pembangkit listrik tenaga air [1]. Tujuan utama adalah untuk mengembangkan aplikasi dengan biaya rendah yang memungkinkan dewan direksi untuk memonitor pembangkit listrik tersebut dan mengambil data statistik pada produksi mereka.
          Hal ini tidak dalam melingkupi penjelasan rinci tentang SITINA [2]. Namun, seperti yang dapat kita lihat dari akhir arsitektur umum pada Gambar 1, kita berhadapan dengan sistem yang kompleks dengan SCADA/EMS2 yang terbentuk dari penggunaan banyak teknologi dari beberapa produk-produk perangkat lunak yang berbeda.
 Sebelum memulai proyek kami memutuskan untuk memilih subset yang sesuai dari perangkat lunak dengan rekayasa metode dan teknik terkenal dan mapan. Agar sistem yang dibuat sesuai harapan dan dapat membantu dalam mencapai semua keinginan pengguna dan juga dapat digunakan dengan sukses dalam konteks organisasi di mana SITINA akan digunakan. Hal tersebut merupakan tujuan penelitian kami untuk belajar dan mengevaluasi kemampuan mereka untuk meningkatkan proses pembangunan dan membantu dalam memecahkan masalah yang akan timbul. Awalnya kami menganggap masalah berikut yang harus dipertimbangkan dalam memilih model referensi dan metode:
- Mempertahankan kepuasan pengguna dengan memungkinkan sistem untuk beradaptasi dengan perubahan kebutuhan pengguna
- Mempertahankan kepuasan pengguna dalam hal kegunaan dari sistem dan waktu untuk menyebarkan
- Menambahkan nilai kepada Rekayasa Perangkat Lunak UKM yang digunakan untuk model hanya itu memproses [6]
- Kemampuan tim proyek, dalam pengembang tertentu, untuk belajar dan menggunakan model-model baru seperti, metode dan teknik;
- Adaptasi dari model, metode dan teknik untuk membangun sebuah sistem embedded.

          Dalam proses ini kita menggunakan apa yang kita sebut pendekatan Trojan-horse katalitik. Kami diperkenalkan di UKM model terkenal, metode dan alat-alat yang telah ditetapkan untuk beberapa waktu dan dapat diakses oleh praktisi biasa. Kami memiliki tidak digunakan atau dievaluasi metode yang maju dan teknik, yaitu pada pendekatan berorientasi objek. Meskipun mereka memainkan Peran besar pada disiplin rekayasa perangkat lunak, mereka tidak dianggap alat utama untuk UKM biasa software Development Company atau praktisi. Mengikuti kebijakan yang sama, kami belum digunakan atau dievaluasi eksperimental atau canggih peralatan dan teknologi, seperti versi konfigurasi dan kontrol, metrik otomatis atau berorientasi obyek database. Beberapa alat dan teknik yang tidak tersedia bagi tim pengembangan, dan lain-lain akan diambil cukup banyak waktu atau sumber daya lain untuk menggunakan dan mengintegrasikan.

4. MODEL INCREMENTAL

       SMK Diponegoro Majenang merupakan salah satu instansi yang bergerakdalam bidang pendidikan khususnya kejuruan yang berdiri di bawah naungan LP. Ma’arif NU dan  beralamat di Jalan Raya Pahonjean Km. 02 Majenang Kab.Cilacap, Jawa Tengah 53257.  instansi ini memiliki 5 jurusan yang dapat dipiliholeh siswa antara lain: Multimedia, Teknik Kendaraan Ringan  Otomotif),Akuntansi, Administrasi Perkantoran, dan Pemasaran.

          Setelah penulis melakukan pengamatan terkait sistem penjurusan yangdigunakan di instansi tersebut dan dilakukan pertimbangan, penulis mendapatkan beberapa kesempatan untuk dapat merancang adanya sistem baru agar lebihmempermudah dalam menentukan minat jurusan siswa bila dibandingkan dengansistem sebelumnya.

           Kenyataan yang ada, dalam menentukan jurusan yang diminati oleh siswamasih dilakukan secara manual. Mereka perlu mengoreksi, mengakumulasi, danmempertimbangkan hasil penilaiannya satu persatu dari tiap siswa, sehingga akan membutuhkan waktu yang cukup lama dalam menghasilkan keputusan. Variabel penilaiannya pun tidak terlalu banyak dan terbatas pada nilai/kemampuan verbalsiswa, penilaian hanya berdasarkan pada hasil tes kompetensi mata pelajaran dan jurusan yang dipilih siswa. Oleh karena itu, hasil yang diperoleh pun masihkurang maksimal dan belum tepat sasaran. Belum lagi bila terdapat kesalahan datadan siswa meminta untuk berganti jurusan karena hasil yang diperoleh kurangsesuai dengan yang mereka harapkan, sejauh ini instansi tersebut masih belum menemukan solusi yang tepat untuk menyelesaikan permasalahan di atas.
          Berdasarkan masalah yang telah diuraikan pada bagian latar belakang diatas, beberapa hal yang akan diteliti pada penelitian ini adalah sebagai berikut:
a. Bagaimana perancangan aplikasi sistem pendukung keputusan untuk penentuan jurusan di SMK Diponegoro Majenang Cilacap? 
b.Bagaimana analisa dan hasil pengujian menggunakan metode Neuro-Fuzzy dalam aplikasi tersebut?
Dalam penelitian ini, metode yang akan digunakan dalam pengembangansistem adalah metode Incremental (Sommerville, 2003), antara lain:


  1.  Analisis dan Definisi Kebutuhan ( Requirements analysis and definition)Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dandidefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun.
  2. Desain Sistem dan Perangkat Lunak (System and software design) Membuat perancangan alir proses sistem dan antarmuka Perangkat lunak.
  3. Implementasi dan Pengujian Unit ( Implementation and unit testing ) Menerjemahkan desain program ke dalam kode-kode denganmenggunakan bahasa pemrograman yang sudah ditentukan dan dilakukan pengujian per unit program.
  4. Integrasi dan Pengujian Sistem ( Integration and system testing ) Penyatuan unit-unit program kemudian dilakukan pengujian secarakeseluruhan(system testing ).
  5. Pengoperasian dan Pemeliharaan (Operation and maintenance) Mengoperasikan program di lingkungannya dan melakukan pemeliharaan,seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.

5. MODEL PROTOTYPE

          Sering seorang pelanggan mendefinisikan serangkaian sasaran umum bagi perangkat lunak, tetapi tidak melakukan mengidentifikasi kebutuhan output, pemrosesan, atupun input detail. Pada kasus yang lain, pengembang mungkin tidak memiliki kepastian terhadap efisiensi algoritme, kemampuan penyesuaian dari sebuah sistem operasi,atau bentuk-bentuk yang harus dilakukan oleh interaksi manusia dengan mesin. Dalam hal ini, serta pada banyak situasi yang lain, prototyping paradigma mungkin menawarkan pendekatan yang terbaik.
          Prototyping paradigma dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari software, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar diman definisi lebih jauh merupakan keharusan kemudian dilakukan “perancangan kilat”. Perancangan kilat berfokus pada penyajian dari aspek-aspek software tersebut yang akan nampak bagi pelanggan atau pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototipe. Prototipe tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan software. Iterasi terjadi pada saat prototipe disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya.
          Secara ideal prototipe berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan software. Bila prototipe yang sedang bekerja dibangun, pengembang harus mempergunakan fragmen – fragmen program yang ada atau mengaplikasikan alat –alat bantu (contohnya report generator, window manager, dll) yang memungkinkan program yang bekerja untuk dimunculkan secara cepat.Prototipe bisa berfungsi sebagai “sistem yang pertama”.