Wednesday, April 4, 2007

Agile Software Development

Agile is an iterative and incremental (evolutionary) approach to software development
which is performed in a highly collaborative manner with "just enough" ceremony that
produces high quality software in a cost effective and timely manner which meets the
changing needs of its stakeholders.

I see most of the company are reluctant to adapt to Agile software development. This is
mainly because of lack of resource (skilled people) and without having proper project plan .
I believe if companies stick to Agile Software Development, they will succeed for sure.

For more...


Emerging Trends in IT

Present trend in Information Technology are Grid Computing and Service Oriented Architecture (SOA).

Grid computing uses technology related to cluster computing. Cluster computing is a tightly couple system with single image (combination of node under one roof) and centralized job management & scheduling system. But, Grid computing is loosely coupled system with distributed job management & scheduling system. Basically, grid computing is superset of distributed computing and it is a combination of many clusters or nodes under globe.

Service oriented architecture (SOA) is a collection of services which are inter connected. SOA facilitates development of modular business service that can be easily integrated and reused. It helps users build composite applications, which are applications that draw upon functionality from multiple sources within and beyond the enterprise to support horizontal business processes.

SOA is an evaluation of Grid Computing..........

Wednesday, March 28, 2007

Software Architecture.... What it is???

The internal design of software, enabling the software to exhibit a certain set of attributes (i.e. the "architectural requirements"). The Software Architecture must take into account the capabilities and limitations of all of the target Platforms (Hardware/Operating-System/Networking) on which the Software will be run. An attribute of the system can only be realized if the Software Architecture and the Platform both support it.


Attributes of systems are...
  • Availability - the assurance that a service/resource is always accessible
  • Scalability - the ability to support the required quality of service as the load increases
  • Reliability - the assurance of the integrity and consistency of the application and all of its transactions. The ability to provide a required reliability service level depends on the close coordination of the hardware, networking, operating system, storage subsystem, application framework, and application software.
  • Security - the ability to allow access to application functions and data to some users and deny them to others
  • Interoperability - the ability of the system to share data with external systems and interface to external systems.
  • Leveragability - the ability that stored data, programmed logic, and other system resources available anywhere in the enterprise should be accessible from everywhere in the enterprise
  • Maintainability - the ability to correct flaws in the existing functionality without impacting other components/systems
  • Extensibility - the ability to add/modify functionality without impacting existing functionality
  • Manageability - the ability to manage the system in order to ensure the continued health of a system with respect to scalability, reliability, availability, performance, and security.
  • Portability - the ability of the software to run on a variety of hardware and operating system configurations
  • Accessibility - the ability to access system functions through different user agents and in different human languages