• Home
  • Contact Me
  • About Me
  • Resources
  • Favorites
  • Earn Money

Saturday, August 30, 2008

Software Development Methodologies: A Practical Approach

In this article I would like to discuss about some of the most frequently used software development models. These are Waterfall model, Iterative Model and Agile Methodology. I have experience of working in all these models ; so like to share some of my view points. Before that let me quote you the definitions of those models.


Waterfall: Wikipedia defines waterfall model as

" A sequential software development model (a process for the creation of software) in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance. "

Iterative: Wikipedia defines Iterative model as

" A cyclic software development process developed in response to the weaknesses of the waterfall model. It is an essential part of the Rational Unified Process, the Dynamic Systems Development Method, Extreme Programming and generally the agile software development frameworks. "

Agile: Wikipedia defines waterfall model as

" A group of software development methodologies that promotes development iterations, open collaboration, and process adaptability throughout the life-cycle of the project. It chooses to get things do things in small increments, with minimal
planning, rather than plan at length. This helps to minimize the overall risk,
and allows the project to adapt to changes more quickly. "

All the above methodologies are widely accepted. However these models has its own pros and cons.

The success of any software is mostly depend on the type of development model we select. Waterfall model is better suited for those softwares where requirements remain constant. If we expect requirement changes during the developement of the software, it is very difficult to inject those changes in water fall model. For example if the software is in UAT phase and demand some changes in the requirement then all artifacts need to change. Also overall risk in terms of cost, effort and time will scale up many folds. This may even lead to change in design which will eventually effect the developement phase.

Now how to deal with those sudden changes in the software with minimal cost and effort. Iterative and Agile models is targetting to solve these uncertainities with small time slice and minimal planning. Both iterative and agile model pass through entire software developement phase in each iteration. While in iterative model usually each iteration measured in months, agile model is measured in weeks.

Summary of these models:

Waterfall: No requirement changes

Iterative: Probability of Medium to less requirement changes

Agile: Requirement Changes

Regards

Monu


Tuesday, August 12, 2008

Power Builder to Web Application Migration

Power builder is a client/server application development tool. It is relatively simpler to develop complex application with power builder. Due to easy to access web application and other reasons, companies are fast migrating to web application version using various languages like java/j2ee, php, .net so on and forth.

Re-platforming of power builder (PB) version of application to web application is NOT easy. Care has to be taken with proper design and prototyping. I have tried to list down a few points which might be helpful.

  1. Single most important factor is designing. Designer has to understand the current features and implementation of the application. Also he/she has to be able to visualize the web application version and how to implement those features. Designer should try to keep user experience same as PB application. ALL SIMPLE POWER BUILDER features are actually complex when realizing in web application.
  2. Prototyping is useful in visualizing the converted version of PB application. This is the best time to make changes as per client request. Also do not forget to take an approval from end user. Prototype is the best way to convey the user about the changes from PB. Also convinced them with simple to understand explanation.
  3. Displaying list of records in the browser is the toughest job in migration project like this. PB can retrieve thousands of rows within a fraction of second while web application can not show these many records with same amount of time. Try to display minimum number of records with pagination. You may need to convince the user for that.
  4. PB has an excellent and powerful concepts called data window. You can do anything and everything using Data Window. I doubt any programming language will have something like data window. So pay special attention to data window and extract all the properties pertaining to it. Take a close look at the sorting, column properties etc.
  5. Finally compare the data being shown in both the version of application including default sort order, masking of fields, coloring etc.

I will be happy if readers can increase this list with there experience and skill. Comments are welcome.

Regards
Monu




Tuesday, August 5, 2008

How to resume ssh after installing IBM RBDe 7.1 in Linux OS

Recently I have installed IBM RBDe 7.1 in Linux OS. It has installed and running successfully. However remote connection to the linux system STOP working. Usually we use Secure Shell (ssh) to connect from windows/other os to connect to Linux machine. ssh uses port 22 by default. When I installed RBDe 7.1 I was unable to connect to Linux from windows through ssh. This is probably because while installing RBDe it set some rules or some other manipulation to iptables. To resume remote connection, open a terminal in Linux then enter the command iptables -F.

From man iptables:
iptables - administration tool for IPv4 packet filtering and NAT
-F, --flush [chain]
Flush the selected chain (all the chains in the table if none is given). This is equivalent to deleting all the rules one by one.