Haruskah saya mendengarkan atasan saya dan menggunakan alat CASE?

17

Majikan saya (Bukan Pengembang) berpikir bahwa alat CASE akan membantu kami meningkatkan proses pengembangan dan dokumentasi kami. Saya tidak yakin tentang itu, kami adalah tim kecil yang terdiri dari 5 pengembang yang membangun solusi mobile banking untuk klien lokal. Saya pikir alat CASE akan membuang-buang waktu dan uang karena mereka perlu dibeli dan kita akan membutuhkan waktu sebelum kita terbiasa dan menjadi efisien bekerja dengan mereka untuk pemodelan dan barang-barang. Pembuatan kode adalah masalah lain, saya benar-benar berpikir bahwa kode KASUS yang dihasilkan tidak akan sebaik kode yang ditulis oleh pengembang yang baik.

Saya pikir jika kita tetap berpegang pada prinsip gesit, pola desain, gunakan TDD, dan jaga kode kita tetap bersih. kita harus baik. Dan sejauh Analisis dan Desain, saya pikir diagram UML sederhana di papan tulis harus melakukan trik. Dokumentasi itu baik dan penting, tetapi harus dibuat sesedikit mungkin dan kita tidak boleh fokus pada Dokumen dan melupakan kodenya. Ini yang saya pikirkan.

Apakah saya benar? atau haruskah saya mendengarkan atasan saya dan mulai mencari alat CASE yang tepat?

omsharp
sumber
21
"Saya benar-benar berpikir bahwa kode KASUS yang dihasilkan tidak akan sebagus kode yang ditulis oleh pengembang yang baik" - orang biasa mengatakan hal yang sama tentang kode yang dihasilkan oleh kompiler.
9
Jawabannya sangat tergantung pada apakah Anda ingin mempertahankan pekerjaan Anda :)
dasblinkenlight
23
1990-an menelepon, dan mereka ingin mode mereka kembali.
Blrfl
6
@ GrahamLee ada perbedaan besar antara keduanya - Anda membaca (saat debugging) dan membuat tambahan (melalui kelas parsial atau sejenisnya) kode yang dihasilkan KASUS sepanjang waktu, sementara Anda pada dasarnya tidak peduli tentang kode yang dihasilkan kompiler menjadi dapat dibaca
guillaume31
6
@ guillaume31: Setelah Anda mengubah kode yang dibuat KASUS, Anda memiliki kode yang perlu dikelola oleh manusia dan karenanya dapat dibaca. Saya tidak ingat kapan terakhir kali saya harus memodifikasi output kompiler sama sekali, apalagi tidak bisa mendapatkan tweak itu kembali ke sumber dalam bentuk assembler in-lined.
Blrfl

Jawaban:

54

Situasi ini memerlukan pendekatan analitis terhadap keputusan tersebut. Intinya adalah "Apakah alat CASE memberikan nilai bagi bisnis?" Seringkali, manajemen menginginkan pengembang untuk mengadopsi metodologi atau alat karena mereka telah mendengar hal-hal baik tentang itu, terlepas dari seberapa baik itu cocok dengan proses dan budaya organisasi saat ini.

Jika majikan Anda meminta Anda untuk melihat alat CASE, seperti yang ditunjukkan ChrisF, Anda harus mematuhinya (ini adalah masalah di tempat kerja, bukan pemrograman). Beberapa faktor yang akan mempengaruhi adopsi alat CASE meliputi:

  • Yang mana dari proses Anda yang ada alat KASUS tersedia,
  • Perkiraan berapa banyak orang-jam akan dibutuhkan untuk mengadopsi alat baru,
  • Bagaimana proses akan berubah dengan adopsi alat baru,
  • atau Dampak positif (atau negatif) macam apa yang dapat diukur dari mengadopsi alat baru

Anggap ini sebagai peluang untuk meningkatkan lingkungan dan proses pengembangan Anda. Mungkin saja proses Anda saat ini sangat cocok dengan budaya organisasi Anda, tetapi Anda berutang kepada atasan Anda dan tim Anda untuk melakukan penelitian yang sesuai.

David Kaczynski
sumber
17
"Anggap ini sebagai peluang untuk meningkatkan lingkungan dan proses pengembangan Anda." - Alat CASE dimaksudkan untuk menyelesaikan masalah X. Kami tidak memiliki masalah X karena A, B, dan C. Alat yang lebih relevan adalah alat Y, yang memecahkan masalah terkait Z.
Brian
29

