Why Software fails

EDGE: You emigrated from Russia in the mid ’90s. How did you end up in Canada?

Passova: I had sent a number of promotional materials to the United States and Canada. From Canada, I got a programming project, worth about $1,000, which then led to another project.

After Perestroika,

(there were) lots of problems. I decided to seek opportunities to live here. I got permission to come. I got a job at a computer centre.

I came here, so proud of myself, but that first night, it was me, my husband, my son and my friend, but (we had) no place to sleep. So I slept on a floor.

I lived for four months like this before we were able to rent an apartment.

EDGE: So you came with nothing, except your knowledge.

PASSOVA: My first interview, I was told I was overqualified. But later, some guy tried to help me. I’ll never forget what he did for me. He said, (come to) work for me tomorrow at a (training centre). There I taught students to do testing — engineers, doctors, lawyers, cleaning ladies — I took people from different backgrounds and I trained them for three or fourth months.

As a result of this course, they could find jobs from $40 to $50 to $60 an hour, and I trained 500 students. And now they work for many companies in Toronto, in the U.S.

After that, I worked for an aerospace firm, Bank of Montreal, Sun Life, all very interesting projects. As a result of this practical work, I understood that there are huge problems in how software is developed.

EDGE: The company and the industry don’t matter — everybody has the same problems?

PASSOVA: Absolutely. But the problems are not in testing, it’s in requirements. How can you test if you don’t know the requirements? We need to have some expectations. The software works perfectly but does not meet customer requirements. And so I started to work in the area of requirements, a tool to help you have good requirements, and to help you communicate these requirements to IT people. But then, (I later realized) the problem is not requirements because (that) is not the first stage.

EDGE: So if it’s not testing, and not the requirements, then what is the problem?

PASSOVA: The problem is we don’t know ourselves what we would like and how to express this somehow. We have many, many thoughts all at the same time, and, until we express these thoughts, we don’t know what we would like.

For example, I’m a customer, I want a nice home — please make me a nice home. But for you a nice home, and for me a nice home, it is a completely different concept.

When I say “”nice home”” to express what I want, (and) it doesn’t work, I say, ‘I don’t want this home.’ We build it again and again and again.

EDGE: So it sounds like most of the problems are in the stage of talking about it?

PASSOVA: You are the customer and you would like to develop something. But there are many complex business processes and so many other customers. Before you even come to IT, you need to understand your business, what it is and how to make it better. After that, you can articulate requirements. For business, these requirements become output and for IT, these requirements are input, but you may not even know what you would like to have before you express these requirements.

EDGE: Is it as simple as having a good conversation in the beginning or putting your thoughts into a document? How basic are we getting here?

PASSOVA: The problem is still we have different conceptual goals, and through simple conversation, we may never even get to understand each other. We offer a platform that says, ‘You are the customer, I am the business analyst.’ From any description (you give me), I can develop something I can demonstrate to you.

You explain to me your idea, I give you feedback. But you don’t want to see my diagrams, you are busy with your business. Basically, what we are saying, everything is taken in the beginning and it comes out in different formats.

If I’m in IT, I can see flow charts.

If you’re in business you can actually visualize how the application works in the real world.

EDGE: Then I can tell you what I do like, and what I don’t like, and what needs to be modified. What if a customer requirement, for example, needs to be added later?

PASSOVA: Every time it is changed, it is changed in all dynamics. IT sees the changes, operations see the changes and you see the changes. And they are made in real-time so everybody agrees, ‘This is what we are building.’ It could be a car we are building, or a banking application, everybody sees it.

EDGE: You are advocating that with the right development platform, you should also be able to overcome this basic human failure to communicate.

PASSOVA: The problem is miscommunications. People don’t understand each other. For everybody, words have different meanings.

As soon you explain to a developer what he has to do, he only takes part of it. It’s the same with business analyst — he will only take some part of it. Same thing when the customer talks to the business analyst, they will only be able to express part of what they want.

There is a lot of misunderstanding because there are all different types of people involved in IT.

EDGE: How would you classify this? A new methodology?

PASSOVA: A new paradigm. You can talk about any (software development) method out there, it supports it. It was tuned for the customer who only wants to express himself much more easily.

A customer does not want to see models or look at a bunch of diagrams, but if you can show how the application works, and then simulate it, you can easily check it.

Would you recommend this article?


Thanks for taking the time to let us know what you think of this article!
We'd love to hear your opinion about this or any other story you read in our publication.

Jim Love, Chief Content Officer, IT World Canada

Featured Download

Previous articlePouring in efficiency
Next articleThe Art of Intrusion

Related Tech News

Get ITBusiness Delivered

Our experienced team of journalists brings you engaging content targeted to IT professionals and line-of-business executives delivered directly to your inbox.