Smart working philosophy

smart2In the 1990s, software development was shaped by two major influences: internally, object-oriented programming replaced procedural programming and externally, the rise of the Internet and the dot-com boom emphasised speed-to-market and company growth as competitive business factors. Rapidly changing requirements demanded shorter product life cycles and often were often incompatible with traditional software development methods.

The problem with previous methodologies was that applications took so long to build that requirements had changed before the system was complete, often resulting in unusable systems.

Agile software development is a conceptual framework for software engineering projects. Most agile software development methods attempt to minimise risk by developing software in short time boxes, which typically last one to four weeks. Each time box is like a miniature software project of its own, including all the necessary tasks to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation. Agile methods also emphasise working software as the primary measure of progress.

Principles behind agile methods

In 2001, prominent figures in the field of agile development created the Agile Manifesto, denoting ways of creating software in a lighter, faster, more people-centric manner.

Some of the principles behind the Agile Manifesto are:

  • Customer satisfaction with rapid, continuous delivery of useful software
  • Delivering working software frequently (weeks rather than months)
  • Working software is the principal measure of progress
  • Even late changes in requirements are welcomed
  • Close, daily, cooperation between business people and developers
  • Face-to-face conversation is the best form of communication
  • Projects are built around motivated, trustworthy individuals
  • Continuous attention to technical excellence and good design
  • Simplicity
  • Self-organising teams
  • Regular adaptation to changing circumstances

In developing software and systems, Farsoft embraces many principles of agile software development methodologies, especially Extreme Programming (XP) and Rapid Application Development (RAD).

As with other agile methodologies, Extreme Programming differs from traditional methodologies primarily in placing a higher value on adaptability than on predictability. Proponents of extreme programming view changing requirements as a constant in software development projects. They believe that being able to adapt to different requirements at any point during the project life is a more realistic and better approach than attempting to define all requirements at the beginning of a project and then expending effort to control changes to the requirements.

Quality, as defined by Rapid Application Development, is both the degree to which a delivered application meets the user needs, as well as the degree to which a delivered system has low maintenance costs. RAD increases quality through involving the user in the analysis and design stages.

Extreme Programming sets out to lower the cost of change by introducing basic values, principles and practices. By applying Extreme Programming, a system development project should be more flexible to changes.

Extracts from was used as the major source of information to compile this article.