Conference Paper

Software Design By Uncertain Requirements.

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

In this paper we propose an idea of supporting software design for a case of uncertain requirements. We examined sources of requirements' uncertainty and classified those. We described the principles of supporting software design - a design that helps to formulate requirements, to avoid errors and address uncertainty issues if information is missed. Three elements of it are described. Those elements are necessary to make software design to be supporting and avoid dangerous of uncertainty. Two companies cases are reviewed where requirements uncertainty existed. Those companies are quite typical and therefore advices, which we delivered to them, can be used in other companies having the same troubles.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

... The software development is a highly technological sector [12] with a shortness of personnel resources in many countries at the moment and is requiring a lot of time to adopt new workers. Nowadays increasing competition between software vendors and much more demanding markets force companies to stabilize their productivity and improve their development process in all respects using all available techniques [9]. Personnel motivating projects could be a good method to achieve that into addition to other common motivating factors proposed so far [4] [5] [7]. ...
... This detail, which looks to be very small, could be crucial for the project's success. Contemporary software engineering methods ensure general success of projects, but high competition asks to maximize this success by applying additional restrictions for used resources, spent time and so forth [9] ...
... Static workers can be kept on fixed project that are not migrating to other technologies, while innovating should be used to start the technology migration process. Moreover this segmentation helps to plan the learning process as slowly learning developers need more time and this factor should be considered to avoid producing a stress situation for them; • Software development motivating personnel in some cases can increase cooperation between team members, first of all between developers, as they need to discuss new techniques, may be learn something together in groups etc [9] [11] ...
Article
In this paper we propose to use certain software projects' types as an additional personnel motivating factor. The personnel is a key factor in a company success, therefore management has to motivated workers, give them sometimes challenging and interesting work. Reengineering projects are providing a good chance for such interesting development since usually contain technological and algorithmic shifts and allow developers to expand their skills. The paper revises software reengineering projects, defines how those can be used to motivate personnel and what key benefits of that process are. Finally two companies' cases are described where the personnel motivating reengineering increased productivity of the development team and saved developers for companies since they decided to stay.
... The software development is a highly technological sector [10] with a shortness of personnel resources in many countries at the moment and is requiring a lot of time to adopt new workers. Nowadays increasing competition between software vendors and much more demanding markets force companies to stabilize their productivity and improve their development process in all respects using all available techniques [5]. Personnel motivating projects could be a good method to achieve that [5] into addition to other common motivating factors proposed so far [2] [3] [4]. ...
... Nowadays increasing competition between software vendors and much more demanding markets force companies to stabilize their productivity and improve their development process in all respects using all available techniques [5]. Personnel motivating projects could be a good method to achieve that [5] into addition to other common motivating factors proposed so far [2] [3] [4]. ...
... Two more terms should be defined before the learning factor is explained. A personnel of any company is not a set of totally identical persons, therefore those can be partitioned by their ability to learn something new into the following groups: • Innovating; • Slowly changing / slowly learning; • Static [5]. ...
Article
Personnel motivation is an important aspect to consider building a successful organization especially in the highly technological sector as the software engineering is. The paper continues discussion on projects that are established specially to motivate personnel and which were proposed in one of our earlier papers. Here reasons and drivers of those projects are revised. The learning factor is proposed to be used selecting workers to be included into personnel motivating projects. Thereafter some important factors to ensure success are considered. This discussion is continued by describing risks that can occur during those projects or after those are finished and several methods to avoid unwanted consequences are shown.
... Unfortunately the environment is not static in many cases and therefore the question of environment stability should be considered by the project management in order to avoid project's failing. The unstable environment can affect the project and some those examples were studied in several previous works dedicated to uncertainties in software functional specifications and requirements [4,5,6]. These works have shown how unstable requirements and changes in the environment could affect the project and how it can be avoided or addressed to meet customers' expectations. ...
... Until now the environment was always defined as an external element from the software project point of view. At the same time the migration of goals and expectation was seen as a shift because of uncertain requirements and mistakes that are fixed during the project [4]. The number and the nature of those fixes were considered as primary factors of the expectations migration process and therefore were defining the size and the nature of the migration process. ...
Conference Paper
The number of failed software engineering project remains very high despite numerous attempts to decrease that by employing different modern software engineering methodologies. There are different reasons for failing and only one of those is studied in this paper: a mismatch between delivered software package and customer's expectations used to verify this software. The paper shows that there exist several cases, where software that corresponds to the initial requirements appears invalid at the project completing phase. This happens because goals and expectations are not static sometimes and can mutate under different influencing factors. Moreover one of those factors can be the software project by itself as is sometimes released in several steps.
... In this paper we are going to propose a methodology allowing stabilising the software development process by increase the quality and decreasing the implementation time. The paper extends our previous researches [4,5] to the full software development cycle. The paper also examines problems arising because of bad communication between different team members and demonstrates how it can be solved. ...
... The communication gap can be defined as some kind of a problem in the communication process that makes the transferred information to be either lost or deformed [5]. There are different reasons of communication gaps existence and main of them are listed below. ...
Article
The software engineering is evolving on the permanent base. This evolution highlights some issues that were hidden so far or appeared with new techniques. In this paper an idea of supporting software design is proposed and extended to the whole software development cycle. Thereafter communication gaps are examined, which are important to avoid for successful implementation of the proposed technique. Several methods to avoid such gaps are introduced. Finally two companies' cases are described where the proposed methodology is applied. Those companies are quite typical therefore advices can be used in other companies having the same troubles.
... The " certain trouble " part of the definition refers to the fact that there are different types of the gap. For example a communication gap was defined in our earlier articles as a problem in the communication process that makes the transferred information to be either lost or deformed [6]. In this chapter we are going to analyse the distributed organisations case and identify gaps that are specific for it within the software development process. ...
Article
Dependable: reliable, secure, having high availability and safety, supporting continuous development concept of software development has become to be very important as an opposite to bad software customers are complaining about. Moving towards dependable software requires understanding of common problems and finding other ways than just testing to produce such reliable software. In this paper work-flow gaps that are specific to distributed organisations are revised. Unwillingness to travel for long distances, communication gaps, lack of information and process monitoring, weak collaboration and teams' internal "wars" for organisational resources are main troubles. Those should be addressed and forecasted rather than afraid or faced. It is the only way to enjoy advantages of the distributed organisations without having too big risk.
Chapter
Building software under current pressure of uncertainties coming from quickly changing global world, increased flexibility of requirements and changing customers’ expectations is a central challenge even using agile methodologies. Sources of uncertainties include requirements, communication process, involved people and the software engineering process itself. This paper is dedicated to revising the software engineering process and presenting ways we could eliminate uncertainties leaking through the process. This is done within the scope of the uncertainty management framework, which is an addition to common project management practices designed to identify, manage and control uncertainties within all stages and aspects of software engineering projects. The process related uncertainties management uncertainties’ elimination techniques include errors injection, stress testing, certainty testing of units, integration, features, usability and transportation components. It also concentrates on handling objects, which are subject for uncertainties like debt, recognised uncertainties, decisions and self-organised teams’ abilities. The software engineering process verification on uncertainties is a multistage process including planning, decision to execute, acting and monitoring, analysis, modification, acceptance and re-evaluation.
Article
Nowadays the successful software vendor needs to pick up all modern software development techniques in order to face the globalization and rapidly evolving business world. Moreover we need to combine several techniques or derive more than one advantage from them. Agile software development practices are the one, which we discuss in this paper. These practices suit very well for the commercial software development although have certain common mistakes or problems, which we do propose to close during applying the software motivational projects. The main purpose of the last one is to motivate personnel as using only material techniques to motivate is clearly not enough. At the same time such motivational projects are a perfect opportunity to work and close agile software development problems like over or underestimating applying novel techniques, gold-plating in development and many others as we show in this paper.
Article
Most modern companies realize that the best way to improve stability in the global, rapidly changing world is to be innovating and produce software that will be fully used and appreciated by customers. The key aspect on this road is personnel and processes. One of the best approaches to software development process into follow modern agility techniques. Unfortunately sometimes requirements to execute such are too high although the benefits are also sufficient. The paper proposes that the relaxing of those restrictions in many key aspects formulated as semi-agile technique can improve the level of possible adoption of it without any decrease of acquired benefits. The approach sufficiently differs from the hybrid agile proposals.
Article
The self-organized team is a core technique in the modern software development methodologies known as agile techniques. It improves the ability of a team to make efficient decision and move a project toward the ultimate goal. This technique has been recognized as a motivational practice in many companies, while in others applying it produced a sufficient negative impact. In this article the meaning of the practice is revised. We study cases when applying it would have positive or negative effect and how we can improve the efficiency of that even in a negative case.
Article
The implementation of the best software engineering process do not guarantee the best result. The ratio of failures is still very high although the formal review of the processes shows no defects. The most common problem is the amount of additional work discovered at the very end of the projects leading either to delays and extra cost or to sufficient decrease in the product quality. All this is unacceptable in the modern rapidly evolving world with a high level of competition and demand to produce software in time with acceptable level of quality. The paper describes how the software process can be examined and verified to ensure that it is not only established, but also followed and all potential risks and uncertainties are resolved right when they occur instead of suppressing.
Conference Paper
In this paper an idea of a central infrastructure supporting continues iterative software development is proposed. This infrastructure is designed to balance the software development process by providing a data storage for information moving between development process steps, postponed issues, discussions, specifications and collaborative documentation. The balancing originates from an opportunity arising in the iterative development with feedbacks either to stay on certain steps fixing issues concurrently or to move forward in the standard iteration cycle hoping to return to those issues later. The infrastructure will allow keeping enough information for both cases enabling to solve urgent problems right now and postpone others for later (long-run) reviews. Central feedbacks storage lets to access feedbacks to all project steps' members keeping themselves aware of potential risks and allowing to be included into discussions on them, i.e. efficiently manage within the whole project. All this makes it to be a powerful collaborative tool with a superb tracking functionality. Finally it can also serve as knowledge capture storage allowing to create join knowledge by collecting entries from many people in one place and use it later to learn the system.
Article
This paper deals with significant aspects of the process of making an evaluation system for the I.S. project management. This new era requires a new breed of software, service and support solutions. The first step in the management journey begins with understanding and gaining control of your operations. It is critical to be able to visualize what is going on in your IT infrastructure and implement solutions that not only monitor, but deliver proactive management capabilities. Management software has traditionally focused on managing the elements and resources inside the data center or network operating center. Over time, those elements have become dispersed and distributed across wide networks. As the complexity of infrastructures increased, so did the need for management software to handle this complexity, anticipate problems and resolve tshem before they impact the business.
Article
The number of projects' failures is permanently increasing despite of all modern attempts to keep projects under control. Dependable software development has become an important technique to move towards in order to improve the situation. A key success issue on this road is developing personnel into a team of highly professional, loyal and attached to the organisation people. Unfortunately the software industry is a highly technological sector with a shortness of personnel resources in many countries. There are many examples when employees do leave companies despite all common motivating approaches used in the organisation. The paper proposes establishing special, so called motivating, projects to address employees' needs to develop themselves by learning something new that can be challenging for them. At the same time it is important to understand all hidden dangers of running such projects in order to achieve the defined goal since otherwise employees could be rather unmotivated, stressed and even decide to leave the company. Fortunately some fairly simple approaches and methods described in this article allow ensuring success of the motivating projects and let focus on the true goal on the organisation evolution road.
Conference Paper
The only way nowadays to improve stability of software development process in the global rapidly evolving world is to be innovative and involve professionals into projects motivating them using both material and non material factors. In this paper self-organized teams are discussed. Unfortunately not all kind of organizations can benefit directly from agile method including applying self-organized teams. The paper proposes semi-self-organized teams presenting it as a new and promising motivating factor allowing deriving many positive sides of been self-organized and partly agile and been compliant to less strict conditions for following this innovating process. The semi-self organized teams are reliable at least in the short-term perspective and are simple to organize and support.
Conference Paper
Most modern companies realise that the best way to improve stability and earning in the global, rapidly changing world is to be innovating and produce software that will be fully used and appreciated by customers. The key aspect on this road is personnel and processes. In the paper we review self-organised teams proposing several new approaches and constraints ensuring such teams’ stability and efficiency. The paper also introduce a semi-self organised teams, which are in the shortterm time perspective as the same reliable as fully self-organised teams and much simpler to organise and support.
Conference Paper
The uncertainties is a well known factor affecting the final result of nearly any software project nowadays. Their negative impact is either a misfit between customers' expectations and released software or extra efforts that software vendors have to invest into the development process. The paper presents some novel approaches to uncertainties handling including an ambassador driven communication, discussion groups and varying length internal cycles with software demonstration meetings.
Conference Paper
Uncertainties management is the crucial part of modern software engineering practices, which is mostly ignored by management and modern software development practices or dealt with reactively. In the result unhandled uncertainties do introduce a lot of threads and cause later delivery of projects or over-budgeting, which means the failure of the software engineering process in most cases. In this paper foundation principles of uncertainties management framework are defined.
Article
Full-text available
The current state of traditional software development is surveyed and essential problems are investigated on the basis of empirical data and theoretical considerations. The concept of optimisation cycle is proposed as a solution. The relation of several different kinds of local optimisation cycles to the specifications, the communications, and the optimisation problem is integrated into a concept of participatory software development. Software development without integrated work and/or task organizational development is suboptimal. User participation and prototyping decrease significantly cost and time exceedings. The more effort in early development stages, the less effort in the maintenance phase.