Sunday, May 08, 2016

Information Architecture

Information Architecture adalah suatu multidisiplin yang berbasis ilmu komputer dalam menyusun, melabelkan, menghubungkan dan mencari informasi. Terdapat buku acuan yang sering dipanggil dengan nama buku Polar Bear dengan judul sebenarnya Information Architecture in WWW karya Rosenfield dan Morville.

Sunday, April 25, 2010

How to select software development methodology

Software development process, “a framework for applying software engineering practices” [1], can be classified into plan-driven or traditional software development and agile software development. The former [2] [3] [4] emphasizes stability, repeatability and predictability, a defined incremental process, extensive documentation, up-front system architecture, detailed plans, risk management, verification and validation. In contrast, the latter process [2] [3] [4] [5] embraces and responds to changing environment and changes in user requirements. The initial success of software project is determined by selecting the appropriate software development process.

There is no single software development [6] that can solve all software projects. Selecting software development methodology can use [7] selection framework based on four underlying principles and two other factors affecting what methodology is appropriate to be used in software project. The four principles [7] are “A larger group needs a larger methodology”, “A more critical system; one whose undetected defects will produce more damage; needs more publicly visible correctness (greater density) in its construction”, “ A relatively small increase in methodology size or density adds a relatively large amount to the project cost”, The most effective form of communication (for transmitting ideas) is interactive and face-to-face, as at a whiteboard”. The combination of four principles in selecting software development methodology will determine the size of formed software development organization. Mapping environment and organisation of the project to agile and plan-driven home ground [8] [9] makes selection of software development methodology adaptive to its internal and external factors in order to address software project risk.

Reference
[1] R. Ramsin and R.F. Paige, “Process-centered review of object oriented software development methodologies,” ACM Comput. Surv., vol. 40, 2008, pp. 1-89.
[2] S. Nerur, R. Mahapatra, and G. Mangalaraj, “Challenges of migrating to agile methodologies,” Commun. ACM, vol. 48, 2005, pp. 72-78.
[3] M. Lindvall, V. Basili, B. Boehm, P. Costa, K. Dangle, F. Shull, R. Tesoriero, L. Williams, and M. Zelkowitz, “Empirical Findings in Agile Methods,” Extreme Programming and Agile Methods — XP/Agile Universe 2002, 2002, pp. 81-92.
[4] O. Salo and P. Abrahamsson, “An iterative improvement process for agile software development,” SOFTWARE PROCESS IMPROVEMENT AND PRACTICE in Wiley InterScience, 2006.
[5] T. Dybå and T. Dingsøyr, “Empirical studies of agile software development: A systematic review,” Information and Software Technology, vol. 50, Aug. 2008, pp. 833-859.
[6] F. Brooks, “No Silver Bullet Essence and Accidents of Software Engineering,” Computer, vol. 20, 1987, pp. 10-19.
[7] A. Cockburn, “Selecting a project's methodology,” Software, IEEE, vol. 17, 2000, pp. 64-71.
[8] B. Boehm and R. Turner, “Observations on balancing discipline and agility,” Proceedings of the Agile Development Conference, 2003. ADC 2003., 2003, pp. 32-39.
[9] B. Boehm and R. Turner, “Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods,” IEEE Computer Society, 2004, pp. 718-719.

Wednesday, January 06, 2010

Selecting the best Software Development Methodology

Understanding my research interest makes me to write and simplify ideas and concepts in my research areas.

One interesting area about software process is software development process.

Here is my note on selecting the best software development methodology. I am sorry i can not give complete reference in my citation because this is my progress report and i hope that i can publish it one day.


Let's start .....


Software development process, “a framework for applying software engineering practices(Ramsin & Paige 2008), can be classified into plan-driven or traditional software development and agile software development. The former (Nerur et al. 2005a) (Mikael Lindvall et al. 2002) (Nerur et al. 2005a)(Salo & Abrahamsson 2006) emphasizes stability, repeatability and predictability, a defined incremental process, extensive documentation, up-front system architecture, detailed plans, risk management, verification and validation. In contrast, the latter process (Dybå & Dingsøyr 2008) (Mikael Lindvall et al. 2002) (Nerur et al. 2005b) (Salo & Abrahamsson 2006) embraces and responds to changing environment and changes in user requirements. The initial success of software project is determined by selecting the correct software development process.


