Preparation for program development is one of the most challenging stages of the development process. Now we will talk about the plan, budget, method and management side of the business.

Please write the first part Don't forget to read. Since some of the issues are covered in the first article, we will not focus on the preparation phase of program development in this article.

In my first article, we entered the history of computers and operating systems and tried to give short answers to questions such as what is a computer, what is an operating system, what is a program. In this article, we will show you ways to get a little more confusing, more discouraging, and get rich quick.

Deciding what the program will do

What do we want our program to do? This is probably the basic and most boring question of the program development preparation phase. Do we want the program we wrote to apply various effects/effects, for example, to the picture chosen by the user that will make it look more beautiful? (B612 for example), or user-selected images from one format/format to another to convert do we want Otherwise, we want the program to run before the operating system and to detect the installed operating systems and choose between them. to enable is it? Have a more modest idea in mind?

Getting to know the alternatives of the program

We've decided on the basic function the program will do, but maybe we're reinventing the wheel. Maybe someone even thought of our brilliant idea and it was implemented. Therefore, it is useful to know the programs that perform the same or similar functions.

Deciding on the licensing of the program and its sources of income

Actually, you can decide that later. On the other hand, it is useful to decide on certain limits from the beginning in order to avoid mistakes such as building a software that you plan for purely commercial purposes on a tool that requires it to be completely open source. This software is completely free to use, but it may contain advertisements.

Today, many mobile phone applications and websites use this method. Some software, especially games, have both ad-free and ad-free options, and may allow ad-free use for an annual or application lifetime. It installs as a trial version, but then provides content or services for a monthly fee (Netflix and its derivatives), or according to usage rate It may charge a fee. This issue is completely in line with the developments in the business world, new business models are constantly developing.

Budget in preparation for program development

There is usually no need to create a budget for a program you will write for personal or corporate use. If you are not questioned whether you work as an employee or not, you can write a program that will benefit your company or yourself in your spare time. However, if you are going to write the program for a client, the issue that must be determined from the very beginning may be how much budget or man/hour wages are planned to be spent.

Decide on the platform or platforms on which the program will run

For example, you want to make a program that offers healthy eating suggestions and you named it "Healthy Life with Ibn Sina" (there is no such program yet). You have decided that the program should run as installable on mobile phones, and you still want it to be able to access the same information on the desired website. You have not yet decided whether membership will be required and what privileges members will have over non-members. So let's start.

Creation of work plan or divide and rule!

Of course, keep your original opinion to yourself. There may be types who always want to steal original ideas. your preferences in a Software engineerDo not hesitate to consult. A software engineer will usually advise you to divide your project into reasonable stages, not to try to do all the work at once.

For our "Healthy Life with Ibn Sina" application, local storage or the fact that each application keeps its own data does not seem possible due to the possibility of our content being dynamic and constantly updated on a platform basis.

The most reasonable solution is to create an administration panel where the data is uploaded to the database. API It appears as sending to applications via.

Stage 0: Generating Sample or Baseline Data

It will assist the software developer while creating the Sample Data or Basic Data management panel, making it easier to create the necessary database tables, relationships, values ​​and lengths.

Of course, it is also possible for the customer who says the caravan will line up on the road to dilute this stage, skip it or not provide any data.

Stage 1: Model/Mockup Creation

The model helps determine what the application will look like in the final stage, which transmitter will be displayed where, which effects/effects will be used. Of course, it can also reveal some unpredictable relationships and needs.

Step 2: Creating the Admin Panel

It is strictly expected that the administration panel will be able to perform basic content adding, changing, deleting operations.

Stage 3: Provision of the API

Now that we have sample data or basic data, we can provide our API service for applications.

Stage 4: Preparation and Release of iOS App

With the prejudice that iOS users are more willing to have a healthy life than Android users, we decided to publish our client's application on iOS first. The high consistency and similarity between devices may also have played a role in this preference.

Stage 5: Preparation and Release of Android App

When the iOS version of our app was released, we received many just and unjustified criticisms. According to these criticism and improvement suggestions, we have made our application both more stable and richer in content, and now we are ready to step into the market with the most users, although many devices such as Android use inconsistent screens, processors, memory, versions and interfaces.

Stage 6: Due to over budget, we gave up creating a website for our app at this stage, until we found a new revenue stream. Instead, we created a simple page with store links for the iOS and Android versions of the apps.

Which project management model did we use?

We said "Divide and Rule" but without realizing it waterfall project management model We have also used it by making it up to ourselves. We could have used the more up-to-date Agile method instead. However, the customer did not have the budget to spare for regular updates and bug fixes. The application was very popular and a healthcare firm agreed to be a junior partner of the application. The customer now had two main requests from us, the constant bug fixes of the applications and of course the implementation of the delayed website issue. certainly Agile software development model It was possible to pass.

What are the customer's new demands?

Our client wants the website to work reasonably well on both mobile phones and desktop computers and have many of its features available. Classically, it wants an about us page, a download page where appropriate versions of the app can be downloaded, and a manageable area under this page where various famous/pioneer/influencer comments can be entered about the app. Instead of having the e-mail address openly on the site, a contact form should be created and the requests/requests/comments of those coming from this contact form should be recorded and divided into various categories such as suggestions, requests, errors, and they should be managed and strictly archived. Of course, this form also needs to be protected against spam attacks.

Final Note: I hope you have enough energy left to read the new article. Because in our next article, we will try to go into much deeper topics.