Software Development Process
 
 Editor's Note
 Profound  Transformation in Ten  Years
 When I Was Your  Age...
 Once Upon A Time...
 Surfing on the Wave of  Transformation
 Hi to Everybody
 Software Development  Process
 Digital Video
 IPv6
 ICT-Based Learning
 CISN Archive
 Send Feedback
 
     
 

Abstract

Essential suggestions and solutions for software developers on software development process, market research and system analysis.

1. Introduction

To catch up with the current market competition, and more importantly, to survive in current market conditions, many companies are resorting to information technologies today. However, investing solely on hardware capabilities does not suffice to obtain the best benefit from the information technologies. For the companies that realize this fact, it is a much difficult task to find the best route that takes them to the best solution.

Within the context of information technologies, taking advantage of the software technologies was not easy in the beginning as it was also the case with hardware technologies. The market suffered great losses, because there was a few software developers and they were not always able to produce in accordance with the market demands. However, this initial transitory period endowed the software developers with valuable and vital experiences.

In order to meet the market demands software developers started to utilize newly emerging more powerful software tools to develop more professional applications; however there were also some producers that developed some amateurish applications that in a way badly affected the market.

In Turkey, the process concerning the information technologies started firstly and quickly in academic circles. The private sector, however, caught up with this process very quickly and soon surpassed what academic circles have achieved up until that time. These developments in the software sector positively led to the increased awareness of the consumers, however, it forced the developers to instituitonalize. Formerly, many companies were demanding software solutions from the individulas; however today, when they are seeking software development service, the companies are seeking an institutionalized organization to provide such service.

There is a great deal of software developers in Turkey and they operate their bussinesses in many parts of the country. Despite this fact, it has not been possible take advantage of and utilize the information technologies at the optimum level both by the software developers and by the target sectors.

Today, it is equally important for the developers of software technologies to pay as serious attention to the market possibilities and processes as the attention as they pay to the software development and application phases. According to a survey of PAM (INTERPRO Market Research Center) about the software market "...The software market has expanded by approximately 26% in the last three years. It is estimated that In 1999 the proportion of the system software on the software market was 26% and the proportion of application software was 74%...".

Software market is such a rapidly growing sector that the product development processes to be observed by both the software developers and target sectors must be elaborated soon.

This study aims to illustrate and put forth the relationships between the product development phase of a new product and sales/support services of a software developement company.

2. Software specification

A software company may follow two main but separate paths at the beginning of the software development process. The demands exerted by the companies of the sectors may determine the specification of the software or the software company may sepecify a state of need and create a demand due to its absence.

It is usually the demand bespoken by the sector that the software company starts the software development process. It is because of the fact that the software company at least guarantees the sale of the product it develops; it simply evades a situation of loss at the end of all the effort spared. In both cases, the route to follow is the same. And it is the following process that determines the ascent or descent of many software companies.

3. The analysis of the sector where the software will be used

A company that has decided to develop a software should analyze the sales potential of that software in the first instance. The software company should not waste time and effort by trying to develop a product for a sector that clearly does not prioritize the software investments and that does not allocate much budget for such expenditures. It is essential for a software company to be able to calculate beforehand how much return the effort spared will yield in the end.