There is no single software development (Brooks 1987) that can solve all software projects. Selecting software development methodology can use (Cockburn 2000) selection framework based on four underlying principles and two other factors affecting what methodology is appropriate to be used in software project. Combined with mapping environment and organisation of the project to agile and plan-driven home ground (B. Boehm & R. Turner 2003) (Barry Boehm & Richard Turner 2004) makes selection of software development methodology adaptive to its internal and external factors to address software project risk.


In conclusion, recent research and reports state (Fuggetta 2000) that software development is a complex process because it is a joint, sophisticated and creative work so me wust consider people, organization, culture, technology, economic factors and procedures used in software development process (Fuggetta 2000).


Sunday, October 18, 2009

What is the relation between software process and business process

This is draft version so that this version has high possibility to be revised!
First of all, we must agree with the definition of each term. Software process [1] is a set of activities, methods, practices and transformations that people use to develop and maintain software and the associated product( e.g, project plans, design documents, code, test cases and user manuals).
A business process[2] or business method is a collection of related, structured activities or tasks that produce a specific service or product (serve a particular goal) for a particular customer or customers.
Organization that uses software whether it is either bespoke or off-the-shelf always needs to make some adjustments or tailoring between business process and software process. The adaption is needed because the two process have different characteristics and purposes. One example for this integration is in Rational Unified Process where there is Business Modeling workflow before Requirement which the first is business process activity and the latter is software process activity.

The integration between two processes forms a software project management. To make successful software project management, we must understand and resolve some questions about the relation between these processes :
The main question is : Are all of the integration between two processes resolved automatically when we tailor software process?
If the answer is 'no' that means we must find different point of view from the business process perspective as the impact of this integration so that we must find answers from these questions :
1. How do we tailor software process based on business process context?
2. What business process factors that must be considered and addressed before software process tailoring? Is it the same if we want to tailor agile software development?
3. Is there any business process tailoring into software process?
4. How can we know that successful software project come from the integration of business and software process?
5. What is the workflow of business and software process integration?

Reference : part of my research progress report and not published yet for confidential issues
[1] Process Tailoring and the Software Capability Maturity Model, Technical Report CMU/SEI
[2] http://en.wikipedia.org/wiki/Business_process
[3] A Systematic Review of Software Process Tailoring

Friday, August 28, 2009

Modeling : from Business Process to Software

What is so special on modeling? Why we often hear : business process modeling and also software modeling?
Before going to far, we must understand that modeling can be interpreted as simplication of real problem or we can say in other words abstraction because we emphasize on most important features than more detail features. It is not meaning that we dispel detail features, but we manage them in different perspectives. It is best recommended that we have many views so we can use them in various purposes.

The special ones about modelings are their functions.
First, they can reduce complexity from business or software complexity. It is related with how human can handle and memorize problems in the same time.
Second, they can increase our understanding on problems that we face. As our understanding increase, we can find many ideas to overcome them.
Lastly, they can be used as communication tool among all related stakeholders. Solving problems mean we need to communicate to our clients, our team and also our stakeholder. We need mean to do that and the model is the answer.

From software engineering perspective there are some questions in using models to help making software :
1. Do we need both business process and software modeling?
2. Can we use only business process modeling?
3. Is software modeling enough to product software without business process modeling?

Here are some of the answers :
1. We can use firstly Business Process Modeling Notation( BPMN, de-facto Business Process Modeling ) and than be integrated with Unified Modeling Language( UML, de-facto Software Engineering Modeling ). The problem is this approach is becoming uncommon, because nowadays, we can use BPEL instead of UML to make software.
2. It means we use BPMN and latter we use BPEL. I believe we have still face so many technical problems on formal and semantics completeness due of business process modeling.
3. We can extend UML to provide more on business process modeling, for example : using business use case model and extend activity diagram notation to model more detail on business process entities.

Ultimately, i believe this is not the end of our problem in modeling because modeling is not capture all aspect in problem domain and it is a nature that changing always happens in our problem domain. But for now, i have to move on other topic in software engineering.

Friday, August 14, 2009

How to make software from Business Process, a modeling perspective