Ya, Anda harus mulai meneliti alat CASE.

  1. Karena Anda perlu bukti untuk mendukung pernyataan Anda bahwa itu tidak akan membantu. Anda tidak pernah tahu, Anda mungkin menemukan bahwa mereka akan membantu.
  2. Karena atasan Anda menyuruh Anda melakukannya.

Saya tidak akan mengulangi poin-poin yang dikemukakan oleh David Kaczynski dalam jawaban yang sangat bagus karena itu adalah langkah-langkah yang harus Anda ikuti.

ChrisF
sumber
Apakah Anda pikir mereka tidak akan membantu?
omsharp
@ Tomsharp - Saya tidak tahu apakah mereka akan membantu Anda atau tidak. Saya menjawab pertanyaan yang Anda ajukan, "haruskah saya mendengarkan atasan saya dan mulai mencari alat KASUS yang tepat".
ChrisF
7
+1 untuk poin # 1. Terlalu banyak orang berpikir mereka tidak dapat melakukan pekerjaan mereka karena "mereka tahu lebih baik".
TZHX
2
"Karena atasan Anda memberi tahu Anda" jangan pernah menjadi alasan untuk apa pun.
Picarus
2
@Picarus - Ya itu seharusnya - bahkan jika Anda menyerah saat mereka mengatakan kepada Anda untuk melakukan sesuatu yang tidak etis atau ilegal.
ChrisF
5

Sepertinya perubahan paradigma besar memang dari Agile ke CASE / MDA berorientasi pengembangan dengan pembuatan kode. Tidak harus dari sudut pandang manajemen proyek (pendekatan KASUS tidak akan bertentangan dengan konsep iterasi, cerita pengguna, umpan balik cepat atau perbaikan berkelanjutan) tapi jelas dari perspektif "pengerjaan perangkat lunak" - itu berarti lebih sedikit kontrol atas kode kode yang dihasilkan dan dihasilkan yang mungkin tidak dapat dibaca, kaku, sulit untuk diuji, terus-menerus perlu disinkronkan dengan model, dan sebagainya.

Dari apa yang Anda jelaskan, apa yang dibutuhkan majikan Anda mudah dimengerti:

  • Dokumentasi yang lebih baik untuk menghindari hilangnya pengetahuan jika pengembang meninggalkan tim.
  • Proses pengembangan yang lebih cepat.

Sebagai seorang profesional perangkat lunak, Anda pasti dapat (dan harus) memberi tahu dia tentang keraguan Anda pada kemampuan pendekatan CASE untuk memenuhi harapan ini. Ini juga tugas Anda untuk mulai melihat alat CASE jika dia menuntutnya. Hanya mencoba salah satu dari mereka tidak berarti 1 / bahwa hasilnya akan memuaskan (Saya terutama berpikir tentang overhead generasi kode berpotensi besar yang jenis konflik dengan kebutuhan untuk berkembang lebih cepat) dan 2 / yang Anda tidak bisa menemukan kompromi di mana beberapa fitur dari alat CASE (diagram, pembuatan dokumentasi) akan digunakan sambil mempertahankan konteks gesit yang ada.

Berikut ini adalah artikel yang menarik tentang alat CASE di lingkungan Agile dan kemungkinan manfaat / kelemahannya: http://www.agilemodeling.com/essays/simpleTools.htm

guillaume31
sumber
1
Artikel itu akan menjadi titik awal yang sangat baik untuk @omsharp
David Kaczynski
3

Majikan saya (Bukan Pengembang) berpikir bahwa alat CASE akan membantu kami meningkatkan proses pengembangan dan dokumentasi kami. "

Jika saya akan bertindak sebagai konsultan untuk atasan Anda, saya akan berkewajiban untuk mencoba menghalangi mereka dari hal semacam ini. Pertama-tama, ini adalah kesalahan manajemen utama untuk membuat orang yang tidak terlibat dengan pekerjaan memilih alat untuk pengembang. Ini hampir tidak pernah berjalan dengan baik. Setidaknya dua kali lebih buruk ketika orang membuat pilihan tidak memiliki latar belakang teknis yang kuat. Dan jika mereka tidak memiliki pengalaman dengan alat yang mereka dorong, ini kemungkinan akan menjadi bencana total.

