Software Engineering: A Flawed Discipline

Software Engineering Process

Globalisation and evolution in fields of science have not occurred in a day. Moreover, science is the most dynamic field of research. The process is ever developing and the principals of software engineering is not an exception. Therefore, the motive of software engineering discipline is to continue the culture of developing different application and ensuring smooth execution of those as per requirements. Before discussing the issues faced by software professionals it is important to know the matters they deal with. Centrally, as argued by Jones, Capers (106), for development and maintenance of computer or smart devices’ software engineers are devoted to and make things user efficient.  Technically, software applications must comply with systems, discipline and efficiency norms. Hence, within a periodical gap new programming language or software methodology is being invented. Not only the invention, a developer must comply with the throughout maintenance and monitor its performance. In order to do that they have to be disciplined enough to complete series of software engineering process. In case of undisciplined approach, the delivery might have been delayed and other issue from the customers will raise. A disciplined developer is capable of enhancing productivity and satisfies customers at the same time.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

In this wide and detailed range of operations it has been noticed that different software systems like cloud computing, big-data, and numerous cyber systems are being consistently innovated to fulfil dynamic needs of customers. The science is itself full of dynamism, in addition to that high market pressure is influencing the engineers to work more for innovation. Therefore, the entire process of software development and maintenance is getting disturbed continuously. According to Casale, Giuliano (39), these challenges are leading towards a disrupted system and demanding more professionals into the disciplined in order to handle the pressure of continuous demand of new software application. The customers are facing issues not in terms of quality of software but the market is seeking for security concerns too. On one hand, there are several quality concerns which are being obvious and to solve all those queries, engineers are compromising with security issues. Therefore, from both the ends the requirements are not met properly. Privacy is important in terms of securing personal data. In this era of globalisation, as discussed in Vitale, Valeria (147), every business organisations is sharing data virtually. The weak development of software leads to incidents of cyber-crime which highlights flaws within the discipline. Developers are partly dependent on consumers in terms of identifying the problem or if there is any security concerns. Actually, until the customers’ are exploring applications the flaws cannot be identified in some cases.

It has been realised that there is a lack of development when it comes to prepare a set of principals regarding development, designing and coding. This loop holes are leading towards delay in delivering projects along with that budget increases.  In such cases, the company might faces issues of order cancellation and stakeholder management does not get the desired support from such a flawed software engineering discipline. Above mentioned issues are it has been observed that software development tends to initiate controversy. It is believed that a discussion on flaws helps to generate solutions. The first point which needs to be noticed is that if the discipline is free of flaws there would be no need of discussing such topics. This ensures intensity of the issues related to software engineering. The success rate of industry, which is 30%, itself suggests the flawed nature of its operation for past twenty years. As mentioned before, most of the time there are issues of delay in delivery of order cancellation. Cancellation of order can happen for many reasons including doubts regarding investments, lack of understanding among engineers or lack of expertise to execute the desired outcome. Hence, it can be confidently said that entire system and contemporary practices have become flawed.

Challenges Faced by Software Professionals

A list can be made of reasons that why software engineering has been considered as a flawed discipline.  First of all, requirements are in most of the cases vague and unhelpful. Understanding of clear requirements takes time and lots of efforts are required in communication. Most of the time, lack of experience and due to cultural or technical reasons people proceed work based on vague instruction. As a result, they have to face hazards regarding desired outcome.  Besides, inadequate workforce, lesser work engagement and demotivated employees are the reasons behind its flawed nature. Time management is another reason. This development processes are unpredictable in terms of duration. While working on project several mistakes can take place or problems can occur. Timely delivery is a rare incident in this discipline. According to the changed preferences of the customer in middle of the processing a software can hamper the entire flow of a particular project.

There are certain indication which allow us to understand the associations with failures. As supported by the performance index of Tata consultancy services, the first reason of such project failure is the lack of basic conception in designing or difficulties faced by professional regarding understanding the design requirements.  The report has mentioned in the year 2007, the organisation dealt with 62% failed projects in terms of deadline, almost 49% projects suffered from budget issues and 50% has turned out to be more expensive than expectation. No less than 30% delivered an unpredictably bad performance and 40% has failed to add expected business value.  The researches have consistently addressed lack of user involvement and underdeveloped conception of engineering theories for this. Project failure and dissatisfaction among stakeholders are increasing for this reason.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

There are several of reading regarding this matter, yet it needs to be realised that with the increasing change in market in terms of customers’ requirements, the occurrence of same project design is almost next to impossible. According to Kaur, Rupinder, and Jyotsna Sengupta , software projects are regarded as failures when they are incapable of meeting the criteria of customers. Most of the IT projects run over the budget plan, it has become difficult for companies to address so many failures together. Monetary resource has declined and an increasing demand of investors has been spotted. All the software design is unique and talks time to develop and explore to find out processing faults. However, due to high market demand this known principals are not being followed properly. Above all, time management is another issue behind faults in desired result. As collected from several system engineer it has been understood that it is an art of adaptation as far as understanding of practices and software products is concerned. Apart from running over budget, most of the IT project has been terminated due to misunderstood requirements and has fails to address business goals. In order to avoid the most recurrent issues regarding software engineering following procedures or practices must be kept in mind.

