 So, my idea here is that you know professor Kalkar is here who is who has been a practicing manager for quite some time, so with due permission from Mr. Kalkar with an assumption that he would be he would not be asking me two difficult questions and let me start. Now what I what I would like to first state is you know how what is the theory say theory says that you will have requirement analysis and then detailed analysis you will do design then you will do development and unit testing then you will do functional testing or integration testing or system testing all of them will integrate together and then you may do this in a waterfall life cycle model that is phase after phase you do the requirements you complete the requirements you do the analysis then you do the design then you do the development or alternatively you do it in iterative fashion you know you do a several phases of elaboration some of you must have been already experienced in RUP in RUP model you do in elaboration then you do second phase of elaboration phase 3 phase 4 etcetera. Now what I am going not going to talk about is what how do you do elaboration or what kind of a MS project tool would help you you know how do you draw a project plan using MS project that is not the intent of the presentation because I think that is theory what I would like to tell you is what happens when you actually do a project ok. Now what happens in reality is the first question that comes up is who is responsible for what I mean there is a lot of people mistake that project management is technology management it is technology management but it is not just technology management it is more people management it is more expectation management it is more of commercial management to be a successful project manager you have to have an extraordinary sense of commercials of how the projects work. So, first question that will be asked is who is responsible for what during the project execution when I say execution I am not limiting myself to either one phase or another phase any other phase who is responsible for what the second question is what is the right technology for the project. Now you normally say that whenever you make a project proposal when you are you respond to an RFP or whenever you have a business problem for which you are implementing a technical solution the natural tendency is at the level of a project winning everybody will commit the move you know we will say that we will use a web-based technology we will use J2EE we will use entire architecture to implement it and then when it actually comes to reality people it will strikes you as to what is the technology that you are going to use if you are you are you going to use for messaging MSQ series or you are going to use tipco or for example if you would you use an application server web sphere or weblogic or iplanet you know the choice of tools is so many and there is no real one solution to this problem. Now the question is that there are three things that are always everybody knows better than you one is finance because everybody in finance everybody the second guy always knows more about you than finance second is medicine also lot of people know medicine more than you you know more than doctors know because you know everybody has a cure for everybody else's disease and the third thing is system architecture so everybody knows better than any other person because it's easy to ask questions and very difficult to give answers if you say that look you know why did you choose Java and not .net you know you can only give one or two answers you know why not C sharp and why Java there is only one or two questions both are block structure languages both are these both are that but after some time the other guy will have one question for which you don't have an answer okay for example in real life banking systems that have distributed data processing and are used in Europe how many places .net has been used so you don't know the answer you know you don't know the answer so then why did you choose .net so they don't have answer to those questions so what is the right technology to be used the third thing is frequent changes to requirements and even architecture during development okay I'll expand on why it happens in architecture as we go along but frequent changes to requirements is something that is given because in a business domain we see that changes happen almost every six months I mean every six months is a minimum that you have to accept changes and large projects have a tendency to get into states where the business itself undergoes a change for example I was working on a investment banking firm in New York on what they call mortgage back securities mortgage back securities is when you when you take a loan on a house from HDFC kind of a bank the loan papers are amortized and issued as a security to people so that people will sell and buy those securities it works in a very different kind of fashion for example if you look at mortgage back securities whenever the interest rates go up people won't sell the homes whenever that means if interest rate goes up your security prices drop because nobody's interest in buying or selling the shares whenever interest rates drop people would like to cancel the current mortgage and go for the renew renewal of the market with the second form so that means there is a lot of tendency for the paper to go down and paper to go up with the result what gauge back securities almost follow reverse trend of what happens in the marketplace now we were working on a project of mass data maintenance and straight through processing system for one of the largest investment banks in the world and the project proposal was 5 million dollars you know about 94 95 5 million dollars was the value of the contract there was one transaction that hit the desks that costed a loss of about 40 million one transaction to the investment banking firm if a 40 million does loss happens to a single transaction because of some trader getting overboard there is no way that they will continue the project so the requirements have dramatically changed in that case because there was no project after one week because there was nobody to effort the project you know and the other thing is staffing does not happen at the right time it is a very different concept because you know what what you normally assume when you start a project is that you have a you are starting on 1st of October this project is going to run for 6 months 25 people 10 people 15 people 8 people 3 people then you have normally a an externally good Gaussian distribution curve of bell curve that going up and down you start with 5 people go to 30 and then gradually draw in reality what happens is it always happens in pulses you are with 2 people for about 2 months then it comes suddenly to 20 people then everybody will get released from the priority will get about 5 people okay now why does it happen it happens because that first of all there are several reasons one is the there is water water everywhere and no water to drink hundreds of people available in the market place but no good guy who can be employed on projects on a serious way the level of competence and skills required in the to execute an architecture to do a decent design you find it absolutely lacking in the current generation of crop of computer science and engineering students that are joining this they want to code one program design one system participate in the design one system be a project coordinator for the third and the fourth they want to become a CEO that is where the problem is you know and that's where we have the problem and the other thing that happens is when you say that you are designing a Java J2E based system so even if you know that you are building this base system that is purely based on Java suddenly you will find that when you get into the details the implementation of Java itself in that particular project has several flavors and people need experts in those flavors for example somebody uses struts when you are using struts if you don't use struts then if you know all about J2E if you have if you haven't programmed on struts before it almost becomes impossible for you to be accepted as that and suddenly the project had demand of 40 to 50 people and then you don't know the lowest level of a detail of a skill required for the project it almost becomes impossible to stop it at the appropriate time other thing is infrastructure I mean infrastructure we assume that it's given but in a large project that has dependencies quite a lot on the customer side they could be because you are accessing the existing systems because they could be because you are interfacing with the existing systems of the customer or because you are carrying out the system testing on the customer side in each of these things the first requirement is the connectivity okay now I don't know how many of you have worked on distributed delivery involved in delivery process that involves repositories and if you used a rational unified repository or if you used any repository that is used across to on a distributed scale where people from say US or Europe and India are all working on the same repository of use cases analysis design and development quite a only few of the repositories commercially available have a have a technology of a have a method of doing a delta update suppose if you have been working for 2 hours here in those days have been working for 4 hours there if you have to sync the repositories in real time the load that is required is very high so your your channel of network communication almost gets blocked because of this repository syncing because 100 people are working here 40 people are working there how well you sync the repositories how frequently do you do syncing of the repositories becomes major issue that's one part of the network communication the second part is the load set now what we are finding I think I will probably explain it to the the next slide a little more in detail is that when you are working on a development project especially on a web web based applications the kind of a load set that is needed on your PC to get the programmer working from Java virtual machine to some DLS from dynamic libraries you know it's almost a a set of checklist of things that have to be loaded on a on a workstation before it becomes a programmable workstation for a programmer and otherwise it's just a PC so you need to have this you need to have that let's you know some amount of Microsoft some amount of for example if you are using something like a documentum as part of your application for workflow or document flow those DLS those dynamic libraries everything has to be part of it so that you can link it and then execute the program so that becomes a huge set and creating this load set ultimately you find that when you created on their load set it cannot communicate with the customer machine because there is a version difference between what you loaded here and what you loaded there so by the time in a large project which is complex before you get the things right on the load set of a workstation or experiences it takes about two to three weeks because people will know everybody assume that nobody everybody has this but everybody in the customer environment has it they are never considered the fact that if you have to give something from Microsoft Windows version xx onwards in the highest load leveling library you have to give an entire set of software that have to be loaded on a workstation to make it productive so that's at times you find that you have actually a hundred programmers working on your project but actually 20 are only productive because other ATR figuring out has to how to configure their PCs to be able to make them productive and the last thing is this is a clear case of what happens in incremental delivery which is no like big bang approach of delivery is no longer considered to be appropriate in large development projects people say we'll deliver once in one month so you accept when you take two months so that everybody thinks that the risks are minimized but it works well it's are minimized if it doesn't work this are actually maximized so we'll go into the details little more now what I am say what what I want to go through in the next two three slides I am not going to read through each one of them software projects fail because not one certainly one of the reasons is not that people are working on it are incompetent okay there may be some amount of incompetence which we can't ignore but I like in any other industry but essentially software products fail in spite of the best efforts I just gave you a list of for everything that you think that I have presented these details I just gave a live list of assumptions that the private manager has put when he signed the fixed price contract with the customer now everybody wants a fixed price contract in this world right so because nobody wants to have a time and material deal when you somebody would like to pay you know you expect the customer to pay for your own inefficiencies so they would like to have a fixed price contract so if you give a fixed price contract you give lot of assumptions to cover your backside as to what you what could go wrong okay you are protecting yourself saying that if this were to go wrong I am not responsible you are responsible you put all these things but still in reality it doesn't happen that just look at some of the requirement require the assumption that the customer the product manager has put here look at the 1 2 3 4th one final deliverables will be approved via written sign off from the appropriate customer product sponsor or designated customer product team member any deviations from an approval deliverable approved deliverable may result in a change request so this guy has completely covered himself saying that you know I'm submitting something you are signing off if you change the sign off look I'll change you say I'll raise a change request and you have to pay for more for that okay another thing that he's saying is any work product or deliverable presented to the customer must be reviewed within five days the customer does not raise inequalities with a five days period the deliverables are deemed to be accepted so we say that look you know you submitted something you accept you know you say that you don't say anything for example you delivered a design document or you delivered a set of logical programs for acceptance for any reason if you have not done anything we consider as accepted okay now it will be a great exercise for you for some of you are in IT course just take a development project and write the assumptions if you are as a product manager what kind of assumptions would you like to write you know say that no it is from requirement definition to implementation you can take it from analysis to implementation you can take to design to implementation you can also assume that the design has been completed you are just responsible for coding and unit testing right so sit back and then try to let list write down the assumptions that would be needed to execute the project it will be one of the greatest exercise of commercial software management that you can do writing the assumptions and deliverables so rest all is detailed in a project first of all you write the assumptions second you write the deliverables what is that you are going to deliver content and what is the what how is that you are going to deliver the format content and format of the deliverables and assumptions is the most important thing in a software product management this is one list of assumptions that he has done on project management on development and testing this is a project where use cases are already done the gentleman says use cases provide provide or complete unambiguous and accurate so in reality you will find that none of them is actually true they are neither complete nor accurate nor unambiguous and the other thing is during integration testing the vendor vendor will have access to test systems and test regions as applicable because a lot of customers who are working in an offshoring mode especially with countries like India have a tendency to assume that the software will be thrown from the window beyond this wall and they get up one day morning on September 11th or 12th depending on the date they will have a working system that they can log on and then work very few people actually estimate the nature of a work that need to be done from the customer side to get this offshore work going in terms of their ability to work late nights their ability to create the test environments production environments multiple database because in India you know we had several experiences where some of my team members regularly used to bring down the CICS and DB2 systems in the production now the thing that customers don't understand is in India we have lot of talent but lot of talent is raw and if you some of you have worked on large mainframe systems and large commercial systems would realize that if you at least it used to happen quite a lot in previous world that if you don't program it appropriately it can bring down the system software components now if by any chance you created only a database image for your test but the DB2 or the database version that database that is running is identical for across your test production development the moment you have a very innovative programmer who doesn't know how to program is going to bring down your production database also because no user will be able to log on and then be able to work these kinds of a thing that happens so during integration testing the vendor will have access to test systems and test regions as applicable so we say that we assume it's a very innocuous statement we think that we are covering ourselves what it means is look at this statement it's the intent of it is sometimes not to say what you need to say directly what this guy saying is if you are the customer is in United States if I am working in my daytime in India if there is any test region problem that is happening I am expecting your systems software programmer to be available in your night time to fix the problem so that the system is not available continues to be available to me that's never said here he says test regions and integration testing the vendor will have access to test systems and test regions as applicable but probably you should have clearly stated that the test regions are test times test systems are assumed to be available to the users to the developers from 8 o'clock in the morning to 7 o'clock in the night Indian standard time which is 10 30 in the night to you know whatever time in the night in the morning in United States and we are expecting a programmer or a system programmer to be available 24 by 7 to solve this problem for us we don't state this because it's a it a sales cycle it's very difficult to state these parameters because you know you're afraid that you'll get disqualified but when it comes to actual implementation all all unreasonable progress in software has been made all probably all the decent progress in software engineering has been made by sales people who are unreasonable because they don't know what they're committing they commit and then you have to deliver okay some of these guys make this statement and then I get away with it because the deal is booked and then the revenue is done bonus obtained so now you are left with the baby and here we are saying all of you know what a UAT stands for some of you anybody who doesn't know what a UAT is user acceptance testing planning and execution will be a responsibility of the customer okay and here again on the deployment of infrastructure again he has given a set of assumptions during acceptance period all dependent applications interface are up and running okay if not the vendor will not have will not be held accountable for the downtime any unnecessary downtime may result in the change request now you can imagine how complex it is in terms of product management what you're saying is your develop you have done your development you've done your testing you've done your integration testing now it has come to the stage of interface testing now this system has interfaces to your financial system your materials management system your production planning system your payroll system whatever those systems are and as part of your integration testing you have to ensure that everything that is expected by the receiving systems is being provided everything that's coming from the sending system is actually in the order and format that you want them this is what you do as part of your integration testing now the thing is at some point of time their payroll system their financial system is out now how are you going to quantify that n number of people or x number of people are actually waiting and doing nothing just because their production system is down so the customer the first question that customer will ask is no no no probably they should have done the next phase of testing probably they should have done user access though usability testing probably they should have done load testing there probably they should have done stress testing now it becomes a huge exercise now the problem that we have is the set of people who are doing integration testing for x module just because the system is down cannot be redeployed to do the stress testing for y module because the competencies are extremely different now you cannot go back and then say but look boss you know what I have is BTEC fresh okay with lot of difficulty they are able to do one testing so how can I just transfer them to load testing you know the you cannot you cannot make this comment so you are stuck with the question of arguing counter arguing arguing counter arguing so these are the issues that you know project management if you have competent programmers with seven years of programming experience in your assembly java j2e and oracular sequel and if all the programmers are competent probably you don't need a project manager if users are competent if programmers are competent product manager duty will only be to collect checks but ideal duty will be very very different when it happens okay and here also a network connection between the customer and vendor will be established in the first month of the project it used to be a major exercise earlier okay it used to take three months four months now it doesn't but the problem is it's not very easy because especially if you work with healthcare firms if you with with financial service institutions the nature of firewalls that they have to be able to do anything decent in them is going to take enormous amount of time because they want to they first of all they would like to say that they would like to create a private land in your department for the first thing that reason only those people who are working on this project should have an access to my network the second thing is while they are accessing the network they should not have any other access because their land should not be connected to the company land now which means that they if they can't access the company land they can't get any messages even from the CEO if there's a fire in the company and their system says that you get down because there's a surgeon and then you can go at 3 o'clock that may say has to be physically communicated to them because they are not on the land and similar issues against on the customer side too so these issues will take a lot of time to resolve now having done all these things still the project can get into problems let's see what kind of a problems I just presented an architecture not that it is a right architecture or wrong architecture but just to give you an impression as to what kind of things are existing in the company in a for example we have an internal user who works on a PC you could be working on a one version of operating system one version of the browser then you have a van you have a HTTP server which is going to the UPS application and then UPS is one of the application that we talked not uninterrupted power supply okay then there is a security server then there is a directory marker server then there is a database and there are some connectivities and API that go to people soft in a typical environment of an architecture when you build something by the time somebody who is here user is accessing somebody some data that is here there are probably about 11 pieces of software that exist between this and this okay you take operating system you take workflow systems you take security servers you take up no transaction process you take messaging services you take application servers and your own layers of how you build the architecture so there is about 11 layers that happen between here and here now the catch is if anything changes your system is in question because just because you use something doesn't mean that doesn't undergo a change for example if web sphere comes with the new version of the software then everything that you have done may or may not really hold good if not in terms of functionality but in terms of efficiency I remember there was one project that we did on a motor financing system for one of the largest one of the large financing companies in the world when we build the system we said that the application integrity will be maintained by committed the database level okay so that was come that was committed and then we said that no database commits will be done for a logical transaction we will do that but during the course of the project it was it was found that we had to get an application server to maintain the performance throughputs of the system which was application server as web sphere and then the architect and the designer found out that it is it is possible to implement a logical committed the application server level and not at the database level it's far far more easier if you do it at a web sphere level as a post oracle level because you are you are in control of the programmer level it's more transparent this entire system was done and it was put into production and the customers architects found out at the time of rolling into the production that you moved the logical commit from a database level to application server level they rejected the application there's nothing wrong virtually in what has been done it is technically correct it is detailed the customer said you didn't take my approval so this this point will be negotiated how to write off X number of change management request amount because ultimately I think all of us should realize that you know a project management is a business proposition you are in that to make maximum money for your company and the customer is in that to get the system with the least expense to him if you don't understand this dynamics then you will see that you know it's only technology project so the first thing that he will say is no but I didn't I didn't do that so no no no but you know that you to change this how logical commit from application server back to the database is going to take X number of effort X number of months odd stage schedules will be delayed you will be penalized for that and all your programs will become totally unreadable because of the fact that you are taking it out boss forgive me I have not taken the permission so what do I do now so right off these 350,000 dollar change management request no otherwise you know system doesn't go into production it's a very simple very tough negotiation that happens in a commercial environment so what is the right technology for the project you know there is no real answer and I think it's like saying you know who is very beautiful they are all very perceptive statements what's the right technology for a project it's available should satisfy the functional requirements satisfy the look and feel scalability stability proven architectures maintenance possibility support of the customer number of installations you can have any number of parameters on which you evaluate and ultimately it will come to cost also because you know somebody has to pay for that how much is going to cost and there are software that come almost almost free and why why is not Linux as popular as Microsoft even though it's a free software because you know people have a tendency to believe that if I have a problem in Linux who's going to fix it for me if I put it into production now I'll tell you one example as to how we judged three kinds of a software one is on a business component and there is on user interface communication and the third was user interface presentation now the parameters on which it was just was functional requirements look and feel how functionality is accessed is it stable how easy to extend the services what kind of a support is available and do we have the source code or not okay and overall how do you rate it so each of these parameters is rated on 1 2 5 about 7 to 8 parameters and we say that it's a full circle it's a perfect fit okay as shown here it's an empty circle it say completely no fit so this is a standard way of four quadrants any consultant would do any assessment to say that so we are saying that you know Winfx is not appropriate in the situation whereas CG framework that was probably appropriately developed by us is the most appropriate for as far as UI communication at less is right but Ajax in logistics is probably not appropriate again if you look at UI presentation we are saying we have to go either with Ajax or smart client or ASP.net okay so this is how you present a because at some point of time there will be a question about why you chose what you chose and if you are an architect for a system it is your responsibility to guarantee that those questions are appropriately answered ahead of time rather than during the course of the project frequent changes requirements architecture and development okay now I long time ago in 1987 or 88 there was a project that was there is an RFP that was issued from a Gulf country and it said that you would like to build a system for Ministry of Finance okay Ministry of Finance needs a system to do account receivable accounts payable and all that kind of stuff so some 10 programmers you know some just come coming from abroad or those who are waiting for projects all those 10 people are bonded together and then asked to make an estimate the best estimate everybody made you know 1988-89 software nobody used to pay and then dollar was about 7.5 Indian rupees so we came up with a estimate of 1 crore it was I think you know Kalkar was also there in those times in that company that I'm talking about okay so Ministry of Finance the proposal was submitted and what we thought when we made the entire proposal was this proposal for finance was a Ministry of Finance in the government so what we realized at the side the because it was a global tender we made a tender and then we made a proposal of about 1 crore or 1 2 crores what they said was Ministry of Finance for the country of that so many finance department for the country wanted to do the entire thing so from a department the scope increase to the country okay and we made a quotation of 1 crore okay and they said you are the least bidder you are awarded the project okay so you can imagine the kind of a conflict that happens you know and naturally you know the tucks have to be put at the highest level to tell them that the bus we made a mistake so we can do still do that but one core is too low it is out of 10 crores 15 crores those kinds of things had to happen the second thing is when you are estimate one of the things that you do is that you know normally any estimate has a simple medium complex and then there is a extremely dangerous thing called very complex okay so you say that simple program will take a weeks medium program will take two weeks complex program will take four weeks use case you call it you know use case you call it program you call it method you call it whatever that case so this 4 weeks you know we will go to 6 weeks or 8 weeks now it comes to very complex it is almost impossible to put more than 16 weeks there because psychologically how can you put anything more than twice than a very complex one but now you realize when you put a estimate of 16 weeks or 8 weeks or 12 weeks for something very complex so very complex will be something like that you know guaranteeing workflow between all the transactions from end to end okay so you do the here there and then talk to one or two people and then say put very complex and put 16 weeks you know that will be a system by itself a very complex can turn out to be 20 complex as opposed to 2 complex so at any point of time if you see an estimate which says very complex 1 and 8 weeks for that are 80 weeks for that the first thing is to reject it because you know there is nothing like very complex very complex means it could be a system or it could be complex place one day okay so those can be extraordinarily judgmental things that can send their entire project profitability down south of course business need change to the customer requirements are not clearly defined elaborated and all of you must have seen that standard diagram as people where a customer wanted a jeweler a swing what seems of getting is a noose around his neck okay and change in management to the customer and change in the lead architect now this is a extremely dangerous thing because there is nothing to do with you or him nothing to with the vendor nothing to the technology large come companies have this mergers and acquisitions a company gets acquired and let us say you are building a sales order processing system for x company and that company gets acquired by another company first of all that because depending on who is the boss you know because in there is no merger people talk mergers and acquisitions there is only acquisition there is no merger because merger means there is equals there is always a unwritten law who is the boss even in a marriage or a acquisition so there is an acquirer and there is an acquired so very clear definition so even you say merger very clearly there is somebody who is getting merged with okay that guy who is getting merged with does not have too much of a choice about what software is being used so if the acquirer has a sales order processing system that is good or bad or ugly the acquirer people have normally a color up tendency so they would like to say no we are not going to change anything for the acquired company so just use this if you are doing work for the acquired company then all your systems all your efforts will go for a toss okay that's an extreme example but the CIOs change CIOs normally have a life cycle a shelf life of about 3 years more than 3 years you are doing something externally wrong because you need to get fired after 3 years you know personal people and CIOs need to get fired every 3 years otherwise you are not keeping pace with technology and this guy is there and the new CIO comes in he may not like you know Microsoft you know for whatever is the reason or he may not like son you may not like IBM because he has not been treated well in the last meeting business meeting or his dinner table was not a dissent to Steve bomber it doesn't have to be anything remotely connected to technical you know so entire thing goes for a change so you got to redefine entire priorities and then go back and then redefine the requirements of course I don't have to elaborate on what is the drawback of the frequent changes okay so how do you do this you know one of the things that people make a mistake is this when you get into business and when you get into software business especially with the western customer you have to have a phenomenal ability to deal with unpleasantness okay so it's a it's a characteristic that you have to build okay because you know let's say that there's a change request you know there's a you raise a change request for 150 days is what you have spent you want money for 150 days multiplied by say 25 dollars an hour 25 multiplied by 200 multiplied by hundred thirty thousand dollars is what you have raised what you want to raise the invoice for now three or four things happen okay one is that you have to ask for money okay whenever you ask for money lot of Indians have the tendency to believe that you are actually asking for a favor I mean if there's a tendency that you are like a beggar five you know why should I ask my money you know what is this my CAO should ask my CEO should ask you know CAO CEOs don't ask for money they have to we have to maintain the relationship if we become the bad boys who will be the good boy yeah I think lot of people don't realize this that you know what is that guy doing in the cabin he should ask for money my my work is technology okay technology is not your work getting money for your work is what your work is thirty thousand dollars so first of all you don't want to ask me second thing is you're extremely worried that if I ask for money and then be tough with him you will screw my happiness as the day goes around pride is not going to end today right it is going to run for six months nine months twelve months this guy is going to make my life miserable okay so why pick up this unpleasantness now let's be nice to him but nice to him means you are going to lose money so there is no there is a we say in business there are three three triangle three sides of a triangle the first corner of a triangle is customer second corner of a triangle is a shareholder third corner of a triangle is an employee you can always make one of them extremely happy if you can make your customers happy by not charging him anything okay your shareholders will be extremely unhappy okay if you charge a lot to a customer okay to deliver something and then keep your shareholders employees happy customer is going to be extremely unhappy okay so the entire management that we do on a day-to-day basis is to balance these three sides of the triangle how do you compromise how do you make it strike a balance between a customer and employee in the shareholder okay dealing with unpleasantness is a trait that all of us have to develop I think you know that am I if I if I learned something over the past few years in a multinational company is the ability to deal with unpleasantness and not give up because you don't and the tendency is you know after a after drags on after issue drags on for few weeks and few months somehow settle it and go on with the life when there is no somehow settlement you know in every settlement there is a winner there is a loser okay and it's your duty to be on the winning side okay you have to struggle as hard as and there is nothing like greed greed is okay it is sometimes good okay so you have to struggle to make that money and the third thing that lot of people make a make an assumption is that status report is sent okay first of all you know when you say that look you know but you said that you know if you do this kind of a change now it's going to cost as 100 days for detail the customer yes I told told him when did you tell him I told him in the conference call conference call there is you know 5 o'clock 6 o'clock in the evening you are taking the conference call who said what who remembered what nobody knows okay first thing is you have to minute it okay and you have to document it if you write if you send a status report normally the number of emails that we receive any executive receives in this in a business world is about 250 if you open a mail I get about 250 males a day if you get it 250 males a day if you look at that if you are not the primary receiver of the mail you normally ignore it that's a golden rule if you mark to 20 different people nobody responds to it okay now if you send a status report to the customer engagement manager or customer representative or customer vice president it is your duty to walk him through that status report and highlight those issues for which you need his attention or her attention if you didn't do that your status report is as good as not written so oral communication absolutely unacceptable status report better but status report that is walk through on a weekly call or a monthly call or a steering committee meeting is the need otherwise you know it's your statement against my statement but you know it's never people will always say I didn't have time okay effort estimate for each chain request should be done and the impact on the product schedule analyzed I think once you have this once you have the mechanism of identifying a change impact of the change cost of the change cost in terms of both money time and schedule you can do all these things but my biggest issue is this okay people tend to tend to be ambiguous because they are afraid of unpleasantness okay so this and I think you know my feeling is each time I have dealt with these kind of situations if you are firm on your ground you tend to get a respect I think you know you don't assume that because you are trying to be very demanding on the money that you need to get customer will not respect you customer in fact will respect you more than another way okay we talked about this okay skills specific to a project are not known you get the people but the product doesn't start on time okay let's say that you started a you want a big deal for one of the largest companies you hide 150 people so by the time the contract gets signed and both side lawyers agree and then dot the dash that is it's Thanksgiving weekend November so November to Christmas nothing happens in United States so you have about 150 people on the bench staring at you you know looking sitting in the library okay and there's only so many library management system that you can develop right because you have every company has about 50 library management systems you know every guy who's on the bench is only developing library management systems you know you get very sick with it and then you did a redeploy them into other projects okay January 1st the pride starts what do you do with these guys you know where are the guys there's nobody there in the project because you know I want you to realize that if you get a the average cost of an employer of a employed person in this industry is about 12 to 15 dollars an hour okay if companies like Infosys you know how much margin they are making said this is a 25% they are making 25% margin when they are charging 25 dollars okay including you know just because the pride doesn't get doesn't come through at the right time you know my salary doesn't get reduced right the CEO's salary will remain the same VP will get the same salary the infrastructure will get the same if you take a space of 200 people that space cannot be leased out for two months and then reclaimed back after two months so on average you find in the software industry that if you are spending 100 rupees as a cost about 60 to 65 goes in the direct people that's a cost of the people which is salary almost 35 to 40 bucks go in infrastructure cost sales and general administration infrastructure network all that kind of stuff now that cost is a sunken cost I mean of the VP doesn't take less salary the PRM department will continue to be the same HR department will be there finance will be there legal will be there that 40 can never be recovered okay so that money is lost now you are your total problem is how do you stop these projects and especially suddenly some guy will say that I want net viewer 150 people I don't know how many of you are called something called net viewer net viewer is a latest software that has come from system integration from SAP that's a that's a hot hot software okay the fact is that if you know Java tremendously well it can be trained on net viewer for two weeks within two weeks you can be a productive programmer but customer sometimes you ask they also know that net viewer is very tough but if you have 100 programmers they at least want 20 to be knowing that we were all hundred cannot be trained now these issues come up regularly most of it is being addressed today by training you know all the companies today if you look at software companies have extraordinarily strong infrastructure and training because we can't you know this technology changes so fast you can't have everybody is killed on everything to be available to you on the time so it will cost you too much I just talked about infrastructure load set and connectivity so most of the time what you do is that you have a net work already available for which you just hook this connectivity for example if you look at cab gym in a today we are connected from Bombay to Singapore Bombay to London Bombay to New York Bombay to Chicago okay now each of these pipes is a unlimited capacity pipe of France telecom okay now if you get a project what you need to do is connect from Chicago to say let's say that we got a project in Atlanta get some Chicago to Atlanta that's only connectivity that you have to establish rest of all goes on to this network so the you are limiting this problem of establishing connectivity because for quite some time if you remember in the some of you may or may not know in this starting of the software industry the most of the communication link was point to point okay if you got a customer you establish a link between Bombay and Phoenix Bombay and Atlanta now we don't know we no longer do that we have a pipe we hook on to the pipe and options are also increased today we have VPN we have internet connection we have a point-to-point communication and then we have this networks another thing that you are you have to be conscious of is it's very easy to order a 30 gigabyte line and not use it it's very easy because but who pays for it so and there again a project management you know when you look at a product management profitability we calculate the profitability based on every cost that goes with it you know we just can't say that look you know you ordered a network means you are done it so this is going to be the key as we go along this is an interesting thing you know iterative development we think it will solve the problem so one of the reasons is every month you are delivering something okay now everybody thinks the incremental delivery is an intermediate delivery that doesn't have to be accepted I know it's okay now normally it is mistaken as your eagerness to prove that you are doing things right to the customer okay rather than a serious delivery so what happens is you know the delivery comes it is told in a directory second delivery comes second directory third delivery third directory when you come to the fourth delivery somebody will start testing and then say no no this is not what we want but you say but no that has already been delivered in delivery one so we didn't accept it now again if you look at this you know it's very easy to say that look you know I accept you I did the delivery on June 1st you didn't accept it's your problem my assumptions if you look at that within 5 days if you don't deliver you are wrong I am right so I am right so get lost he'll say thank you get lost okay the biggest problem this is customer is a guard okay you can't mess with him okay you cannot say that I am right you are wrong so go go go thank you there's infosys there's TCA there's Vipro, Cognizant, Accenture, EDS, IBM he can he just say pick up a phone there are 10 customers waiting saying that how wrong we were how inflexible they were and how flexible they would be okay you can never take the chance in each of these cases the issue is not that the man the people who are involved know how not to how to handle the situation they know but they have to manage the commercial aspect of the relationship there is no way that you can walk out from a fortune thousand customer just because their user acceptance delayed by one week okay and always the sales guy will tell you that there is a there is only a 10 million dollar there is a 1 billion in the pipe you complete this there's a 1 billion coming in the pipe so you always let down the garden passing that is something that's big coming up another thing that we do is that we normally store the test plans, test scripts, test data for that release okay now you say that you haven't accepted this but this system is not supposed to work like that but no you said that's working where is the proof what we normally do is you know provide the test data test plan is what we've tested look we actually tested if you don't believe us look at it once more so regression testing becomes how many of you understand the term regression testing so regression testing is ensuring that the changes that you have made to the system have not messed with the functionality that already exists are the performance which so the regression test seat and test data is always kept and again documentation that all this issue of performance the software process complaint CMMI level 5 or you talk about ISO 9001 compliance becomes very important because as a process you are you are forced to do these things and what is the value addition that you get by following a CMMI level 5 or what are these things the thing that you get is you have no option but to record and store these things if you are a CMMI level 5 company so it's not left to your discretion or you can do something or not do something you got to do that now in any of these things that what we do is this we call we create what we call a racky chart responsible accountable consulted informed verifies and signs off for every activity we create a racky chart in a VS. So, the people whose neck is on the line is the guys who are responsible and accountable consulted informed verifies and signs off I just show you one one activity one racky chart look at logical data model on a logical data model the customer is consulted he verifies he signs off the vendor is responsible and accountable on software architecture document the customer signs off vendor is responsible and accountable. For example, analysis model customer signs off he is responsible and accountable like that on requirement traceability matrix customer is just informed that is this use case is translating into these methods these programs these databases again the vendor is responsible accountable. So, you make this chart and first of all you have to do is agree on this chart you don't agree on this chart it's always a debate who is responsible for what how do you answer this question by creating a racky chart saying that look you know this is the activities this is the responsibility and you agree having this chart doesn't mean it will solve all the problem, but it tested at least the beginning point. Other thing that I wanted to show you is quick demonstration of the issues log. Now, you have several issues in the project normally it can't be a set of emails issues have to have an ID they need to have a description the date it was raised the date it was closed what is the severity of it what is the status whom is it assigned to what is the resolution summary what is the date resolved what is the impact of if you not resolved. So, at a periodic intervals normally what the steering committee will do is go through the issue log look at all issues that are of high severity and which have been raised more than 3 months ago or 1 month ago and are still unclosed that gives a very quick summary of where the project stands. So, management will take a different slicing and dicing techniques even on this issue resolution databases to find out what kind of ages what kind of problems are happening in a project. Now, let me just quickly go back to the starting who is responsible for what we said we will do it with the racky chart what is the right technology for the project we said that we have to do proof of concepts complete evaluation on various 7 to 8 parameters to see what is right. Frequent changes to requirements change control dealing with un-presentness status reports that are discussed staffing having a clarity on the staffing and the nature of skills required the training solutions infrastructure load set and connectivity having a network architecture that is full proof redundant rugged and redeployable and backlog of acceptance and incrementally deliver project. So, some of the examples I have said you know this probably the issue that I have covered and tried to cover in one and half hours or not even 5 percent of the issue that you face in a real life project. My idea was to show you a sample that the practice is very different. Now, I one message that I do not want to you to take is that theory is not important. So, all these becomes all these are important provided you have the technology content if you do not have the technology content you do not even reach this stage that you have to deal with these issues. If you are not a good development shop if you cannot code design test systems properly there is no customer for you. So, if you do assuming that you need to do that you can do all these things right this is a layer of packaging that is needed around it to make you successful. But if you think that the packaging is important and the content is not you have missed the point that is never the intent of my lecture at least. So, I just want to reinforce the RAREP methodology your ability to design good systems, your ability to design methods, your ability to design performance sensitive SQL code, your ability to use Microsoft project or rational tools or load balancing tool sets, clustering of servers, choosing application everything is important. But over and above those are necessary but not sufficient. That is all I had to say I think I have about 10-15 minutes for some questioning before Ganapathy Bappa takes over. So, anything that you want to ask? Sure.