Alasan yang paling mungkin bahwa hal semacam ini disarankan oleh manajemen non-teknis adalah karena seseorang mencoba menjual sesuatu kepada mereka. Satu perusahaan besar yang menjual barang-barang semacam ini memiliki pendapatan yang jatuh seperti timah zeppelin di udara yang dijernihkan. Tenaga penjualan (alias penjual kembali, konsultan) yang belum pindah ke hal lain dengan gagah berani mencoba menemukan merek baru, eh ... pelanggan. Salah satu alasan utama perusahaan-perusahaan ini berjuang adalah karena tidak ada banyak permintaan untuk jenis alat ini lagi. Dengan 'alat semacam ini', maksud saya alat yang menjanjikan untuk 'menghilangkan kode penulisan'. Tidak ada yang salah dengan kode, tergantung bahasanya. Kode tertulis memiliki abstraksi yang jauh lebih kuat daripada yang ditawarkan alat ini.

Salah satu alasan utama bahwa ini adalah cara yang buruk untuk mengelola pembangunan adalah bahwa hal itu akan sangat mengurangi kumpulan orang yang tersedia untuk menarik staf staf Anda. Pertama, mereka perlu mempelajari alat yang tidak biasa ini, dan kedua, pengembang yang paling berpengalaman tidak ingin bekerja dengan hal-hal ini. Seringkali yang terpenting di sekitar jenis alat ini adalah bahwa Anda tidak benar-benar membutuhkan pengembang yang baik karena alat ini melakukan sebagian besar pekerjaan berat. Ini sepenuhnya salah. Sebaliknya. Mereka melakukan semua hal yang sepele dan sering membuat melakukan bagian yang tidak sepele lebih sulit. Mereka juga tidak pernah benar-benar menghilangkan kebutuhan untuk menulis kode.

Khususnya dengan alat CASE, saya telah bekerja di tiga tempat berbeda yang memiliki paket-paket ini. Di setiap satu, itu berjalan seperti ini:

  1. Model itu dirancang dengan susah payah dalam alat. Butuh waktu lebih lama dari biasanya dan tidak ada hasil yang dapat digunakan diproduksi sampai sangat terlambat dalam upaya.
  2. Model perlu ditambah dengan logika bisnis. Modelnya salah dan harus di-tweak secara manual selama fase proyek yang terlambat karena usahanya sudah terlambat.
  3. Menyinkronkan ulang model dan kode sehingga sangat mahal sehingga alat CASE disimpan, tidak akan pernah digunakan lagi.

Singkatnya, itu adalah kegagalan total 100% dan buang-buang uang dalam setiap kasus. Ketika saya sudah berbicara dengan orang lain yang telah menggunakan alat CASE di organisasi lain, ceritanya selalu hampir sama. Saya belum menggunakan semua alat ini dan mungkin beberapa orang telah memanfaatkannya dengan baik, tetapi saya cukup yakin bahwa sebagian besar tim yang telah menggunakannya berhenti menggunakannya sejak lama.

JimmyJames
sumber
1

Salah satu manfaat yang akan Anda dapatkan dari investigasi / penerapan alat CASE adalah bahwa Anda akan memperoleh keterampilan yang lebih berharga untuk pekerjaan di masa depan. Saya pikir banyak kekhawatiran Anda yang patut diperhatikan, tetapi, seperti yang ditunjukkan oleh David Kaczynski, ini bukan pertanyaan pemrograman seperti halnya pertanyaan hubungan majikan / karyawan. Manfaat lain dari alat CASE adalah bahwa setelah dipelajari, perusahaan Anda akan berada dalam posisi untuk mengambil proyek yang lebih luas dengan kompleksitas yang lebih besar. Sangat mungkin bahwa sebuah kontrak yang dicari majikan Anda memerlukan, atau menempatkan preferensi terhadap penggunaan alat CASE.

deadEddie
sumber
1

Anda mencampur masalah dan solusinya dan atasan Anda berusaha membantu, dengan lebih atau kurang sukses. Untuk menantang bos Anda, Anda harus jelas apa peran Anda dalam organisasi. Jika dia adalah CEO dan Anda adalah CTO, keputusan ada di tangan Anda dan CEO harus menunjukkan pada aspek bisnis apa saja yang terpengaruh oleh kurangnya dokumentasi. Kewajiban Anda kemudian akan menyelesaikan masalah bisnis, dengan alat KASUS atau solusi lain yang Anda dapatkan.

Mengenai saran spesifik untuk menggunakan alat CASE, saya pikir Anda harus memilihnya dengan benar sehingga Anda mencapai tujuan Anda tanpa membebani tim Anda dengan kerja ekstra. Jika dokumentasi adalah apa yang ingin Anda tingkatkan, Anda mungkin sudah cukup dengan alat yang mampu menghasilkan diagram dari kode, tidak harus menghasilkan kode dari diagram grafis. Contoh alat tersebut adalah Codelogic . Saya menggunakan beberapa tahun yang lalu untuk memastikan bahwa desain kami bersih dan jelas untuk dimengerti dan cukup mudah digunakan. Jika ketika Anda mengungkapkan uang adalah masalah lain, Anda mungkin dapat mencari di sumber terbuka (saya tidak bisa membantu di sini tetapi akan tertarik pada hasil penelitian apa pun).

