Monday, January 27, 2020

Project failure in the software industry

Project failure in the software industry Introduction: Project failure is a common thing heard in the Software Industry in recent years. It has been observed that almost 50% of the projects in the Industry fail due to many various reasons. Research shows that Project failure is not due to one particular reason but many reasons contributing to it. The Standish Group [1995], found in their survey that of all the projects only 1/6 of the projects were completed on time and within the specified budget. They also found that 1/3 of the projects were cancelled and more than  ½ of them were considered challenged. In these cancelled and challenged projects about 189% were over budget, 222% were behind schedule and only 61% of the requirements were met. Factors contributing to project success are to complete it on time, should be under budget and should meet the requirements completely, but generally these dont meet the expectations which results in project failures. The most common reasons for project failures are lack of user involvement, unre alistic time scale, poorly defined requirements, poor testing, miscommunication and difference of opinion between team members, etc. Since now most of the companies use software for various operations, it is a must for every company to avoid project failures. A huge amount of money is spent on making software, therefore it is important to analyze and understand the reasons behind the various reasons behind project failures. The graph below shows various reasons for failure and the percentage to which each factor contributes. The above graph and the percentage of failures show that it is normal for a software project to fail due to various reasons. But the point is what we can do to avoid it. For that we need to understand the various reasons for failure and the steps to avoid them. Reasons for Project Failures: Vague Requirements: Requirement gathering is the first step of any project development life cycle. Any project starts with the understanding and analyzing the requirements of the customer. Often the requirements are not clearly specified and the manager assumes the requirements as per his/her understanding and asks the developers to start developing the product which results in not meeting the exact requirements of the stakeholder. Many times the customer, himself/herself is not aware of what they want as keep changing the requirements on regular time intervals which results in delay of product delivery, increased cost and inefficient product. Many times due to time constraint the developers start the project assuming requirements and start developing it, thinking that the requirements will be fulfilled once we start developing which may result in incomplete project and increase in cost or even delay in completion of project. Hence it is very important to understand the requirements of the customer and make a proper software requirement document and then start the project development. Consequences: The result of vague requirements is severe. This will cause an increase in cost, inefficient product and a lot of rework. The developers will have to spend a lot of time and put in extra hours of work to make the necessary changes as the product developed is not as expected. Suggestion: To avoid this situation of vague requirements which may lead to project failure, I suggest that the project manager should meet the customer to get the exact requirements of the project. The Manager should make sure that all the requirements are properly documented so that the developers know the exact requirements which will help them to know what the goals to achieve are. The Manager should also regularly meet the developers and make sure that all the requirements are clear as they come and everyone has understood the requirements document. The requirement analyses and developing a project development life cycle should be given enough time before the actual development starts. Unrealistic Time Scale: Poor schedule estimation is another reasons for project failure. Many project managers understand the need to deliver the projects fast due to which they set unrealistic schedule to make sure the project is produced quickly without knowing the amount of work that needs to be done. Due to which they make superficial design and start coding to make the product as quickly as possible thinking that sooner the coding starts, faster the product is finished. Many times the managers are also pressurized by the stakeholders regarding the project deadlines. The Project Managers many times dont even work together with the stakeholders in defining a realistic schedule and decide on a proper deadline for the completion of the project. But this is the most common mistake made by the project managers. As a result of this unrealistic time scale the final product is either faulty or does not meet the user requirements or delay in delivery of project resulting in increase of the product development co st. Consequences: The result of unrealistic time scale is increase in cost and time to deliver. Since the schedule is unrealistic the manager will make a working model and ask the programmers to start coding quickly, which will result in low quality of work by the coders as they are under great pressure and the final product delivered will not meet the expectations of the stakeholder. This will cause the project to fail and cause waste of resources and money put in the project. Suggestion: Since unrealistic time scale being a common mistake made by the project manager, it can lead to heavy losses. This mistake should be taken care of by making a proper project plan and setting realistic deadlines. This plan and deadlines should be decided based on the amount of work to be done and the size of the team working on the project so as to avoid unnecessary pressure on the team. This will give enough time to work on each and every module properly and fulfill all the requirements properly rather than just complete the project within the given time. More importantly the stakeholders should be provided all the required data and estimated time of completion. They should also be updated at regular intervals to make sure that the work in on the estimated time. Poor Communication: Poor Communication is the third reason for project failure. Due to poor communication between the managers and developers, the developers are not aware of the work to be done by them, which may result in delay. As this important information is not shared between team members, the progress of the project is also not known. Trying to avoid communication between team members to avoid conflicting views between them may result in project failure. Sometimes the programmers are not allowed to give their opinion about the improvement of the project which is also a reason for project failure. This kind of poor communication between the manager and the team members hinders the progress of the project. This kind of poor communication should be avoided and the manager should take the necessary steps to overcome this problem for the success of the project. Consequences: The impact of this reason for project failure is very severe. It will affect the cost of development, affect the schedule and functionality. If the communication is poor it may lead to inefficient product development. Suggestion: Communication is very important between the team members, the management and the stakeholders for the project success. Since poor communication can lead to severe losses to a project I would suggest that manager should regularly communicate with the team regarding the project progress. This will help the manager to keep a track on the ongoing progress and also make sure that the team has understood all the requirements properly and avoid conflicting views between the members. And all the members will know their role in the project thus avoiding unnecessary work. Communication with the stakeholder will also help the stakeholder to know about the progress of the project and to know if the project is going as per the requirements. Scope Creep: Scope Creep gives the overall view of the final system to be delivered. Scope creep happens due to increase in the scope of the project during development. Often it is seen that the manager or the customer wants to add more functionality to the system while it is being developed. Like if a student record system is developed for the subjects taken and scores of the students by semester. But then the customer wants to add personal details and fees structure for each course. This will increase the scope of the system as the new functionality is required to be added along with the old requirements. This will affect the schedule of the project. Many times it happens that the customer might change the requirement at regular intervals or might require change as they are not comfortable with the existing system resulting in scope creep. Consequence: The consequence of this is very severe. As the requirements of the system change it will increase the cost of development and even affect the project schedule. Suggestion: Scope creep should be avoided as it may lead to major project failure or unnecessary delay in the project deliverable. This can be avoided by getting all the requirements from the user at the start of the project and even the priority in which the requirements need to be fulfilled. The cost and the time of delivery should be documented as per the present requirements. So any change will affect the cost and time should be told to the customer and everything should be documented. Inappropriate Staffing: Inappropriate staffing is another reason for project failure. The manager needs to find the right people for the job. Many times there are programmers who lack the required experience in the technology and are not qualified enough for that job. It also happens that the managers hired or allocated to a project dont have enough experience in handling such a huge task or dont have enough technical knowledge. These programmers and managers are hired simply to keep the cost of development low. So it is very important to get the right set of people to work on the project, who are experienced enough and can work well in a team for project to be successful. Many times it may happen that a member of the team or a high level manager might leave the job, which may affect the project schedule. Many times it happens that resources are not allocated properly while shows inefficiency in work, thus delaying the project schedule. This problem has been a major problem with all the companies. Consequences: This will have an impact on the project schedule as every time new resources are allocated, it will consume time to understand and complete task. Suggestion: To overcome the problem of inappropriate staffing the management must hire the right set of people for the required task who are efficient enough for the job. They must have a well balanced team and people who work well as a team and appreciate each other to achieve the bigger goal of successful project completion. Lack of User Involvement: User involvement is very important for any project to succeed. If the user is not involved in the project development by continuously communicating with the project manager, it may result in a project failure. Many times it happens that the user doesnt know how to use the system as the user is not much involved in the working of the system. The developers get the requirements from the user but the users are not actively participating in the design phase, requirement analysis phase, testing phase or the users are changing the requirements which may lead to delay in the project schedule and might not meet all the user requirements. Many times it is seen that the user will specify the requirements and then wait for the final product. Due to this the users sometimes dont get the expected functionality or they might not be familiar with the system which may result in a lot of time wasted in learning the system. Consequence: The consequence of this is medium effect. There can be a lot of change in the functionality as the user is not aware of the system working till the end. It may also increase the cost of the project and schedule as the user will take a lot of time to get familiar with the system. Suggestion: To overcome this problem of lack of user involvement, the user should actively participate in all the phases of project development. The user should be eager to learn the system before it is put live and hence should be trained to use the system. This will help the user to get familiar with the system and will also be able to test the system for all the features that are expected of the system. Poor Planning: Planning is the most important part of any project. If the project is well planned it will be completed on time and within schedule, resulting in success with all the requirements full filled. Project plan defines the objectives of the project and the goals to be achieved. The project plan contains the amount of resources required, the cost of development and the deliverable schedule. It helps in knowing what is to be done and what resources are required in which area of the project. Sometimes it is seen that the manager doesnt have much time to make a project plan due to time constrain from the senior management due to which implementation starts before the project plan is completed. This will hinder the project schedule as the flow of project development will not be clear. Many times it happens that project activities are dependent upon the previous activities completion but in case of poor planning this will get affected. This will result in the increase in the project development cost and increase the deliverable schedule. Consequences: The effect of poor planning is very severe. It will have an impact on the project development cost, incomplete requirements and will also affect the schedule. Suggestion: To avoid the problem of poor planning, the management should make sure that the project is well planned with all the resources, phases of development, cost estimation and the schedule of delivery before the implementation starts. Then at regular intervals it should be check if everything is going as planned, so that any kind of problem can be taken care of right away before its too late. Poor Testing: Poor testing plays an important role in project being a failure. Developers do test the project after the coding is done but it is the duty of the user to do an acceptance test to know if the system meets the requirements. But sometimes this testing fails as the requirements are poor enough to be tested. The user is unaware of the importance of this testing. It also happens that the user is not trained enough to test the system resulting in a poor test. Many times it is seen that the development phase takes so long that there is no time for testing, due to which it is avoided. So the user should be encouraged to do the acceptance testing so that the user is comfortable with the developed system. Consequences: The result of poor testing is that not very heavy. If the testing fails, then the development team will have to do a lot of rework on the failed areas. This will increase the cost and delay in project deliverable time. Suggestion: To make sure that testing is done properly the project should be well designed and planned. If the project is to be delivered in modules, then every module should be tested which is very useful as all the functionality is checked at the end of each module. This help in avoiding the entire system test at the end of the project, since most of the modules are tested as they were completed. Then the user should be trained to use the system so that they can do a proper test of the system. This can help in overcoming the problem of poor testing. View Point: The analyses shown above are based on my research about various reasons for project failure and their consequences. From my research on the above I analyzed and suggested that all of the above reasons are important and should be taken in to consideration during the life of project development as they have equal effect on success of a project or its failure. I think that most projects fail due to vague requirements, poor planning and inappropriate staffing. Making sure that all the requirements are properly gathered is the first step in any project development process. If the requirements are not properly gathered then it may lead to problems down the line during development. I have observed that many times due to time constraint or not clear requirements the development phase is started considering that once a working model is ready then all the left out requirements can be handled but this is the biggest mistake made as it will require a lot of rework and increase the cost of development. Many times vague requirements force the developers to make a functionality that is actually not required thus wasting of time and resources results in a lot of rework. Poor planning is also a factor for project failures. Due to vague requirements the planning done is also poor resulting in project failure. Planning phase comes after requirements gathering phase. In this phase all the details about the project development, the resources required, the cost of development, the time schedule of deliverable project parts or whole are decided. This phase takes a good amount of time as the whole project development is planned in this phase, so if the planning is poor, it may lead the project down the hill instead of up. So during the planning phase all the aspects of development should be taken into consideration by the developers and managers. Another problem which is faced by most of the companies is of inappropriate staffing. A project team should have the right combination of people. People, who are experienced, can work well in a team. Generally managers try to cut the cost of development by hiring people who are less experienced with the kind of project to be developed and even inexperience in using the technology being used. This will affect the project schedule. Many times it happens that a manager or team member leaves the project due to work pressure as they are kept to do parts in many projects. Due to this the project is delayed and a lot of time is lost in training the new member. So managers should chose the right people for the team and also the members should be dedicated to a particular project. Many times I have seen that there are dependencies between teams during a project development. Like now a days there is outsourcing where in the design and testing is done by one team and the coding is sent to another team. So whenever there is a change in the functionality or the design the coding team seating elsewhere are given the changes resulting in a lot of rework which relatively affects the project schedule. Many times there is miscommunication between the teams working in different modules so changes in one module is not conveyed to the other resulting in errors during the testing phase. So there should be proper communication between teams and regular updates should be given to all the teams working on the project to avoid any error at later stage of the project. And other than these all the other factors should be taken into consideration by the management for a successful project. Lessons Learnt: From my research on project failures I learnt that project management is the most important aspect for any projects success. From research on this topic I learnt that over the years this problem has haunted the software industry but still the management has not learnt from the previous mistakes. All the reasons shown above are very critical and can lead to project failure if not handled with care. Manager must also focus on the team development for any project as it the overall team effort that makes the project successful and not an individual. Conclusion: The research gives an insight into various reasons of software project failure. These reasons have been experienced by every manager in the industry and so now companies have started focusing on proper management of the projects. References: http://www.coleyconsulting.co.uk/failure.htm http://ezinearticles.com/?Causes-Of-Software-Project-Failureid=453814 http://www.ibm.com/developerworks/rational/library/feb06/marasco/ http://www.docstoc.com/docs/24462435/Why-Projects-Fail-Graph http://www.projectsmart.co.uk/why-software-projects-fail.html http://www.projectperfect.com.au/info_it_projects_fail.php http://ezinearticles.com/?Causes-Of-Software-Project-Failureid=453814 http://74.125.155.132/search?q=cache:rpsupt-SPl0J:www.tier1performance.com/content/features/mets_files/MajorCausesofSoftwareProjectFailures.pdf+reasons+for+software+project+failurecd=3hl=enct=clnkgl=us http://www.computerworld.com/s/article/71209/Why_Projects_Fail http://knapton.blogspot.com/2007/05/why-do-software-projects-fail.html http://www.adaptivepartners.com/projfailb.htm http://portal.acm.org.libaccess.sjlibrary.org/citation.cfm?id=1370099.1370100coll=portaldl=ACMCFID=12421101CFTOKEN=86551462