During the analysis of the target sector for which the software is going to be developed, the following factors should be taken into consideration first and foremost:

  • Intensity.
  • Economic opportunities.
  • Managament cadres’ or the company owners’ interest on the information systems
  • The computer literacy or awareness of the employees.
  • The organizational structure of the management.

    During the probing into the sector, the software company should also consider the numerical majority of the companies. Developing a software for a sector where a very few operators actively work may in the end turn out to be a very costly job. In such cases, the software company had better decide not to develop the product at all.

    On the other hand, the level of computer awareness of the people that is going to use the software is also an important fact. The graphical interface of the software must certainly be user-firendly. And it is definitely at this stage that developers should begin to plan about the level of training the end users are going to get.

    Though a sector may have a lot of operators, the companies may value the information technologies less. Or they may not allocate sufficient budget for the software investments. Therefore, the hardware requirements of the software or the need for the trained personnel should be assessed well by taking into considerations mentioned in the previous lines.

    4. The other software used in the sector

    Unfortunately, many software companies still start developing a product without even doing the minimal reseach beforehand. When these companies encounter with a better software solution than theirs, they then feel obliged to examine and assess the current products on the market. However, this means that they are to start the job all over from the beginning or they are to cancel all the labor they have produced up until that time.

    To eliminate these frustrations, the software developer had better inquire well about the available software within the sector. The developers must assess the shotcomings or powerful features of the other software. By doing so, they can develop a superior and more quality software.

    There may a variety of the products serving the same purpose within the sector. In this case, before starting the development of the software, it is crucially and strategically important to analyze the scope of the competition, the differences between the products, their market shares, the regional intensity of the developer companies and the opinions of the users.

    The priority should be given to the following facts during the analysis:

  • The activities of other developers.
  • The regional location and technological capabilities of the developers.
  • The activities of the developers in other regions.
  • The market shares of the products.
  • The superior features of the products.

    The software companies may hold the exclusive monopoly of the market in some specific regions. In this case, a company should seek unattended regions that are free of this monopoly but that may also bring revenue. The region of focus should be evaluated and worked well about its dealer infrastructure, the transportation and other vital concerns.

    5. The analysis of the software

    After completing these preliminary assessment procedures, the company may safely decide about whether to develop the software or not. The final decision should strictly be established in the light of the former analysis process and the possible risks should be calculated beforehand.

    During the analysis of the software, the company must determine to work on one or more customers. However, working on more customers is advantageous in that it familiarizes the developers with the sector and it provides extensive analysis opportunities.

    It is essential to bear in mind that the sactors are not homogenously characterized.

    The factors to analyse:

  • The reasons for the state of software need.
  • All the stages of the activities from the beginning to the end.
  • All the documents, forms and other official stuff.
  • If available, the software applications used and their purpose of use.
  • The opinons and suggesions of the working personnel.
  • The data that the customer needs and that must be kept.
  • The useful iformation, reports and forms that must be created.
    Moreover:
  • The pioneer companies in the sector should be inquired. The problems that the developer company may encounter in the future should be estimated and possible solutions should be kept as valuable information to be used later.

    The company should observe the adaptability of the operators at small, middle-sized and big companies of the sector to the development stages of the software. The main goal must be to include the solutions to the problems encountered by the operators at the development phase during the actual development.

    Besides, it is equally important to regularly report and keep the information gathered during the analysis.

    An analysis that observes the standards given above will absolutely yield healthier results.

    6. Designing in accordance with the analysis

    It is important that the user interface of a software be designed and created by a professional team. The end user should be using the program conveniently and easily without feeling bothered or distressed about particular annoyances. The designing phase depicts both the the user intreface and the backbone of the program.

    The other technical factors of the designing phase can be listed as follows:

    A. How to choose a database and how to design it

  • Specifying the data tables.
  • Specifying the fields.
  • Specifying the index and the key fields.
  • Establishing the relationships between the tables (Relational database design).
  • Designing the triggering and procedural codes.
  • Selecting the database. B. How to design the interface and select the development tools
  • The name of the software.
  • Designing the icons.
  • Cover picture (Opening picture).
  • Specifying the compiler or interpreter to be used.
  • Preparing the coding and workflow diagrams.
  • Designing the data entry interface.
  • Designing the search interface.
  • Designing the printer or screen report interfaces.

    As seen above, the design process is grouped under two main titles. The designing of the database which constitute an integral part of the software infrastructure and designing the interface of the program are the two main pillars serving as a roof support during the whole design process.

    Choosing a database and designing it

    Though many software had excellent visual tools, unfortunately, they have disappeared in the course of time; it is all because it was not possible to transfer them to multimedia environments or they were not able to support the magnitude of data traffic.

    During the database selection process, the design team of the database should consider the maximum values obtained from the former analysis. For instance, if it is expected that the user shall be able to access million of records in the future use of the software, the software that will be selected should be able to support that feature and it shouþd be designed accordingly.

    It is very appropriate to mentioned here that, today, even the simplest application is developed using the open system database. The option of hiding the design is not welcomed and it is regarded as an incovenience even by the customer. Naturally, the customer prefers an open system database; this will enable the customer to deal with the future problems that may be encountered.

    If we consider the influence of the electronic commerce in the future, the importance of the desgin and the choosing of the database becomes more conspicuous.

    Designing an interface and selecting the appropriate development tools

    Some applications are designed in such a way that you are not able to shut it down for moments of time. If the interface of the application is designed well, both the end-user and the support team of the company encounters with less problems and uses the program more conveniently. Moreover, the coding tools that the programmers are familiar with or that they can provide supoort with should be used.

    It should be kept in mind that the center of focus should not only be the customer. The support team of the company should also be considered during the design process. The customers would not be willing to buy the applcation software that does not provide sufficient support.

    7. Taking the design to the computer environment (the coding phase)

    The codes do not extend in length as it was the case previously. Coding is used due to the application of enhanced technology. Using the tools are recommended. However, this does not cancel the fact that good coing is necessary.

    When the programmer receives an application whose design is completed, s(h)e should first unerstand the module well. The programmer who is not able imagine the module in his/her mind well cannot achieve success.

    The coding details, workflow diagrams, tables and triggering codes should be handed over to the programmer in writing.The programmer should be well informed about the job to be done.

    The components of the coding are as follows:

  • The coding should be logical, reliable and understandable.
  • The spelling should be correct.
  • It should be simplified by functionalities and special libraries.
  • It should be easily supportable.

    It should be emphasized that the software is not finished when the coding is finished. In fact the coding task is never to be completely finished; with additional coding, the former one is continously renewed. There is no exception to that. However, only the software that begins to answer the demands can survive. All the facts mentioned up until here prove once more that the coding should be logical and understandable.

    Some programmers sometimes need some special functionalities that perform specific tasks. It, indeed, takes a lot of time to do these specific coding tasks. Charles Calvert recommends that one should not "rediscover America" each time. He says "...It is generally wiser to purchase these specific functionalities at reasonable prices from the dealers. If it is feasible for you, do it on your own each time. Experienced programmers mostly prefer to sell the programming tools to the other programmers. You cannot beat programs like TurboPower in their own playground. Buy their codes, and take draw to your side. You do not have to rediscover America each time...".

    8. Software’s testing phase

    Testing of the software seems to be the last stage of development, however, it should be a continuous and all throughout process. The first tests during the development process are performed by the programmer himself/herself. Yet, the actual debugging and the task of providing feedback is done by the test teams. Test and feedback still continues as the end user users the program as well. The tests that the programmers perform are mostly technical tests rather than workflow tests. Workflow tests are carried out by a group of specialists.

    Software Testing Process:

  • Programmmer’s testing.
  • Testing of the testing team.
  • Testing of the user group.

    The most fruitful feedback is obtained at the testing of the end-user. During the beta tests of the software the software developer must request from the customer to create test groups. This also facilitates the adaptation of the customer to the program. At the end of the tests assessments should be made with the relevant groups. Sometimes the source of the errors is found out to be the at the analysis process or the design process. Or, if there is another request of the user, this request should dbe directed to the analysis team. Because the architectural foundations of the software are created by them.

    9. Preparation of the training and orientation materials

    The software is ready for use after it is be finalized completely by the addition of complimentary components. The training of the application and its documentations constitute the complimentary components.

    The most important material to be used during the sales and support processes are the documents. The infrastructure requirements, the installation, settings and related documents should be created carefully by professional people.

    How to get prepared before sales process;

  • Installation and settings documents.
  • Creating application training programs .
  • Preparation of the instruction manual of the application.
  • Providing answers to frequently asked questions.
  • Preparing training program for the distributors.
  • Preparing training program for the support team.

    All the groups of the software development process should be one step further than the end-users. In the next step, the customer mey request that the application is carried to multimedia or Internet environment or to other interactive environments. Therefore, the software costs low with the initial considerings and more value will be added to it by the technological enhancements.

    10. Conclusion

    All these process steps have been mentioned here in general outlines without giving further details. As a matter of fact, the most important technological tools that contribute to the profit of the customer are the application software. To develop a good application software developers should be committed to the steps of the development process. In the following graph one can observe the increase that an application software adds to the customer’s performance and efficiency.

    The information to be derived from what is conveyed up until now can be summarized as follows with some additional factors to be considered:

  • It is not enough to own the information and knowledge to achieve success. The employees of the company must own the techniques and skills to use that information.
  • The software developer company’s reliability is assured by how it supports the software it developed or how it renews its product according to the requirements of the time.
  • The quality of the application software is assessed by the magnitude of the combination of such components as sales, support and performance.
  • It is the duty of the analyst and the support team to know well the sector the application is being developed for.
  • It should not be forgotten that the length of time spent for analysis is never a waste of time.
  • In every phase of development process there should be a psychologist or a specialist on how plan education and communication. This is a factor that contributes to the performance of the product. It, of course, causes annoyance to the end-user if the colors and designs selected poses negative effects on the usability of the product.
  • The security concern during the software development process should be approached with two methods: the security of the system and the security of the data. Both of them are indispensable to the customer.
  • Even in the busiest time, the software developer company should continue its researching and developing activities. The innovations achieved should be integrated into the works of the software developer teams. The information should be shared with everyone. However, if little progress is achieved by opening the resources to everyone, the information should be disseminated by employee trainings and social activities. It is a well known fact that software developing process should be team work. The most essential part of it is the human factor.
  • If the coordination between the software teams have not been established, then the product developed will only be an aggregate of separate works. It will take time to integrate every process to each other then.
  • Developing new ideas is a very central issue to the development of the software; therefore, the emplyees of this sector should own the proper and convenient conditions that will nurture the cultivation of thoguht processes. If this opportunity is not provided for free thought, it will be difficult to create and develop new ideas; and there will only be copying in that environment.
  • Most of the people are not aware of the fact that even the biggest software developers are adding patches to their products. The crux of the matter is that the customer should not feel any incovenience about that. Despite this fact, it is interesting that the software developers in our country do not add patches to their software, but rather, they reinstall lthe product. It is high time that software developers in our country developed new methods to overcome this shortcoming.

    References

  • BTHABER, issue 259, 2000.
  • DELPHI UNLEASHED, SAMS PUBLISHING, Charles Calvert, 1997.

    Saffet PAMUK

  •  
         
      - TOP -