Alternatif untuk alat CASE juga dapat membantu. Mengukur hal-hal seperti ukuran siklus atau kompleksitas lainnya akan membuat desain Anda terstruktur dengan baik dan pengembang fokus pada kode. Komentar yang lebih baik tentang kode Anda, seperti Javacode, juga dapat membantu meningkatkan dokumentasi.

Jujur, saya pikir jika Anda menganggap bahwa alat CASE tidak membantu atasan Anda harus mengetahuinya. Jika dia adalah bos yang baik, dia akan menghargai pendapat Anda. Saya tidak pernah menyukai karyawan yang hanya melakukan apa yang diperintahkan tanpa analisis kritis. Tetapi tentu saja, seperti yang disarankan David, setiap diskusi harus didasarkan pada argumen yang kuat dan obyektif.

Picarus
sumber
1

Saya akan mencoba untuk membuat majikan Anda menyadari bahwa ia telah mendapatkan hal-hal mundur. Jika ada ruang untuk investasi bagi tim perangkat lunak, Anda harus mengidentifikasi apa yang menjadi hambatan atau masalah kualitas Anda. JIKA ternyata Anda memiliki ruang paling besar untuk perbaikan dalam bidang dokumentasi dan proses pengembangan, Anda harus mengidentifikasi perubahan apa yang memiliki ROI terbesar terkait dengan peningkatan area ini. Itu mungkin atau mungkin tidak mulai menggunakan alat CASE.

Buhb
sumber
0

Bantu Atasan Anda, Bantu Diri Anda Sendiri

Anda dapat bereaksi atau bertindak atas permintaan ini.

Ingat semua pertanyaan "Pindahkan Gunung Fuji"? Jika Anda berada dalam sebuah wawancara untuk pekerjaan yang benar-benar Anda inginkan, Anda tidak akan memberi tahu pewawancara betapa bodohnya pertanyaan itu, tetapi akan terus bertanya dan mengungkapkan ide-ide terbaik Anda untuk menyelesaikannya. Dalam beberapa budaya, Anda tidak akan pernah mengatakan tidak kepada bos yang benar-benar meminta Anda untuk memindahkan Gunung Fuji, tetapi akan menemukan cara bagi Anda untuk menyelamatkan muka.

Membingkai ulang Pertanyaan

Jika Anda membingkai ulang pertanyaan menjadi sesuatu seperti,

"Bisakah saya membeli atau membeli seperangkat alat yang mengotomatiskan sebanyak mungkin tugas dengan produktivitas rendah yang terkait dengan perangkat lunak?"

tugas ini menjadi jauh lebih enak. Bantu atasan Anda (dan diri Anda sendiri) dengan memberinya opsi dengan kemampuan penelusuran yang jelas ke CASE, dan satu atau dua opsi berbasis Agile / open source / cloud.

KASUS DITinjau kembali

Di tahun 90-an, alat CASE mungkin mengambil bentuk seperangkat alat dari Rational yang mungkin termasuk Requisite Pro, Rational Rose, Clear Case, Rational Robot (pelari uji), Purify, Pure Coverage, dan Quantify, dan beberapa alat lainnya yang terintegrasi bersama. Jika Anda adalah toko MAD (Medis, Avionik, Pertahanan), Anda dapat menggunakan versi terbaru dari alat-alat ini untuk menghasilkan dokumentasi dan artefak yang luas dan dapat dilacak yang sering dibutuhkan oleh pelanggan di pasar tersebut.

Hubungi IBM dan dapatkan salesman untuk memberikan penawaran untuk lima lisensi (atau hanya satu lisensi mengambang). Tambahkan juga beberapa pelatihan. Membagikan kutipan ini dengan manajer Anda dapat mengakhiri pembicaraan tentang alat CASE. Tapi jangan salah paham. Saya suka Rational, ilmuwan utama mereka, dan produk mereka, tetapi terutama mengaksesnya melalui lisensi situs universitas karena harganya terlalu tinggi untuk perusahaan tempat saya bekerja. Jika Anda disetujui, setidaknya dari pengalaman saya, mereka akan memperlakukan hak Anda dengan dukungan yang baik, pelatihan yang berkualitas (biasanya di resor top dengan makanan lezat).

Alat untuk Dijual