A lite definition of model is a notation to simplify and make formal abstraction about real word system.

From business process view, business process model can be use to model business process complexity into activity entities and its dynamic flow. But the problem is not all business owners can draw this model using standard notation even though that they can describe and model it using free notation. The importance of modeling business process is can be used as an input to software engineering process. One of the standard widely used is Business Process Modeling Notation.

Software engineering in other side needs to model its complexity using different model than business process model. State of the art to model software is using UML. Even though UML can model system behavior using use case and activity diagram, this two diagrams are still in software perspective point of view. Both diagram is strongly related with actors using software and activities relating with computational processes.

It is reasonable that BPMN and UML can not be replaced each other in their use.
My question is can we find another way to make integration between business and software engineering process easier?

Thursday, June 18, 2009

Beasiswa LN DIkti untuk dosen PTS

Apa yang perlu ketahui dari beasiswa LN Dikti
( unleashed story especially for PTS lecturer )
1. Ikuti petunjuk dari web Ditnaga DIkti untuk masing-masing tahapan.
    Secara garis besar adalah :
    1. Pengumuman pemberitahuan adanya beasiswa, disana  akan diumumkan syarat2nya, untuk tahap ini penuhi saja syarat-syarat tsb.
    2. Panggilan untuk wawancara, anda akan dipanggil jika semua syarat terpenuhi, yang boleh kurang lengkap adalah : LoA( Letter of Acceptance ) kalo di Australia adalah Offer Letter, maksudnya boleh jika masih conditional( misal : kurang memenuhi syarat bahasa Inggris )
    3. Wawancara, jawab saja dengan aman dan khusus bagian membawa keluarga, jawab : "Ya, akan membawa keluarga jika saya sudah settle"
    4. Pengumuman penerimaan, penuhi saja prasyarat yang ada, namun ada juga yang tidak tertera di web ditnaga.dikti.go.id loh
2. Namun, ada yang tidak tertera di web Ditnaga....
   1. Biasanya pada saat wawancara, akan ditanyakan surat rekomendasi dari Kopertis, jawab saja : "Ya bu, akan disusulkan". Saran untuk  menyusulkannya nanti saja, pas kita dinyatakan diterima. Untuk surat ini, maka kita harus meminta surat pengantar dari Rektor bahwasanya kita diberikan tugas untuk belajar ke luar negeri dengan dana APBN ditjen Dikti, jangan lupa juga syarat2 sbb utk Kopertis : pengumuman penerimaan kita di beasiswa Dikti, Toefl ITP/IELSTS/iBT, FC JFA, FC SK Yayasana, LoA, Surat Tugas Belajar( dikeluarkan Rektor )
  2. Nah ini yang bahkan universitas/institut negeri yang besar2 pun tidak tahu adalah Surat Permintaan Guarantee Letter dari Rektor ke Direktur Ditnaga Dikti.
  3. Pengumuman penanda tanganan kontrak beasiswa( sampai saat ini belum ada kabarnya ).
  4. DIPA Dikti utk beasiswa baru turun bulan Agustus( satunya lagi tidak hapal bulannya, namun 6 bulan sekali ). Sehingga semua pendanaan baru akan diberikan oleh Dikti setelah Agustus( kemungkinan besar terlambat ). Hal ini pasti akan mendatangkan masalah bagi karyasiswa yang harus memulai perkuliahan sebelum Agustus.

Permasalahan yang ada
Terkait dengan turunya DIPA Dikti yang baru Agustus, maka yang bisa dilakukan karyasiswa adalah mencari pendanaan untuk memenuhi segala persiapan dan administrasi untuk perkuliahan dari tuition fee, asuransi kesehatan, living cost+settlement allowance( untungnya tiket pesawat bisa dibayar Dikti asal brangkatnya Agustus ). Berdasar pengalaman rekan-rekan di Unpad, pihak Unpad menalangi dahulu dana tersebut.
Terakhir semoga IT Telkom dan YPT dapat memberikan bantuan kepada dosen-dosennya untuk bersekolah ke Luar Negeri.
Dan semoga tahun depan dan seterusnya, beasiswa LN Dikti masih tetap ada ya bu Istri( Direktur SDM Ditnaga Dikti ) walaupun utk S3 saja.