Selasa, 07 Juni 2016

PERANGKAT LUNKA DI MASA DEPAN

PERANGKAT LUNAK DI MASA DEPAN


BAB I

PENDAHULUAN

Ini adalah yang kedua dari beberapa kolom pada masa depan rekayasa perangkat lunak. Kolom pertama difokuskan pada tren dalam pemrograman aplikasi, khususnya yang berkaitan dengan kualitas. Kolom ini review data pada staf programmer dan kemudian mencakup aplikasi-program keterampilan. Masa Depan kolom berurusan dengan tren dalam pemrograman sistem dan implikasi dari kecenderungan untuk rekayasa perangkat lunak dan insinyur perangkat lunak.
Dalam kolom saya sebelumnya, saya memulai diskusi tentang masa depan rekayasa perangkat lunak dan terakhir tren dalam pemrograman aplikasi. Dalam kolom ini, saya mempertimbangkan permintaan bagi orang untuk menulis program aplikasi. Saya juga mengeksplorasi implikasi dari tren saat ini dalam pemrograman aplikasi. Dalam beberapa kolom berikutnya, saya akan memeriksa tren dalam pemrograman sistem dan mengomentari implikasi dari kecenderungan untuk rekayasa perangkat lunak dan insinyur perangkat lunak. Sementara posisi saya mengambil dan pendapat saya mengungkapkan kemungkinan akan kontroversial, maksud saya adalah untuk membangkitkan debat dan mudah-mudahan untuk menumpahkan beberapa lampu pada apa yang saya percaya adalah isu-isu penting. Juga, seperti halnya dalam semua kolom, sepenuhnya pendapat saya sendiri.

Beberapa Fakta

Permintaan untuk insinyur perangkat lunak adalah pada semua waktu tinggi, dan itu terus meningkat. Berdasarkan data sensus terakhir, ada perangkat lunak profesional 568.000 di AS pada tahun 1996. Pada tahun 2007, ada diproyeksikan menjadi 697.000 [Clark 00]. Karena 177.000 juga diproyeksikan untuk meninggalkan lapangan selama ini, ini berarti perlu sepuluh tahun untuk lebih dari 300.000 programmer baru. Itu adalah tambahan kotor 50% untuk penduduk pemrograman saat ini.
Perkiraan Biro Sensus 568.000 programmer tampaknya rendah kepada saya, dan saya menduga ini adalah karena kriteria yang digunakan untuk menentukan siapa yang dihitung sebagai seorang programmer. Howard Rubin mengutip sejumlah 1,9 juta programmer sebagai penduduk AS saat ini pemrograman [Rubin 99]. Saya juga melihat data yang menunjukkan bahwa jumlah programmer di AS dua kali lipat 1986-1996. Sementara data yang baik jarang untuk sebuah bidang penting, permintaan untuk programmer telah jelas meningkat dalam sepuluh tahun terakhir, dan kemungkinan terus meningkat di masa depan.
Jika Anda menganggap bahwa kebanyakan profesional di bidang yang paling teknik dan ilmu pengetahuan sekarang harus menulis setidaknya beberapa perangkat lunak untuk melakukan pekerjaan mereka, jumlah orang yang menulis, memodifikasi, memperbaiki, dan perangkat lunak pendukung harus sangat besar. Jika tren pertumbuhan tersirat oleh data sensus berlaku untuk seluruh penduduk programmer santai dan penuh-waktu, permintaan untuk programmer baru dalam sepuluh tahun ke depan kemungkinan akan lari ke jutaan.

Kebutuhan Masa Depan

Dilihat oleh tren masa lalu, jelas bahwa hampir setiap organisasi industri akan membutuhkan lebih banyak orang dengan keterampilan pemrograman aplikasi dan bahwa kelompok-kelompok pemrograman yang paling akan sangat kekurangan. Karena kelompok perangkat lunak banyak yang sudah kekurangan, dan tingkat kelulusan universitas saat ini perangkat lunak profesional hanya sekitar 35.000 tahun, kita punya masalah [AS 99]. Secara umum, hanya ada dua cara untuk mengatasi masalah aplikasi-pemrograman.
  1. Entah bagaimana meningkatkan pasokan programmer baru.
  2. Mencari cara untuk menulis program lebih tanpa menggunakan programmer lebih.