Anda masih memiliki peluang besar untuk berbelanja alat. Pengembang lincah membutuhkan alat juga. Anda dapat membeli suite yang memberi Anda dukungan dokumentasi untuk kartu cerita online, kasus penggunaan, kasus penggunaan, dan jenis diagram UML lainnya. Atlassian memiliki apa yang saya pikir adalah seperangkat alat yang bagus - Jira untuk tugas dan pelacakan bug, Green Hopper untuk apa yang mereka gambarkan sebagai manajemen proyek Agile, Confluence untuk wiki intranet, Crucible untuk review kode online, dan Bamboo untuk server integrasi berkelanjutan. Ada perangkat lunak sebagai lisensi layanan untuk ini dan suite alat lain yang ditargetkan untuk kebutuhan Anda jika Anda tangkas.

Integrasi IDE adalah cara lain untuk mendapatkan tahun 2012 yang setara KASUS. Jika Anda adalah rumah pengembangan Microsoft, Visual Team Studio memiliki alat yang memiliki cakupan yang mirip dengan apa yang dibuat Rasional. Mereka memiliki beberapa rekayasa perangkat lunak bolak-balik, generasi rintisan uji unit dari kelas, integrasi dengan sistem kontrol sumber, dan banyak alat untuk kolaborasi tim.

Alat Sumber Terbuka

Di sisi open source, Eclipse dan banyak plug-in mencoba untuk mengintegrasikan sekelompok alat open source. Saya tidak yakin apakah Kerangka Pemodelan Eclipse sudah matang atau jika ada alat lain yang memberikan insinyur perangkat lunak bolak-balik yang efektif, tetapi terakhir kali saya melihat, sepertinya itu tidak mudah untuk dicapai. Lingkungan Qt Creator terintegrasi dengan kontrol sumber, dan memiliki beberapa kemampuan untuk membantu memeriksa tempat dari cakupan kode perubahan saat Anda berada di editor.

Adopsi Alat Penambahan Iteratif

Pendekatan berulang / bertahap untuk pemilihan alat juga bisa sangat efektif. Proyek open source seringkali mendukung lingkungan tunggal atau ganda. Pilihan alat Anda mungkin dipengaruhi oleh tumpukan yang Anda gunakan. Tidak pernah ada waktu yang tepat untuk sepenuhnya menghentikan pengembangan, jadi menambah dan melatih tim dalam beberapa alat yang lebih kecil per kuartal mungkin lebih baik daripada pendekatan big bang yang mengubah segalanya sekaligus.

Solusi Alat Cloud

Banyak solusi yang terdaftar mungkin memerlukan server dan pengaturan yang relatif kompleks. Ada banyak opsi yang masuk ke pasar yang berbasis cloud dan menyediakan perangkat lunak sebagai layanan yang diselenggarakan oleh penyedia dengan biaya bulanan. Ini mungkin masuk akal untuk tim Anda, baik jangka pendek atau panjang. Beberapa mungkin memiliki solusi yang di-host yang dapat Anda gunakan untuk memulai dengan cepat, dengan opsi untuk membeli lisensi nanti.

Tidak satu pun dari saran ini yang merupakan jalan murah dan mudah menuju peningkatan produktivitas instan, tetapi jika Anda dapat menemukan beberapa alat yang sangat diperlukan setelah Anda mencobanya.

Pengembang Don
sumber
0

Satu hal yang saya tambahkan ke jawaban yang sangat baik di sini adalah bahwa Anda mungkin mendapat manfaat dari memahami bagaimana Anda ingin "meningkatkan proses pengembangan Anda".

Tren luar biasa selama 20 tahun terakhir telah mengoptimalkan pengembangan perangkat lunak untuk waktu ke pasar. "Agile", "lean", DevOps, TDD, BDD - mereka semua tentang mendapatkan perangkat lunak yang berkualitas secepat mungkin.

Alat KASUS bukan tentang waktu ke pasar. Mereka fokus pada ketertelusuran, konsistensi desain, kelengkapan model, dll. Ini semua adalah aspek yang berharga - terutama dalam sistem perbankan - tetapi mereka mengorbankan waktu untuk memasarkan.

Jadi, mungkin tanyakan kepada atasan Anda apa yang ingin ia optimalkan.

Dari pengalaman, bekerja dengan alat CASE dengan cepat menjadi lebih sulit daripada bekerja dengan kode - terutama ketika bekerja dengan domain masalah yang lebih dari rata-rata kompleks. Proyek berhenti menjadi proyek "perbankan", dan sebaliknya menjadi proyek "masukkan nama-alat-CASE-di sini".

Neville Kuyt
sumber