Facts of Software Engineering

  • The most important factor in software work is the quality of the programmers.
  • One of the two most common causes of runaway projects is unstable requirements.
  • Missing requirements are the hardest requirements errors to correct.
  • Design is a complex, iterative process. Initial design solutions are usually wrong and certainly not optimal.
  • Error removal is the most time-consuming phase of the lifecycle.
  • Rigorous inspections can remove up to 90 percent of errors before the first test case is run.
  • Maintenance typically consumes 40 to 80 percent of software costs. It is probably the most important software lifecycle phase
  • Understanding the existing product is the most difficult maintenance task.
  • Efficiency stems more from good design than good coding.


Via [Coding Horror]


SQL: Get Comma Seperated Values


Select @CSV = isnull(@TRX_REF + ‘,’,”) + seqID from table

Five Whys

The five whys is a question asking method used to explore the cause/effect relationships underlying a particular problem. Ultimately, the goal of applying the 5 Whys method is to determine a root cause of a defect or problem. The following example demonstrates the basic process:

  • My car will not start. (the problem)
  1. Why? – The battery is dead. (first why)
  2. Why? – The alternator is not functioning. (second why)
  3. Why? – The alternator belt has broken. (third why)
  4. Why? – The alternator belt was well beyond its useful service life and has never been replaced. (fourth why)
  5. Why? – I have not been maintaining my car according to the recommended service schedule. (fifth why, root cause)


The questioning for this example could be taken further to a sixth, seventh, or even greater level. This would be legitimate, as the five in five whys is not gospel; rather, it is postulated that five iterations of asking why is generally sufficient to get to a root cause. The real key is to encourage the troubleshooter to avoid assumptions and logic traps and instead to trace the chain of causality in direct increments from the effect through any layers of abstraction to a root cause that still has some connection to the original problem.

The technique was originally developed by Sakichi Toyoda and was later used within Toyota Motor Corporation during the evolution of their manufacturing methodologies.


via Wikipedia

Calling webservice from SQL 2000

 Sending  XML data over HTTP to a web service, using XMLHTTP object


The secret ingredient of a successful company

Almost all organizations in the world are started on two basic premises.

1) To change the world and

2) to make lots of money and create wealth for its founders and shareholders.


…A company is a group of people, working towards a common goal.

…And as with everything human, it takes time to build up that team, that sense of belonging and that commitment towards a goal. Some of the worlds (and Pakistans) leading organizations are those whose people are committed to it, and not thinking of their jobs as a means to earn a living.


Processes, tools, software’s… they are all there to support an organization’s growth. To aid it, not dictate it. Yes, they aid it well. In fact, so well that sometimes we place them above the people until we learn yet another expensive lesson. “A tool is only as good as the person who uses it”


via [Green&White]