Karena memakan waktu lama untuk meningkatkan tingkat kelulusan perangkat lunak profesional, pendekatan utama untuk alternatif pertama harus melakukan lebih dari apa yang kita lakukan hari ini-yaitu, untuk bergerak lepas pantai software lebih banyak dan untuk membawa imigran lebih banyak perangkat lunak-terampil ke Amerika Serikat
Sementara banyak organisasi yang membangun perangkat lunak laboratorium di negara lain, khususnya India, ini merupakan solusi yang terbatas. Kebutuhan utama adalah untuk perangkat lunak profesional terampil yang memahami kebutuhan bisnis dan dapat menerjemahkan kebutuhan ini ke dalam aplikasi bekerja. Tidak ada pertanyaan bahwa pekerjaan coding dan pengujian dapat dikirim lepas pantai, tapi itu akan memerlukan desain yang baik atau, setidaknya, persyaratan yang jelas dan tepat. Sejak memproduksi persyaratan dan desain adalah sebagian dari pekerjaan perangkat lunak, akan lepas pantai hanya dapat menjadi bagian kecil dari solusi.
Memperoleh perangkat lunak-lebih terampil imigran adalah alternatif yang menarik, terutama karena lulusan India saja sekitar 100.000 berbahasa Inggris perangkat lunak profesional setahun. Namun, AS telah pembatasan visa ketat, dan kelompok-kelompok lain juga memiliki klaim pada slot yang tersedia. Juga, karena permintaan untuk kemampuan software meningkat dengan cepat di India, dan karena banyak profesional India sekarang dapat menemukan peluang yang menarik di rumah, jumlah imigran India yang tersedia kemungkinan akan terbatas di masa depan.

Para Analogi Automobile Industry

Untuk menguji alternatif penulisan program yang lebih tanpa menambah programmer lebih, mempertimbangkan industri otomotif. Kembali sebelum Henry Ford, hanya orang kaya mampu mobil. Kemudian Henry Ford mobil terjangkau untuk orang biasa. Setelah produsen mulai melayani kebutuhan massa, industri otomotif berubah dengan cepat.
Banyak inovasi diperlukan sebelum orang bisa merasakan mengemudi nyaman tanpa sopir. Mereka membutuhkan badan mobil tertutup, starter otomatis, pemanas, cengkeraman, transmisi, dan sejumlah fitur progresif lebih otomatis dan nyaman lainnya. Kombinasi dari inovasi yang dibuat operasi sebuah mobil sederhana dan mudah bagi hampir semua orang.
Dengan bantuan dari inovasi ini, orang bisa belajar untuk drive tanpa sopir. Ketika semua ini terjadi, bisnis sopir masuk ke berputar-putar. Segera, sebagai kenyamanan, kemudahan, dan kehandalan mobil meningkat, mengemudi mobil bukan lagi khusus, melainkan menjadi keterampilan umum yang diperlukan hanya sekitar semua orang. Saat ini, kebanyakan orang belajar mengendarai mobil sebelum mereka keluar dari sekolah tinggi. Meskipun masih ada pengemudi profesional, sebagian besar mengemudi sekarang dilakukan oleh masyarakat umum.

Bidang Komputer Hari