At first, it must be remembered that software product development needs design based on programme-language that is associated with procedure of software implementation or development. This practice will ensure appropriate application of required software language. In addition to that, various literatures like Vijayasarathy and Charles W. Butler (89), highlights the role of organisation in terms of knowledge sharing and training as far as flawless implementation of software engineering practices are concerned. It has stated that software development methodologies are varied which have both the traditional and contemporary approach. It has strongly suggested that team efficiency, organisational culture, HR strategies and complexities of project requirements everything matters in discipline of software engineering. In case of any discrepancy or misunderstanding project tends to fail. Although, contemporary methodologies are more reliable in terms of delivering the work on time or in a speedily manner, yet some of the traditional models like waterfall model is still helpful to avoid failure. Therefore, engineers can take a hybrid approach, consider multiple methodologies in order to make agendas successful. Moreover, the chosen methodologies are dependent on characteristics of project, team expertise and organizational structure too.

Flaws in Software Engineering Discipline

There is an important part of software development is to design. While designing the software the market need, issues must be remembered. The development must address or intends to solve the ongoing issues the consumers are facing. Simultaneously, as described in Zahedi et al. (998), global discipline of software development is devoted towards mitigating the social challenges and have to build supportive knowledge to develop accordingly. While sharing knowledge development teams face various issues. Organisations are bound to introduce feasible practices to identify the challenges and consult advanced experience and literature to solve those issues. Based on the finding of same literature addressed before, there are six central concerns which revolve around management conflict, team structure and expertise, technological aids, social supports and procedure of development; which are responsible for restrictions and project failures.  Therefore, to solve that matter while designing the solution engineers must have the plan ready regarding constructing and implementing it without any doubt in mind. Management must be pro-active to find out ongoing difficulties and whenever doubt occurs professionals must address it in level zero while the analysis and planning are going on. In case, if faulty product is delivered the consequence will be either rejection for taking the order or plenty of complaints. Hence, as described in Gotterbarn, Don (84), it is better to solve the general doubts while it is at discussion stage. Diagrams, designs, blueprints, coding related issues must be resolved and approved from the client in its initial stage only. Therefore, work practice must be efficient enough. There are vet less complain as far as technological help is concerned. People have reported that even if there are other complications, engineers mostly do not face any issue due to IT infrastructure. Engineers’ effort has serious role to maintain in project outcome.

Therefore, as a major reason ineffective strategies, planning and lack of depth can be considered for such a large proportion of project failure. Therefore, entire design, monetary issues, design, blueprint, trial period all of these must include in practices of software development. In case, the organisational atmosphere is not cooperative enough, those issues must be addressed so that employees can nurture themselves with available sources of knowledge; from both the managers and co-employees. While recruiting professional engineers, HR managers should focus on their knowledge of programming language for ensuring future efficiency.

As per the study of Abrahamsson, Pekka, et al. to reduce such risk the concept of ‘prototyping’ has become crucial these days.  It is associated with a trial run of the developed solution. Both the developers and stakeholders has scope to share opinion regarding mitigating of faults which are subjected to be captured on trial. While building the system, the output has been gone through a tested system where a cross check has been performed to evaluate all the requirements have been met or not. Designs are verified by the prototype users and reviewed as well. According to users’ comments engineers prepares themselves for further development of that particular software.  In case of realization that employees are not efficient enough then arrangement of on job trainings for assigned workers. Even users are provided with certain trainings to run the programme properly. Such performance and capacity index can be measured through XP spike, a non-renewable test code. The effectively of network development is important for the successful implementation of various development process. Hence, it can be stated that it is not possible to gain attention towards the introduced protype until some customers are addressing its flaw and opening more channels for development. As a result, it would be able to attract more developers into a particular development process. Therefore, the software development industry is entirely controlled by commercial needs and probably for this reason the discipline has become flawed and risk oriented.  The company will remain cost effective and can save themselves from major risk of losing both the monetary and energy of human resources.

Therefore, to conclude it can be said in an era where every issue has a digitalized solution software engineers must address every flaws from their end. It will allow to execute business processes in easier way. The flaws within the discipline has already been acknowledged and although solutions are available, software people need to be more system oriented, engaged to work in order to implement those practices. It is true that they have to face a great deal of market pressure within a short span of time yet if the right practice can be evolved then future risks can be avoided. It will be not an issue then to stick to requirement strictly and yet performing as an efficient professional.

References

Abrahamsson, Pekka, et al. “Agile software development methods: Review and analysis.” arXiv preprint arXiv:1709.08439 (2017).

Casale, Giuliano, et al. “Current and future challenges of software engineering for services and applications.” Procedia Computer Science 97 (2016): 34-42.

Gotterbarn, Don. “Not all codes are created equal: The software engineering code of ethics, a success story.” Journal of Business Ethics 22.1 (1999): 81-89.

Jones, Capers. “Sizing Up Software.” Scientific American, 279.6. (1998): 104–109.

Kaur, Rupinder, and Jyotsna Sengupta. “Software process models and analysis on failure of software development projects.” arXiv preprint arXiv:1306.1068 (2013).

Libicki, Martin C., Lillian Ablon, and Tim Webb. The defender’s dilemma: Charting a course toward cybersecurity. Rand Corporation, 2015.

Vijayasarathy, Leo R., and Charles W. Butler. “Choice of software development methodologies: Do organizational, project, and team characteristics matter?.” IEEE software 33.5 (2016): 86-94.

Vitale, Valeria. “Transparent, Multivocal, Cross-disciplinary: The Use of Linked Open Data and a Community-developed RDF Ontology to Document and Enrich 3D Visualisation for Cultural Heritage.” Digital Classics Outside the Echo-Chamber: Teaching, Knowledge (2016): 147.

Zahedi, Mansooreh, Mojtaba Shahin, and Muhammad Ali Babar. “A systematic review of knowledge sharing challenges and practices in global software development.” International Journal of Information Management 36.6 (2016): 995-1019.