Software Project Management
Tuesday, 2 October 2007
Protected: Studi Kasus : e-Procurement
Posted by Chantique under Software Project ManagementEnter your password to view comments.
Tuesday, 25 September 2007
A Comparison Between Visual Basic and Delphi
Posted by Chantique under Software Project ManagementLeave a Comment
Introduction
Which one is better? Delphi or Visual Basic? It’s a simple and direct question, but unfortunately it doesn’t have a simple and direct answer. The reason is that —although they are both Visual RAD tools— they have very significant differences and peculiarities that make it impossible to draw a straight and general conclusion. What we can do however is analyze and compare their different characteristics, hoping you find them useful as a guide for evaluation.
Learning Curve
Visual Basic is very easy to learn and use, not only because the programming language is not an OOP language and thus it’s easy to learn and code (in the end it comes from BASIC), but also because the IDE is simple and conformable to use, and the database objects that come with Visual Basic provide an interface that makes them easier to use.
Delphi is harder to learn, but not for people who are familiar with Turbo Pascal or FreePascal. Yes, Delphi is harder to use, but has its advantages. For example, objects usually aren’t reference counted and this means the programmer has to take care of disposing unused objects created by a procedure or function when that procedure or function ends. The advantage is that we have more freedom in manipulating the object and we can release it when we don’t need it anymore, no matter how many variables point to it. Delphi has its own memory management system optimized for small blocks of data, although it doesn’t have a garbage collector. Database access is cumbersome compared with Visual Basic, but very flexible and extensible.
“Visual Basic makes the easy things easier, Delphi makes the hard things easier” (Computerworld, 1998)
Purpose
Visual Basic is good for simple front-end applications and unsuitable for more complex stuff, while Delphi is ideal for both the front-end and the back-end. What does this mean? For example, with Visual Basic you can develop a compression tool (like Winzip) by designing a user interface and writing some code calling the compression routines of a given DLL or an ActiveX object (written in another language) that provides compression capabilities.
With Delphi you can do the same that you can do with Visual Basic, but you can also write the DLL or the ActiveX object that performs the compression/decompression task. It’s not that it’s impossible to write a DLL or an ActiveX object in Visual Basic: it’s technically feasible, but might be very inconvenient.
Delphi is more an “all-purpose” language than Visual Basic.
Market Share
The purpose and the ease of use has accommodated Visual Basic with a much bigger market share than Delphi in the global market. However, in certain market niches, Delphi rules over Visual Basic.
Visual Basic is the choice of executives, beginners and those who are forced to use it to get a job or simply follow the masses. Delphi is the choice of independent developers.
Performance and Code Size
Visual Basic has a good performance in data access, and perhaps reports, because the data access layer and report generation aren’t written in Visual Basic, but when it comes strictly to code generation, despite the fact that Visual Basic now produces native code instead of pseudo-code (P-Code), it is still very far from reaching a speed comparable to Delphi. This happens because Delphi has an optimizing compiler and yet there are compiling options to improve the speed of your code. To say more, if you are not happy with the performance of a routine in Delphi, you can fine-tune the code to squeeze the last nanosecond out it. In this respect, Delphi is ideal for tasks that require heavy programming.
The more system resources, the better —of course—, but execution speed and efficient use of resources make it possible for Delphi applications to run reasonably well in old Pentium machines with little memory like those you can still find being used in many small and medium companies
Speed and code size usually conflict, but when we compare Delphi and Visual Basic, Delphi clearly wins at both ends. A small database application using ADO and some third-party components fits in a single installation diskette in the case of Delphi, while its Visual Basic counterpart would fit in no less than two or three diskettes (in both cases I am not including ADO that has approximately 8 Mb). Why is the difference so big? Delphi optimizes code size all it can, it generates standalone executables (it can also generate executables that work with runtime libraries if you want) and it uses SmartLinking to avoid including in the executable procedures and functions that are not referenced in the code. Visual Basic has no other option than to work with runtime libraries and ActiveX objects (that are bigger and not as performant as their VCL counterparts).
Delphi produces standalone applications that are small and deliver great performance, making them more friendly with system resource and modem bandwidths, making of Delphi an ideal choice over Visual Basic for independent developers that produce tailor-made solutions for small or medium companies, as well as shareware or commercial applications to be distributed in the Internet.
Extensibility
Visual Basic and Delphi are extensible. Both IDEs support add-ons to add wizards and other extensions to the IDE, but what is more interesting for programmers —better said, more needed— is the possibility to use visual and non-visual objects apart from those that originally come with the development tool.
Obsolescence
Among Visual Basic programmers, how many of them are still programming in Visual Basic 4.0? And how many are programming in Visual Basic 5.0? Almost all Visual Basic programmers I know are programming in Visual Basic 6. With Delphi happens something completely different. A lot of people are still programming in Delphi 3 or 4, and perhaps the minority have Delphi 5, when Delphi 6 has just come to light. Why is that? Is it that the upgrade is too expensive? Nah… On second thought, yes it is! Please allow me to explain. What happens with Visual Basic is that —avid of more features— Visual Basic programmers upgrade rapidly as soon as there is a new version available. Delphi 3 C/S is so powerful that it is not yet obsolete, and this explains why many Delphi 3 programmers don’t see the need to pay for an upgrade when they already have what they need. Extensibility has also a lot to do with that.
Visual Basic programmers need to upgrade too soon. Delphi is so powerful, functional and extensible that its versions don’t become obsolete easily: in the long run, Delphi is cheaper.
Programming Power and Functionality
Among many other things, with Delphi you can:
- Write commercial-quality, fast and small applications, libraries, ActiveX objects and VCL components
- Create reports by code (or modify existing ones, for example to change or add a column)
- In general, everything that can be done visually (at design time) can also be done programmatically (at runtime)
- Easily write multi-threaded applications
- View data in tables and queries at design time
- Call API functions as if they were built-in functions
- Embed assembler code for best performance where necessary
- Take advantage of lots of VCL components available to give your applications a distinctive look and feel and offer an improved functionality.
- Easily subclass existing VCL components to add functionality
- Access new technologies not present when the IDE was released (for example ADO access with Delphi 4) without having to upgrade
Delphi offers programmers a power and functionality that leaves Visual Basic and its limitations behind.
Portability
If you are interested in Linux, there is a Delphi for Linux (Kylix), and I don’t see there will be a Visual Basic for Linux.
Kylix takes Delphi to the Linux platform, where VB won’t go.
Taken from Latium Software.
Wednesday, 19 September 2007
Manajemen Proyek Perangkat Lunak (3)
Posted by Chantique under Software Project Management1 Comment
Trade off triangle : sesuatu yang menentukan keberhasilan proyek, yaitu :
- Product
- Ruang lingkup : apakah kemampuan produk sudah sesuai dengan kebutuhan
- Performance : tingkat pemenuhan kebutuhan / kualitas produk
- Schedule (jadwal) : pengaturan waktu (phase, start, end, pre, post, parallel)
- Cost (biaya) : banyaknya alokasi resource yang diperlukan untuk memenuhi proses pengembangan perangkat lunak. Terdiri dari :
- Variable cost : penggajian SDM, sewa network
- Fix cost : pembelian tool
Fase software concept terdiri dari :
- Concept exploration : pemahaman terhadap area bisnis yang dikerjakan. Jenis :
- Financial, contoh : pada bank keuntungan diukur dari berapa banyak dana yang diputar
- Membership, contoh : pada jobsdb keuntungan diukur dari jumlah tenaga kerja yang dihimpun
- System exploration :pemahaman terhadap sistem, contoh : konsep, software, hardware, brainware, network
Fase requirement menghasilkan dokumen SRS.
Fase analisis menghasilkan architectural design berupa block diagram.
Fase design menyangkut spesifikasi :
- Hardware : server dan client
- Software : physical database, form, report
- Brainware : kemampuan, pengalaman, expertise
Perbedaan antara manajemen program dan manajemen proyek :
- Manajemen program meliputi : job desk, rule, sasaran, target. Memerlukan impersonal relationship (hubungan kerja)
- Manajemen proyek meliputi : tool yang diperlukan supaya program dapat berjalan / mencapai tujuan. Memerlukan personal relationship (hubungan kemanusiaan)
Manajemen proyek merupakan bagian dari manajemen program. Manajemen program merupakan bagian dari manajemen perusahaan (company management).
Resource dalam manajemen proyek adalah waktu, biaya, dan SDM.
Tingkat kesuksesan proyek diukur dari :
- Ketepatan waktu : semakin cepat selesai semakin baik
- Biaya : semakin rendah semakin baik
- Kemampuan perangkat lunak yang dihasilkan
Ukuran kesuksesan proyek :
- Project size : banyaknya requirement yang harus diakomodasi oleh perangkat lunak.
- Project duration : waktu yang diperlukan, mulai dari definisi sampai release proyek
- Project team size : jumlah orang yang terlibat dalam proyek
Faktor-faktor yang mensukseskan proyek :
- Executive support : orang yang mengambil keputusan / pengendali dalam proyek, bisa pimpinan atau manajer. Contoh pada FRS Online : rektor, dekan
- User involvement : orang yang menggunakan perangkat lunak. Contoh pada FRS Online : mahasiswa, dosen
- Experience project manager : banyaknya proyek yang dikerjakan dengan sukses, lamanya menangani proyek
- Clear bussiness objectives : visi dan misi terdokumentasi
- Minimized scope : ruang lingkup disesuaikan dengan resource
- Standard software infrastructure
- Firm basic requirements
- Formal methodology : menggunakan metode yang sering digunakan. Contoh : waterfall, extreme programming
- Reliable estimates : melibatkan kedua belah pihak (dan external team)
Stakeholder triad :
- Function representative : orang yang bertanggung jawab dalam bidangnya
- Executive sponsor
- Project manager
Pekerjaan project manager :
- Menentukan ruang lingkup proyek : nama, deskripsi, tujuan, ruang lingkup proyek
- Identifikasi stakeholder : menghubungi stakeholder, persetujuan, kontrak
- Membuat daftar pekerjaan secara rinci : Work Breakdown Structures (WBS)
- Estimasi kebutuhan waktu
- Membuat flow chart manajemen proyek awal
- Identifikasi resource dan budget yang diperlukan
- Evaluasi kebutuhan proyek
- Identifikasi dan evaluasi resiko
- Menyiapkan contingency plan (rencana alternatif jika resiko terjadi)
- Identifikasi interdependensi
- Identifikasi critical milestone
- Berpartisipasi dalam fase review proyek
- Mengamankan resource-resource yang diperlukan
- Memanaje proses perubahan kontrol
- Melaporkan status proyek
Menurut Project Management Institute, struktur project manajer ditentukan oleh :
- Process
- Project manager process : mendeskripsikan dan mengorganisasikan kerja proyek
- Product-oriented process : menentukan dan membangun produk proyek
- Knowledge area (ada 9)
- Core functions : scope, time, cost, quality management
- Facilitating functions : human resource, communication, risk, procurement management
- Project integration management
Grup proses Project Management Institute : initiating, planning, executing, controlling, closing.
Wednesday, 19 September 2007
Manajemen Proyek Perangkat Lunak (2)
Posted by Chantique under Software Project Management[2] Comments
Perbedaan antara software project dan software process adalah :
- Tujuan
- Software project : efisiensi, ketepatan waktu, keuntungan kualitatif (financial)
- Software process : memenuhi kebutuhan, correctness, portability, performance, mendapatkan good product dengan bermacam-macam fitur
- Resource (sumber daya)
- Software project : SDM (akunting, manajer), tool (excel, office), modal
- Software process : SDM (programmer, analis, desainer, tester), tool (bahasa pemrograman, rational rose)
- Hasil
- Software project : jadwal / planning, anggaran, proposal, laporan perkembangan
- Software process : source code, manual, data, desain, Software Requirement Specifications (SRS)
- Aktivitas
- Software project : planning, organizing, staffing, directing, monitoring, controlling, innovating (new solution), representing (customer, client, developer)
- Software process : requirement analysis, design, coding, testing, deployment, maintenance
Latar belakang adanya software project, tidak hanya software process adalah :
- Over budget -> lemahnya estimasi
- Over time
- Low quality (SDM)
- Perangkat lunak versi seragam -> tim pecah
- Teknik dan rule tidak jelas
Tujuan software project ditentukan sesuai dengan konsep :
- Specific, contoh : membuat perangkat lunak yang mampu …
- Measurable, contoh : mendeteksi kesalahan n kali
- Achievable (dapat diukur) : fitur-fitur apa saja
- Relevant (sesuai dengan konteks)
- Time constraint, contoh : waktu pengerjaan n bulan
Stakeholder adalah orang-orang yang terlibat dalam project dan process, yaitu :
- Internal team (tim yang terlibat dalam software process) : programmer, analis, desainer, tester
- External team
- Dalam 1 organisasi : manajer, keuangan, direktur
- Bukan 1 organisasi : customer
Monday, 17 September 2007
Manajemen Proyek Perangkat Lunak adalah sub-disiplin dari Manajemen Proyek di mana perangkat lunak direncanakan, dimonitor, dan dikontrol. Tujuan dari monitoring proyek adalah untuk menjaga tim dan manajemen tetap up-to-date pada kemajuan proyek. Jika proyek menyimpang dari rencana, maka manajer proyek dapat mengambil tindakan untuk memperbaiki masalah. Monitoring proyek melibatkan status pertemuan untuk mengumpulkan status tim. Monitoring proyek dapat dilakukan dengan menggunakan Gantt chart. Gantt chart memungkinkan kita untuk :
- Mengetahui apa yang harus dicapai pada waktu tertentu
- Mengetahui bagaimana tindakan perbaikan (remedial action) dapat mengembalikan proyek sesuai dengan rencana
Tool yang memiliki fitur Gantt chart antara lain : Microsoft Project, Microsoft Visio, Milestones Professional 2006, dotProject, SmartDraw, dan Project KickStart.
Milestones Professional 2006 (trial version) dapat didownload di sini.
Dokumen pendukung untuk program Milestones Professional 2006 :
Contoh Gantt chart yang dibuat dengan menggunakan Milestones Professional 2006 :
Tuesday, 11 September 2007
Manajemen Proyek Perangkat Lunak (1)
Posted by Chantique under Software Project ManagementLeave a Comment
Perangkat lunak (software) adalah sekumpulan kode / instruksi / aturan untuk menyelesaikan suatu masalah tertentu. Tujuannya untuk transparansi, performansi, integrasi, optimasi (efisiensi).
Proyek adalah kegiatan / aktivitas yang mempunyai batasan waktu, biaya, resource (sumber daya) dan mempunyai tujuan. Lawannya adalah rutinitas.
Manajemen adalah kegiatan mengatur / mengelola (batasan2). Aktivitasnya terdiri dari planning, organizing, action, controlling.
Jadi Manajemen Proyek Perangkat Lunak (MPPL) adalah aktivitas untuk planning, controlling dengan menggunakan resource yang ada untuk membuat perangkat lunak dalam jangka waktu tertentu untuk memenuhi kebutuhan.
Tujuan mempelajari MPPL adalah :
- Menentukan / mengukur lama suatu proyek
- Estimasi biaya proyek
- Feasibilitas teknis dan ekonomis
- Mengelola / mengatur resource (SDM)
Input MPPL adalah pengetahuan yang diperlukan, seperti manajemen, Rekayasa Perangkat Lunak (RPL), software measurement.