Hari ini, bidang komputer jauh seperti hari-hari awal dari industri mobil. Banyak profesional telah belajar untuk menggunakan sistem komputasi, tetapi sedikit yang bersedia untuk bergantung pada mereka untuk bekerja kritis, setidaknya tidak tanpa bantuan ahli dan dukungan. Di bidang komputer, sopir yang setara dengan kami dalam kedok para ahli yang mengembangkan aplikasi, menginstal dan sistem operasi penjahit, dan membantu kita pulih dari sistem crash sering dan kegagalan. Bahkan di Internet, sistem kita saat ini sering menunjukkan perilaku yang aneh dan sekarang kami dengan pesan samar. Sementara sistem ini jauh lebih mudah digunakan daripada sebelumnya, mereka belum dapat digunakan oleh masyarakat umum.
Untuk sistem komputasi untuk digunakan secara luas, kita perlu sistem yang bekerja secara konsisten dan bebas masalah. Kami juga membutuhkan sistem pendukung yang melayani fungsi yang sama sebagai starter mobil dan transmisi otomatis. Kemudian profesional di bidang yang paling akan dapat mengotomatisasi aplikasi mereka sendiri tanpa perlu programmer terampil untuk menangani rincian sistem misterius.
Lain prasyarat untuk meluasnya penggunaan sistem komputasi adalah bahwa para profesional di bidang yang paling mampu menghasilkan berkualitas tinggi program aplikasi dengan bantuan profesional sedikit atau tidak ada. Terobosan nyata akan datang ketika lebih mudah untuk belajar untuk menulis perangkat lunak yang baik dari itu adalah untuk belajar tentang aplikasi bisnis atau ilmiah yang paling. Kemudian, bukan membutuhkan bahwa orang-orang yang terampil perangkat lunak belajar tentang setiap bidang aplikasi, maka akan lebih ekonomis dan efisien untuk memiliki ahli aplikasi belajar untuk mengembangkan perangkat lunak mereka sendiri. Pada saat itu, rekayasa perangkat lunak akan menjadi keterampilan umum jauh seperti mengemudi, matematika, atau menulis, dan setiap profesional akan dapat menggunakan sistem komputasi untuk memenuhi sebagian besar kebutuhan aplikasi nya atau nya.

Tumbuh Sistem Ukuran dan Kompleksitas

Sementara perubahan tersebut akan menjadi bantuan besar, ia tidak akan membahas semua aspek pemrograman aplikasi. Untuk melihat mengapa, mempertimbangkan kecenderungan dalam ukuran dan kompleksitas program aplikasi. Jika sejarah adalah panduan, program aplikasi masa depan akan jauh lebih besar dan lebih kompleks daripada sekarang. Ini berarti bahwa pengembangan sistem seperti ini akan berubah dalam beberapa cara penting.
Sebagaimana saya tulis dalam kolom sebelumnya, perubahan pertama dan mungkin paling penting adalah dalam kualitas. Mereka yang membutuhkan software hanya akan mampu menggunakan program untuk melakukan bisnis mereka kecuali mereka memiliki kualitas yang jauh lebih tinggi daripada sekarang. Kecenderungan kedua adalah sama penting: pendekatan pondok-industri saat ini untuk mengembangkan program aplikasi harus memberi jalan untuk sebuah disiplin lebih profesional dan dikelola dengan baik. Ini bukan hanya karena meningkatnya ukuran program dan spesifikasi lebih menuntut kualitas mereka, tetapi juga karena bisnis memproduksi program-program tersebut akan tumbuh melampaui kemampuan kebanyakan orang untuk menguasai dengan cepat.
Dengan kata lain, hari sebagian besar telah berlalu ketika kami bisa mempekerjakan orang yang cukup akrab dengan bahasa pemrograman pilihan dan mengharapkan dia untuk cepat menjadi produktif pada program aplikasi berkembang. Sebagai program aplikasi menjadi lebih besar dan lebih canggih, pengetahuan dan pengalaman aplikasi yang diperlukan akan meningkat juga. Segera, biaya dan waktu yang diperlukan untuk membangun pengetahuan aplikasi akan menjadi penghalang. Oleh karena itu, sejumlah metode baru harus dikembangkan untuk membuat program aplikasi yang lebih ekonomis dan memakan waktu jauh lebih sedikit daripada sekarang ini.

Reuse

