Monday, February 6, 2012

Pengembangan Software

Kunci keberhasilan pembangunan sebuah software secara yang dilakukan berkelompok adalah pada tahapan-tahapan pengembangannya. Setiap tahap pembangunan software memiliki tujuan tersendiri yang harus di evaluasi untuk memasuki tahapan selanjutnya. Selain itu, indikator dari setiap tahapan harus jelas sehingga sebah team bisa menentukan mereka telah mencapai tahapan yang mana dalam pengembangan sebuah software. Indikator setiap tahapan biasanya ditentukan setelah mengetahui hal-hal berikut :




  • States, state disini artinya keadaan pengorder software atau situasi yang dihadapi pengorder software. Bagi pengembang software, sangat penting untuk mengetahui situasi yang dihadapi pengguna karena situasi dari ini seorang pengembang bisa mengetahui situasi awal dari pengorder software.

  • Need, need disni artiinya kebutuhan pengorder software terhadap suatu sistem atau aplikasi yang ingin di order dalam rangka efektifitas dan efisiensi kerja dari perusahaan atau instansi mereka.

  • Problem, problem atau masalah biasanya muncul dari tidak tercapainya Need dari pengorder software dari situasi (state) yang dihadapi mereka saat ini. Bagi pengembang software di sinilah analisa mereka bekerja untuk memberikan alternative solusi. Tolak ukur analisa bisa merujuk pada efisiensi, efektifitas atau kedua-duanya karena hal ini tergantung pada masalah yang dihadapi oleh pengorder software.

  • Solution, solusi yang diberikan oleh pengembang biasanya merupakan alternative solusi yang telah di analisa dan memiliki kekurangan kelebihan masing-masing. Pada bagian ini tidak terlepas anggaran dana yang akan dikeluarkan dan tenggat waktu untuk penyelesaian software akan dibahas.


Jika kesemua tahap diatas telah terlewati, selanjutnya adalah Deal terhadap alternative solusi yang diberikan oleh team pembangun software dan pengorder software. Kesepakatan antara kedua belah pihak biasanya ditanda tangani dalam bentuk MOU (Memorandum Of Understanding). Keabsahan MOU perlu di tanyakan kepada ahli hukum dalam hal ini bisa pengacara atau Lembaga Bantuan Hukum, karena tidak jarang terjadi keasalahan dalam proses ini dan pada saat terjadi permasalahan salah satu pihak akan dirugikan karena tidak bisa melakukan gugatan secara hukum. Dalam kasus dan dana yang dikeluarkan kecil permasalahan hukum tidak akan terlalu berarti, akan tetapi jika dana yang dikucurkan untuk pembangunan software lebih dari 100 (seratus) Juta tentunya kedua belah pihak tidak ingin merasa saling dirugikan.


Secara standar pengembangan software dilakukan dengan tahap Perencanaan, Analisa, Perancangan, dan Implementasi. Saat ini tahap-tahap pengembangan software telah dikembangkan oleh berbagai pihak untuk meningkatkan kualitas pengembangan software. Berikut ini contoh diagram pengembangan software dari link ini :




 

