Who should read this:
Entrepreneurs who want to do business in the software world,
People who are curious about developments in the software industry,
Those who struggle to determine software costs.

The Project Story of a Software

You may be a new entrepreneur who has just entered the software world, or you may have questions and curiosity about this field. For this reason, I wanted to talk a bit about how a software project progresses. 

This journey, which I started in 2009 as a web developer, led me to specialize in certain areas due to the gaps I observed along the way. I had the opportunity to work in various fields such as design, development, analysis, and project management. 

I realized that my way of progressing naturally pushed me toward certain methodologies when I started working with corporate companies. 

There were many misconceptions that were considered correct. In the past, due to the lack of resources in the web world, I tried to understand these topics by reading books and correcting them by learning from my mistakes.

I can say that software is a discipline that encompasses many different branches. In the past, a person referred to as a Web Developer was responsible for all parts of software development, whereas today each area has become a separate discipline requiring its own expertise.

When you take on a new software project, you may not know where to start. Feeling confused is completely normal. In the past, we couldn’t learn due to a lack of resources; today, we may be confused because there are too many resources. 

When you are about to take on a new project, your client’s first two questions will be: When and how much? 

Before answering these questions, you need to determine whether you are capable of handling the project. In fact, while finding the answers to the “when” and “how much” questions, it will also become clear whether you can deliver the project or not. As you repeat this process and complete more projects, you will be able to evaluate this much faster. However, at the beginning, I believe this is a process you will experience through trial and experience.

The first step of this job is analysis. In my opinion, the analysis phase is the most costly and the most valuable part of the project. With a solid analysis, you can assume that 50% of the project is already completed. 

The biggest risk here is that after you complete the analysis, the client may decide not to proceed with the project, meaning you will have advanced an analysis process for nothing—although you can still count it as experience. 

My personal opinion is that if you can convince your client and believe you are competent in analysis (you can also get external support), you should define an analysis fee separately and communicate this clearly to your client. 

This is how I proceed: the analysis process for a project of this scope will take two weeks, meaning 10 business days. After the analysis, with the documents I provide, you can take this project to another software company as well. However, starting the project without this analysis may cause losses for either you or us. When I explain it this way, clients are usually convinced. If you encounter a client who is not convinced by this, I believe you should not work with them. Otherwise, you may end up not getting paid with the excuse, “This is not what I wanted!”

So yes, the client accepted our analysis process and we started working. What do we need to do at this stage? 

1 - You should prepare a list of questions to understand the project. Your client will usually come to you saying, “Something like this.” It is impossible to define the scope of the project without asking detailed questions. 

2 - Once you understand the project through questions, you need to continue with mockups and wireframes. A mockup is a simple design tool that shows the features within a screen. You can even draw it on paper with a pen—it will still work (you can use Balsamiq). A wireframe defines the user flow, such as which screen the user will see after clicking the login button. 

Note: Today, this area has become more integrated thanks to design tools like Figma. With the prototype feature, you can define both the items within a page and demonstrate how the flow will progress. 

3 - Once this is done, you will understand which developers you need. If your technical knowledge is limited, you can explain these areas to the developers you will work with and ask them for effort estimates. If you have sufficient experience, you can estimate the effort yourself. 

If the analysis is for a web software project, it will consist of the following components: UI/UX Designer, Frontend Developer, Backend Developer, Database Architecture, and Test Developer.

Once the analysis is complete, we should ask the client for feedback on the analysis. The true shape of the project emerges after this stage. The client’s expectations and your analysis should align perfectly. 

If we reach an agreement with the client, we can proceed with the process. 

Developers have submitted their effort estimates. So how do you determine the cost of this project? Each developer has a daily or hourly cost. If you are a freelancer, you can directly reflect this cost in the effort calculation. If you are a company, you should include operational expenses as well—after all, today the price of a Mac PC has exceeded 100,000 TL. 

Project Cost: This should be calculated as each developer’s daily rate multiplied by their estimated effort, and then summed up. 

However, you didn’t just let the project run—you managed it. Therefore, you need to add a project management cost as well. Using the same method, you can calculate the project management cost by multiplying the effort you spent by the project manager’s daily rate and add it to the total project cost. 

Once you agree with the client, the first phase you should proceed with is UI/UX. You conduct meetings and research related to user experience (UX is a separate field of expertise, but in our culture, companies often trust their own ideas more than UX research and tend to ignore the broader audience). Based on your research, you create a design. I strongly recommend not moving on to the next phase without receiving design approval.

Design revisions come in, you refine the work, and finally receive client approval. Now it’s time for the development phase. While the frontend development (UI coding) is progressing, you can run the backend development process in parallel.

The database architecture is completed, the frontend is done, and now you are in the stage of implementing the backend code. Once this is completed, a software development process will be finished. 

Since the topic is quite extensive, I wanted to briefly describe the process without going into too much detail, although I intentionally skipped many areas. Unfortunately, theoretical knowledge alone is not very useful in software development—you need to encounter many real-world problems in practice so that you can find solutions and avoid them in the future. Software development is a profession that requires continuous self-improvement. Especially today, even a month of staying out of touch can distance you from the field. I wish success and plenty of patience to everyone who is interested in this area :)