Argumen saya ke titik ini yang bersangkutan mendapatkan lebih banyak orang untuk menulis program. Namun, ada alternatif lain: mencari cara untuk menghasilkan aplikasi lebih banyak dengan lebih sedikit orang. Salah satu solusi yang diusulkan untuk tantangan ini adalah melalui penggunaan kembali. Sementara ini tampaknya seperti sebuah kemungkinan yang menarik, sejarah belum menggembirakan. Bahkan, sejarah menunjukkan bahwa teknologi akan kembali sebagian besar terbatas untuk membangun perpustakaan semakin besar bahasa dan fungsi sistem. Sayangnya, kompleksitas bahasa ditambahkan akan menyebabkan masalah lain. Ini bukan karena kembali tidak menarik, melainkan hanya pada terlalu rendah tingkat aplikasi untuk mengatasi kebutuhan sebagian besar pengguna.
Komunitas perangkat lunak telah menambahkan kemampuan fungsional dengan bahasa pemrograman selama 47 tahun sejak saya menulis program pertama saya. Pendekatan ini tidak memecahkan masalah pemrograman dari masa lalu, juga tidak mungkin untuk mengatasi orang-orang dari masa depan. Alasan utama adalah bahwa dengan menambahkan lebih banyak fungsi mikroskopis untuk bahasa kita, kita hanya menyatakan kembali masalah pengembangan aplikasi dalam hal sedikit lebih kaya.
Misalnya, ketika saya menulis program pertama saya kita harus mengontrol memulai dan menghentikan I / O device dan transfer masing-masing karakter. Sekarang fungsi tersebut ditangani secara otomatis untuk kita, namun kita dihadapkan bukan dengan bahasa canggih banyak lagi. Alih-alih bahasa yang sederhana Anda bisa meringkas pada selembar kertas, sekarang kita perlu buku teks keseluruhan.
Memang, kekayaan bahasa meningkat mengurangi pengetahuan sistem rinci diperlukan untuk mengelola fungsi komputer, tetapi masih meninggalkan kita dengan masalah desain secara keseluruhan, serta masalah menentukan apa desain yang seharusnya dilakukan bagi pengguna. Kemudian, para programmer aplikasi memiliki tantangan terakhir untuk menerjemahkan desain ke dalam fungsi dan program handal.
Hal ini menyebabkan masalah yang akan memaksa kita keluar dari pendekatan pondok-industri untuk pemrograman. Itu adalah ketidakmungkinan sederhana dengan cepat menjadi fasih dalam semua bahasa dan fungsi yang dibutuhkan untuk menghasilkan sistem aplikasi yang kompleks di masa depan. Sementara kembali dalam istilah tradisional dapat bermanfaat bagi penduduk pemrograman profesional, secara langsung bertentangan dengan kebutuhan untuk membuat teknologi kami lebih mudah diakses oleh orang yang tidak penuh waktu profesional pemrograman.

Dikemas Aplikasi

Untuk menangani volume kebutuhan banyak pengguna, perusahaan mulai memasarkan aplikasi dikemas seperti yang ditawarkan oleh SAP dan Oracle. Artinya, mereka menghasilkan sistem aplikasi dasarnya dikemas yang dapat dikonfigurasi dalam cara yang ditentukan. Daripada kustom-merancang setiap aplikasi, industri ini akan semakin mengembangkan keluarga sistem aplikasi tailorable. Para pengguna kemudian akan menemukan sistem yang tersedia yang paling dekat untuk memenuhi kebutuhan mereka dan menggunakan kemampuan kustomisasi untuk menyesuaikan sistem untuk kebutuhan bisnis mereka.
Untuk membuat sistem ini mudah tailorable oleh pelanggan mereka, perusahaan akan merancang sistem mereka dengan kemampuan terbatas, tetapi generik,. Kemudian, di samping untuk menyesuaikan sistem, pengguna juga harus menyesuaikan prosedur bisnis mereka agar sesuai dengan fasilitas yang tersedia dari sistem. Sebagai pengalaman dari SAP dan lain-lain telah menunjukkan, pendekatan ini tidak bebas masalah, tetapi dapat memberikan pengguna dengan sistem aplikasi yang besar dan canggih dengan biaya yang jauh lebih rendah daripada pengembangan aplikasi kustom-penuh.
Dilihat oleh pertumbuhan SAP, Oracle, dan lain-lain, ini telah menjadi strategi menarik. Daripada mengembangkan aplikasi untuk memenuhi berbagai kebutuhan pengguna terbatas mungkin, pengguna akan semakin beradaptasi operasi bisnis mereka agar sesuai dengan fungsi sistem aplikasi yang tersedia. Sementara ini merupakan bentuk kembali, itu adalah pada tingkat jauh lebih tinggi daripada pendekatan umum yang diusulkan, dan umumnya memerlukan sebuah keluarga serius architected produk aplikasi atau lini produk. Sama seperti dengan industri transportasi, perumahan, dan pakaian, misalnya, begitu orang melihat biaya besar produk disesuaikan, mereka biasanya puas dengan apa yang dapat mereka temukan di rak.

Kategori Aplikasi