Setelah Tahapan States, Need, Problem dan Solution telah dilakukan maka tahapan selanjutnya adalah tahapan menentukan tenggat waktu dan indikator selesainya setiap tahapan dari gambar di atas.

  • Planning, pada tahapan ini dilakukan perencanaan untuk membangun sebuah software. Perencanaan perlu melibatkan semua pihak untuk mendapatkan gambaran secara menyeluruh dari awal proses pembangunan software hingga akhir. Pada tahapan ini juga tenggat waktu, biaya yang harus dikeluarkan, dan indikator-indikator selesainya sebuah tahap ditentukan. Rancangan yang baik adalah rancangan yang siap dengan kondisi terburuk dan memiliki rencana antisipasi ketika terjadi permasalahan ditengah pembangunan software.

  • Requirement Analysis, setelah merencanakan pembangunan software maka tahapan selanjutnya adalah melakukan analisa kebutuhan berasarkan data yang telah di peroleh pada tahapan State, Need, Problem, dan Soultion. Analisa kebutuhan pada bagian ini lebih mendetail dan mencakup area teknik pembangunan software dan hubungannya dengan pengorder. Misalnya jika anda membangun sebuah aplikasi berbasis web maka anda perlu mempertimbangkan lokasi hosting, space hosting,  bahasa pemrograman, library-library yang menjadi komponen, framework, dan masih banyak lagi...

  • Design and Development, pada tahap ini dilakukan perancangan software baik rancangan logika (UML)  maupun tampilan antarmuka. Rancangan perlu di evaluasi dan di diskusikan dengan pengorder software dengan bahasa yang dimengerti pengorder software.

  • Coding and Implementation, pada tahapan ini dilakukan proses pembangunan code-code program dan implementasi secara bertahap. Tahap ini adalah tahap yang paling banyak memakan waktu dari tahapan-tahapan yang lain. Namun, jika anda tidak ingin tahap ini menjadi lama maka sebaiknya kembangkanlah framework atau library terlebih dahulu sebelum menerima sebuah orderan software. Bangunlah sebuah library yang fleksibel untuk bisa di integrasikan dengan sotware yang dibangun sehingga pembangunan software hanya berfokus pada alur logika dan fitur-fitur yang pengorder.

  • Testing & Integration, saya lebih suka menyebut tahapan ini tahapan kolaborasi. Tahapan ini merupakan tahapan penting dan biasanya merupakan tahapan paling rumit, karena tahapan ini memerlukan pengujian yang baik (white box dan black box). Selain itu, proses integrasi antar komponen-komponen sistem yang dibangun secara terpisah mulai di satukan (jika dikerjakan secara team). Proses integrasi ini memerlukan kekompakan team, keseragaman basaha, kesamaan pemahaman konsep dan metode

  • Evaluation, tahapan ini adalah tahapan evaluasi secara menyeluruh. Tahapan ini sangat sering di acuhkan karena mental pembangun yang masih belum profesional akan meremehkan sebuah evaluasi. Tahapan ini sangat diperlukan untuk mengetahui kekurangan dan kelebihan proses dan hasil pembangunan software. Tahapan ini juga yang berperan untuk keberlanjutan team pembangun software dan peningkatan kualitas team.

  • Release, tahapan ini adalah tahapan pemberian software kepada pengorder.

  • Support, tahapan ini diperlukan jika di kemudian hari terjadi kerusakan ataupun kesalahan (bugs) dari software yang telah dibangun. Dukungan dari pembangun software sangat dibutuhkan oleh pengorder software namun perlu dibatasi hingga beberapa bulan agar tidak terlalu merugikan waktu team pembangun.


Artikel sangat jauh dari sempurna, soo kalau ada kritik dan saran saya siap menerima (tahapan evaluasi dari anda untuk saya)...

 

No comments :

Post a Comment

Monday, February 6, 2012

Pengembangan Software

Kunci keberhasilan pembangunan sebuah software secara yang dilakukan berkelompok adalah pada tahapan-tahapan pengembangannya. Setiap tahap pembangunan software memiliki tujuan tersendiri yang harus di evaluasi untuk memasuki tahapan selanjutnya. Selain itu, indikator dari setiap tahapan harus jelas sehingga sebah team bisa menentukan mereka telah mencapai tahapan yang mana dalam pengembangan sebuah software. Indikator setiap tahapan biasanya ditentukan setelah mengetahui hal-hal berikut :




  • States, state disini artinya keadaan pengorder software atau situasi yang dihadapi pengorder software. Bagi pengembang software, sangat penting untuk mengetahui situasi yang dihadapi pengguna karena situasi dari ini seorang pengembang bisa mengetahui situasi awal dari pengorder software.

  • Need, need disni artiinya kebutuhan pengorder software terhadap suatu sistem atau aplikasi yang ingin di order dalam rangka efektifitas dan efisiensi kerja dari perusahaan atau instansi mereka.

  • Problem, problem atau masalah biasanya muncul dari tidak tercapainya Need dari pengorder software dari situasi (state) yang dihadapi mereka saat ini. Bagi pengembang software di sinilah analisa mereka bekerja untuk memberikan alternative solusi. Tolak ukur analisa bisa merujuk pada efisiensi, efektifitas atau kedua-duanya karena hal ini tergantung pada masalah yang dihadapi oleh pengorder software.

  • Solution, solusi yang diberikan oleh pengembang biasanya merupakan alternative solusi yang telah di analisa dan memiliki kekurangan kelebihan masing-masing. Pada bagian ini tidak terlepas anggaran dana yang akan dikeluarkan dan tenggat waktu untuk penyelesaian software akan dibahas.


Jika kesemua tahap diatas telah terlewati, selanjutnya adalah Deal terhadap alternative solusi yang diberikan oleh team pembangun software dan pengorder software. Kesepakatan antara kedua belah pihak biasanya ditanda tangani dalam bentuk MOU (Memorandum Of Understanding). Keabsahan MOU perlu di tanyakan kepada ahli hukum dalam hal ini bisa pengacara atau Lembaga Bantuan Hukum, karena tidak jarang terjadi keasalahan dalam proses ini dan pada saat terjadi permasalahan salah satu pihak akan dirugikan karena tidak bisa melakukan gugatan secara hukum. Dalam kasus dan dana yang dikeluarkan kecil permasalahan hukum tidak akan terlalu berarti, akan tetapi jika dana yang dikucurkan untuk pembangunan software lebih dari 100 (seratus) Juta tentunya kedua belah pihak tidak ingin merasa saling dirugikan.