Sunday, January 19, 2020

Comparing Arnold’s Dover Beach to Hecht’s Dover Bitch Essay

Much as it is a poem of vivid images translated into feelings of melancholia and uber sentimentality, Dover Beach has been touted as one of Matthew Arnold’s most admired poems. It was probably composed in the summer of 1851 and subsequently revised for the volume of New Poems in 1867 (Baum, 1958, p. 85). The poem basks in the feelings of self-conflict, loneliness, alienation and inexplicable emotions set during the Victorian times. The poem consists of four sections or stanzas: the setting (1-14); Sophocles, or the Greek parallel (15-20); the sea at Dover and the Sea of Faith, or the parallel extended (21-28); and the personal appeal (29-37). At the start of the poem, readers could visualize a man standing at the edge of Dover Beach, feeling down and out. His tone is some what indifferent and philosophical about life’s iniquities. He then revealed that there is a woman with him, which he refers to as â€Å"love†. And, it then concludes with a pessimistic lamentation relative to the possibility of human happiness in a time bereft of faith: for the world, which seems To lie before us like a land of dreams, So various, so beautiful, so new, Hath really neither joy, nor love, nor light, Nor certitude, nor peace, nor help for pain; Anthony Hecht’s Dover Bitch (1968) claimed notoriety in parodying the uber romantic machinations of the male persona in Dover Beach. Hecht even acknowledged Arnold in his poem and begins with these lines: So there stood Matthew Arnold and this girl With the cliffs of England crumbling away behind them, And he said to her, ‘Try to be true to me, And I’ll do the same for you, for things are bad All over, etc. ’ Noteworthy is that Hecht frankly assumes Arnold to be the speaker and his companion to be a woman, but he does not go on to suppose that Matthew Arnold was telling her not to worry and to leave it all to him; he was fully aware that ‘things are bad/All over’ for everybody, not just for the two of them. There doesn’t seem to be any suggestion in Dover Bitch that Matthew is going to do ‘this girl’s’ worrying about the world as well as his own. Nor is there any such suggestion in Dover Beach; the speaker’s point is that they are both, and indeed we are all, in the same boat; he is as helpless as his friend, whatever the friend’s sex. Gender seems here to be about as irrelevant as it can ever be. Whatever the appearances to the contrary, the world â€Å"Hath really neither joy, nor love, nor light, Nor certitude, nor peace, nor help for pain†. Nearly everyone assumes that Dover Beach was written with Mrs. Arnold in mind. If one assumes further that the picture of Dover Beach in the moonlight – â€Å"Come to the window† -represents the stop of Arnold and his wife at Dover on their wedding journey in June 1851, there would be corroboration in the later lines: â€Å"the world which seems To lie before us . . . So various, so beautiful, so new†, there would be additional poignancy in the appeal â€Å"let us be true To one another† in spite of all its hostile forces mentioned in the poem. In fact, Duffin (1962) illustrated that Dover Beach provides a lovely picture of married love: the poet, looking out on the calm, moonlit straits, speaks over his shoulder to his wife. In his way, the poet interprets for her the sound of the waves upon the beach, hearing â€Å"the eternal note of sadness† and comparing it with the ebbing of â€Å"the Sea of Faith†. He lets the mood oppress him, making him see life as a loveless, joyless confusion of struggle and flight, with but one refuge—â€Å"Ah, love, let us be true/ To one another! † (p. 75). On the other hand, Hecht assumed that the girl was some sort of a high-class prostitute: Well now, I knew this girl. It’s true she had read Sophocles in a fairly good translation And caught that bitter allusion to the sea, But all the time he was talking she had in mind The notion of what his whiskers would feel like On the back of her neck†¦. To have been brought All the way down from London, and then be addressed As a sort of mournful cosmic last resort Is really tough on a girl, and she was pretty. Hecht translated Arnold’s romanticism and helplessness to be viewed by another person who exhibits anarchic individualism, who viewed the iniquities of the woman rather than the feeling. Hecht even deconstructed the poetry form of Dover Beach as he wrote the poem that has a casual tone, something that is spoken as a gossip in a tavern or bar. Readers could even probably assume that the speaker is a bartender. When the presence of the universal becomes more important than its structure, value comes to reside more in intensity than in the meaning of actions, more in the fact of participation with the forces of process than in the results achieved by action and society’s approval of them. Clearly, Hecht took advantage of Arnold’s aloofness to the girl at the starting stanzas. The woman’s presence is only recognized at the end of Arnold’s poem, crafted in such a way readers should think about the whole picture about what the remainder of the story really is. Hecht’s speaker in Dover Bitch could only roll his eyeballs about the uselessness of the heart-rending oration to a woman is who is not all interested in the entire romantic conflagration. The speaker feels that this woman more concerned with her own tangible pleasures than the speaker’s bleak view of life. Both poems are exquisite in their own way. Arnold’s poem was romantic and Hecht’s was allergic romantic. Arnold created this scene at the Dover Beach and Hecht just criticized the speaker in the poem to stop the â€Å"mournful cosmic last resort† idea to view and start to view life’s realities in a different perspective. It somewhat a poetic way of saying that â€Å"Life is a bitch, I know. Deal with it! † Clearly, reading these poems, readers could tell the significance of what â€Å"point-of-view† means when to ascertain what thoughts of the people could be in a story. Works Cited Baum, Paull F. Ten Studies in the Poetry of Matthew Arnold. Durham, NC: Duke University Press, 1958. Duffin, Henry Charles. Arnold the Poet. London: Bowes & Bowes, 1962.