Pengembangan aplikasi bekerja di masa depan mungkin akan melibatkan tiga kategori pekerjaan:
  1. mengembangkan aplikasi yang dikemas pengguna dapat menyesuaikan dengan kebutuhan mereka
  2. menyesuaikan sistem bisnis untuk menggunakan sistem aplikasi dikemas
  3. mengembangkan dan mendukung aplikasi unik yang tidak dapat dibuat dengan perangkat lunak dikemas
Para programer yang diperlukan untuk kategori pertama akan menjadi profesional seperti yang dibutuhkan untuk mengembangkan program-program sistem, tapi mereka umumnya akan memiliki pengetahuan aplikasi yang cukup. Saya akan menulis lebih banyak tentang kategori ini dalam kolom kemudian.
Untuk kategori kedua, kita mungkin akan melihat pertumbuhan yang substansial dalam volume kustomisasi aplikasi. Orang yang melakukan pekerjaan ini akan lebih seperti konsultan bisnis dari programmer, dan banyak bahkan tidak akan tahu bagaimana merancang dan mengembangkan program. Orang-orang ini akan dididik secara menyeluruh dalam paket yang mereka menyesuaikan dan membantu untuk menginstal.
Alasan untuk kategori ketiga adalah bahwa, meskipun strategi aplikasi dikemas mungkin akan menangani sebagian roti-dan-mentega aplikasi, itu tidak akan menangani aplikasi tersebut diperlukan untuk mendukung kegiatan bisnis baru dan inovatif. Karena aplikasi ini tidak akan pernah digunakan sebelumnya, tak seorang pun akan tahu bagaimana untuk menghasilkan solusi dikemas. Akibatnya, akan ada volume aplikasi yang tidak dapat diselesaikan oleh solusi dikemas. Oleh karena itu, bahkan dengan berbagai aplikasi yang tersedia dikemas, kebutuhan untuk pengembangan aplikasi disesuaikan tidak akan hilang.

Kustom Aplikasi Pemrograman

Pekerjaan aplikasi kustom harus ditangani oleh orang yang tahu bagaimana menulis program dan yang juga memahami aplikasi khusus. Orang-orang ini harus menjadi ahli pada berbagai macam spesialisasi, dan harus mampu menulis berkualitas tinggi program. Bagi orang-orang, kita harus mengembangkan metode yang sesuai dan pelatihan-untuk membantu mereka mengembangkan program kualitas pada mereka sendiri. Meskipun mereka tidak akan bekerja penuh waktu sebagai programmer profesional, saya percaya bahwa programmer kategori ini pada akhirnya akan terdiri dari sebagian besar program orang menulis. Karena mereka tidak akan menghabiskan semua-atau bahkan sebagian besar-dari waktu mereka menulis program, kita harus menyederhanakan bahasa kita dan mengembangkan bahasa baru yang dirancang untuk penggunaan kasual. Kita harus mengembangkan alat dan sistem pendukung yang akan membantu orang-orang untuk menghasilkan program berkualitas tinggi dengan harga yang wajar dan biaya. Kita juga harus menyesuaikan sistem pendukung sehingga aplikasi menulis untuk berjalan di atas sistem program yang dirancang dengan baik tidak akan memerlukan dukungan teknis yang ekstensif dan konsultasi hotline.
Singkatnya, apa yang saya usulkan adalah bahwa, daripada harus profesional pemrograman lebih dan lebih terlatih, kita akan memecahkan kebutuhan program kami dengan mengajar semua orang untuk program. Meskipun orang-orang tidak akan programmer profesional, mereka akan menjadi lebih penting bagi komunitas perangkat lunak karena mereka akan menjadi pelanggan kami yang paling menuntut. Mereka akan beroperasi pada batas-batas sistem perangkat lunak profesional yang kami berikan, dan mereka akan menjadi yang pertama untuk mengidentifikasi peluang-peluang baru yang penting. Oleh karena itu, mereka mungkin akan menjadi sumber dari banyak inovasi masa depan di bidang kita.
Dalam beberapa kolom berikutnya, saya akan menulis tentang tren dalam program sistem, apa yang mereka berarti bagi komunitas pemrograman, dan implikasi dari tren ini untuk rekayasa perangkat lunak.
by Watts S. Humphrey

Tidak ada komentar:

Posting Komentar