Secara standar pengembangan software dilakukan dengan tahap Perencanaan, Analisa, Perancangan, dan Implementasi. Saat ini tahap-tahap pengembangan software telah dikembangkan oleh berbagai pihak untuk meningkatkan kualitas pengembangan software. Berikut ini contoh diagram pengembangan software dari link ini :




 

Setelah Tahapan States, Need, Problem dan Solution telah dilakukan maka tahapan selanjutnya adalah tahapan menentukan tenggat waktu dan indikator selesainya setiap tahapan dari gambar di atas.

  • Planning, pada tahapan ini dilakukan perencanaan untuk membangun sebuah software. Perencanaan perlu melibatkan semua pihak untuk mendapatkan gambaran secara menyeluruh dari awal proses pembangunan software hingga akhir. Pada tahapan ini juga tenggat waktu, biaya yang harus dikeluarkan, dan indikator-indikator selesainya sebuah tahap ditentukan. Rancangan yang baik adalah rancangan yang siap dengan kondisi terburuk dan memiliki rencana antisipasi ketika terjadi permasalahan ditengah pembangunan software.

  • Requirement Analysis, setelah merencanakan pembangunan software maka tahapan selanjutnya adalah melakukan analisa kebutuhan berasarkan data yang telah di peroleh pada tahapan State, Need, Problem, dan Soultion. Analisa kebutuhan pada bagian ini lebih mendetail dan mencakup area teknik pembangunan software dan hubungannya dengan pengorder. Misalnya jika anda membangun sebuah aplikasi berbasis web maka anda perlu mempertimbangkan lokasi hosting, space hosting,  bahasa pemrograman, library-library yang menjadi komponen, framework, dan masih banyak lagi...

  • Design and Development, pada tahap ini dilakukan perancangan software baik rancangan logika (UML)  maupun tampilan antarmuka. Rancangan perlu di evaluasi dan di diskusikan dengan pengorder software dengan bahasa yang dimengerti pengorder software.

  • Coding and Implementation, pada tahapan ini dilakukan proses pembangunan code-code program dan implementasi secara bertahap. Tahap ini adalah tahap yang paling banyak memakan waktu dari tahapan-tahapan yang lain. Namun, jika anda tidak ingin tahap ini menjadi lama maka sebaiknya kembangkanlah framework atau library terlebih dahulu sebelum menerima sebuah orderan software. Bangunlah sebuah library yang fleksibel untuk bisa di integrasikan dengan sotware yang dibangun sehingga pembangunan software hanya berfokus pada alur logika dan fitur-fitur yang pengorder.

  • Testing & Integration, saya lebih suka menyebut tahapan ini tahapan kolaborasi. Tahapan ini merupakan tahapan penting dan biasanya merupakan tahapan paling rumit, karena tahapan ini memerlukan pengujian yang baik (white box dan black box). Selain itu, proses integrasi antar komponen-komponen sistem yang dibangun secara terpisah mulai di satukan (jika dikerjakan secara team). Proses integrasi ini memerlukan kekompakan team, keseragaman basaha, kesamaan pemahaman konsep dan metode

  • Evaluation, tahapan ini adalah tahapan evaluasi secara menyeluruh. Tahapan ini sangat sering di acuhkan karena mental pembangun yang masih belum profesional akan meremehkan sebuah evaluasi. Tahapan ini sangat diperlukan untuk mengetahui kekurangan dan kelebihan proses dan hasil pembangunan software. Tahapan ini juga yang berperan untuk keberlanjutan team pembangun software dan peningkatan kualitas team.

  • Release, tahapan ini adalah tahapan pemberian software kepada pengorder.

  • Support, tahapan ini diperlukan jika di kemudian hari terjadi kerusakan ataupun kesalahan (bugs) dari software yang telah dibangun. Dukungan dari pembangun software sangat dibutuhkan oleh pengorder software namun perlu dibatasi hingga beberapa bulan agar tidak terlalu merugikan waktu team pembangun.


Artikel sangat jauh dari sempurna, soo kalau ada kritik dan saran saya siap menerima (tahapan evaluasi dari anda untuk saya)...

 

No comments :

Post a Comment