Saturday, January 11, 2020

Commentary on Jonathan Swift’s Essay “A Modest Proposal” Essay

Jonathan Swift cleverly illustrates a very â€Å"humble† solution to the crisis in Ireland in his personal essay, â€Å"A Modest Proposal. † His voice urges annoyance and frustration, evoking a tone of sarcasm. Through the use of cynical language, he creates an intense and informative response. He uses language to create imagery which he intends to elicit a response of shock and moral responsibility. His intention is to mock Ireland and the economic crisis they have got themselves in. Swift appropriately chooses strong imagery and describes a â€Å"melancholy object† that comes from walking through Irish streets and seeing â€Å"beggars of the female sex† and â€Å"three, four, or six children, all in rags. † Swift wants this image to convey the severe challenges that Ireland is facing. These women are panhandling for food, instead of working â€Å"for their honest livelihood,† and that influences their children to do the same or leave for the â€Å"Pretender in Spain. The â€Å"deplorable state† of Ireland is causing grave situations for the impoverished. The English Protestants have been mistreating the Irish, and England has â€Å"consumed† Ireland. Because of England, Ireland faces a lack of power, and Swift uses this verisimilitude in order to take advantage of his satire and to present the â€Å"devouring† of poverty-stricken infants of Irish born mothers. The circumstances in Ireland at that time, the key parallel between both situations are their shared consequence: a country destined to collapse. Swift’s arguments against their current â€Å"schemes† of Ireland are well constructed and convincing. The children or the mothers will no longer beg for â€Å"charity† on the streets. â€Å"A child will make two dishes,† and will be offered in sale to people. This will bring quality and fortune, through the nation. He has â€Å"maturely weighed the several schemes of other projectors. † He believes that these â€Å"schemes† are much miscalculated in their â€Å"computation. † If the previous â€Å"schemes† had worked then there would be no poverty or â€Å"voluntary abortions. He uses strong diction to let one know that he is not proud of his country or the people. His proposal makes complete logical sense. He has everything figured out. Certain terms he uses when he compares the Irish children to farm animals, and that they should be â€Å"consumed. † Diction such as â€Å"stock,† â€Å"pigs,† â€Å"cattle,† â€Å"fatten them up,† all imply to Swift’s analogy to people and livestock. This implies that the Irish just stand around and bend down to an authority of a higher power, and also that the English treat the Irish as worthless workers. The Irish are valuable in financial means to their owners and so are livestock. The Irish just marry and bear children, and wait for wealth to come. This is just what the English want, they want the Irish to be weaker and not take a stand. Therefore, Swift quite subtly proposes that instead of these children being a burden on the already poor parents, the children should â€Å"contribute† themselves to the nation in a form of food or clothing. Swift uses imagery to set the tone of voice and to consistently keep it going throughout the essay. He conjures up images to create an illusion that the solution to the economic crisis in Ireland is quite effortless to solve. Swift is expecting the Irish people to understand that they are responsible of the crisis and they have no patriotism towards their own country. This imagery is created because of language, he expects the people of the nation to do something about the â€Å"distresses† being faced. Swift consistently repeats women and children â€Å"begging,† he wants to clarify that he’s not only writing an essay about the economy but also about moral responsibility of the nation. He explains about the â€Å"voluntary abortions;† these women murder their children because they can’t afford to provide for their children. He constantly explains the â€Å"present distresses,† expressing his frustration and shame towards the country. Swift is generous with his disdain and his ironic representations are not only meant to criticize the society of Ireland, but also to motivate the Irish to take action in rectifying the damage that Ireland has tolerated. Swift has no other motive but to only hope for the public good and â€Å"public consideration. †