Eight Effective Habits For Successful IT Projects

ravi.jpgRavi Verma, Chief Executive Officer

IT projects have an astounding rate of failure. Even the kindest statistics put the failure rate at over 90%.  In contrast to this, Telecommand has a high success rate for projects. In this article, I will share with you the secret behind Telecommand's consistent success in developing software.

We at Telecommand used to ascribe our success to wonderful customers, simple projects or sheer luck. But over time, we have outlined the difference between our approach and that of others and established our "Eight effective Habits for Successful IT Projects."

The overriding reason for our success has been our diligence in following established best practices. These are not a secret. They can be found in books.  Yet, many prefer to reinvent their processes or learn by trial and error.  While this may be a good exercise for the brain, it leads to inconsistency and inefficiency. So what have these books combined with twenty years of experience taught us? These are our Eight Habits that I consider crucial to success of any software development project.


Here are the details of each item listed above.

Get the right People

Edger W. Dijkstra, described by Wikipedia as one of the most influential members of computing science's founding generation, once said, “Programming is a human activity”.  In other words, the human factor is the most important factor affecting programming success. There are many engineering disciplines, which by virtue of existing for thousands of years, have such mature processes that people are less important. Construction engineers, for example, may be easily interchangeable on a given project, as long as they are informed and able to follow the standard processes. But computer technology is, of course, a nascent discipline accompanied by a perpetual explosion of new technologies. As a result, there is a shortage of skilled workers and identifying the few who are skilled is difficult. There are still few standard practices for interviewing qualified programmers.

Telecommand's answer has been to formalize a rigorous interview process, requiring applicants to demonstrate their abilities by actually creating a small, working application. The work is then reviewed by our top programmers to ensure that the applicant understands best practices and is current with the latest technologies. Because of the shortage of applicants who can meet these interview requirements, we invest continual energy in interviewing and recruiting across wide geographic areas. Until there is greater standardization and maturity in the software industry, project success will require this extravagant commitment to human resources.

Go back

Respect the business users

This is one of the most important things “right people” do.  Respecting people is a good thing in itself but in business it results in quality work. Frequently,  IT professionals take the lack of knowledge of technology among the business users as a sign of not knowing anything at all. They also assume that, because they understand the technology, they are all knowing. It is almost funny when you see IT professionals telling business users all about their business.  Instead of falling into this pattern, listen carefully to the business goals and help your customer realize them through technology. .

Go back

Ignore the architecture at your own peril

I have always been envious of the success rate in civil engineering. When we moved into our new facility, the builder had given us the date of moving six months prior. I was very skeptical of their ability to forecast the future so far ahead of time. But I was pleasantly surprised when we were able to move in on the date the builder had projected. That ability to accurately predict made me curious about how their processes and why IT projects were not as predictable. I found that the crucial difference was the emphasis on architecture in the field of construction and the lack of it in IT projects. People are not aware of the importance of architecture in software. The US Government and DOD have spent millions of dollars on resources at http://www.sei.cmu.edu/architecture/. Rational Unified Process vouches for architecture in no uncertain terms. However, the majority of  projects do not start with architecture perhaps because IT professionals they think it will be easier to just begin without planning. That leads to disaster in most cases. Let us always remember Barry Boehm .

“Marry your architecture in haste and you can repent in leisure”. - Barry Boehm .

Go back

Paint a lot of pictures

There is a saying that one pixel of picture is equivalent to one mega words. Telecommand's project documentations contain many pictures of data models, use case diagrams, activity diagrams etc. Pictures facilitate good decision making.

Go back

Adopt iterative development process such as RUP

The Waterfall Methodology of Software Development has been abused. Each project is supposed to have several waterfalls. Each of these waterfalls should have steps: requirement, analysis, design, development and testing. The new name for a waterfall is “iteration”. You will find a succinct definition of iterative development at

http://en.wikipedia.org/wiki/Iterative_and_incremental_development.

Iterative development reduces chances of failure significantly by revealing risks early in the project.

Go back

Test before you build

Iterative development is test driven. We joke that we test before we even build. Jokes aside, it is actually possible to test before you build. We test requirements and do a full walk through of other text artifacts such as design.

Go back

Never be afraid to deliver bad news

This is an important quality for each and every person who is involved with a software project. Because of the immaturity of software engineering as a discipline, it is hard to predict the milestones. Unforeseen risks surface frequently. People have the tendency of blaming themselves for both the variables which are in their control and the variables which are beyond their control. As a result, management remains in the dark about impending bad news until it is upon them. At Telecommand, we have trained our developers to spot and share bad news quickly. This has ensured that our customer's have an opportunity to participate whenever we have to change our course as a result of a risk. Whenever we are forced to revise the dates for milestones, we let our customers know instantly.

Go back

Learn to enjoy walk-throughs

It is human to cringe from criticism. It is also human to have the desire to do something once and then move on. Walk-throughs are contrary to both of these human tendencies. It invites criticism as a way to improve the process. Others are bound to suggest changes. Even the brightest and the most accomplished person can miss something. We must welcome early criticism.

Go back

Read and make your team members read

There are some people who buy food when there is money left after buying books. You do not have to be that extreme. But you must read books and articles about the latest in software development. To reiterate, software engineering as a discipline is in a nascent stage. There is an explosion of new development in this field. The only way to make sure that you are using the most suitable tools and technologies for development is through reading. If you are team member, you should take it upon yourself to read and stay current. If you are manager, you must make sure that your team members are encouraged read all the books and articles that you will make available for them.

Go back