They always advise "minimize risk." Nobody clarifies what this "minimize risk" means. How do you reduce project risks? First, I'll tell you a story about what you need to pay attention to at the start of the project. Then we will write the rules that will ensure the success of our project and what we must pay attention to.

Budget / Cost Planning

You must carefully calculate your budget and ensure that you will obtain labor inside your budget. If your budget is limited, you should begin with simple measures. This is one of the most significant Agile Management System guidelines. With each small step, more features are added to the project, but at first only the basic functions, such as a canvas, are available.

I received a phone call from a consumer in 2013. He stated that he had been attempting to code a website project with news information for the past four years. I provided him a basic estimate without considering the project's time and expense. You cannot calculate the precise price by selecting a number from the price range provided. When the project analysis is completed, it is possible that a slightly higher or lower price will emerge from this range. This quote merely tells you the probable pricing range for the software analysis contract, and you will know if it is within your budget.

This consumer was dissatisfied with both the pricing and the timeframe. I tried to explain to him that I couldn't do it for less money and that it wasn't a job that could be done for that price. In this situation, I normally expect him to accept the correct fee for the task or to thank me for the information before hanging up the phone.

For about 20 minutes, he told me that he had been duped by 2-3 people and that the project had not been completed. He informed me that I should reduce the money he paid to the scammers from my quote (Why!?):) This is when I burst out laughing. The project was most likely assigned to a recent graduate amateur or a real estate agent working on the side. Even if just 10% of the project was programmed, it's easy to imagine how much spaghetti code was written in the backend. Taking on such a job and rewriting the code would take less time. He wanted to reduce the price to half of the offer.

I was intrigued and inquired about the domain name. I recalled this project. He received another offer from me four years ago and did not like the pricing. I pointed this out to him, and he told me that I had to complete this project as proof of his anguish:) I took a deep breath and said,

"I didn't lower the price I quoted four years ago." We're not talking about a grocery shop here; we're talking about long-term, willpower-demanding labor, right? You get your pricing offer, and if you don't like it, you move on. You do not squander other people's time. When I question where your bullet point project is, you answer you've only written two paragraphs of your thoughts in four years. I give you an approximate pricing offer, you pick the lowest one, and you try to trick me for 20 minutes halfway through. Come around again, I'll see you in four years." I quietly hung up and blocked him. I was probably not that polite.

When I looked at the project again in later years, I saw that it was attempting to be published in a broken form with only 1-2 pages. He was probably defrauded a couple more times before abandoning the project. I don't know many folks who believe they have a work done with the thinking of "I got it cheap" and have not been duped.

What you get from a kebab shop for 1 tenth of the real price is steak-flavored chips. 

I can see your heart darkening. Let's turn the lights on.

Why am I telling you all of this? We must first learn to separate the good from the bad, so that even good fruit can grow in healthy soil. We can now begin with the rules;

As I have previously stated, the first step is to precisely define your budget. Check your present balance rather than the money you expect to receive from someplace. Otherwise, making project prepayments and interim payments will be difficult. You will not be able to complete the project since you did not follow the requirements of the contract, and you will make payments in the air.

Contract / Pre-Payment / Mid-Payment

No professional software developer or software company will accept your project without pre-payment and (depending on the size of the project) interim payment. If the contract is not made and the pre-payments are not received, that project will never be done, you can be sure.

Milestones (Project Phases)

Write your project item by item, dividing it into phases (milestones). Even for a simple microsite, less than 8 hours of work is insufficient. Destroy Google, edit your articles over and over and try to create the right flow.

In each of your phases, a working system should emerge and you should be able to test it like a finished project at the end of the phase. Every item you write in your phases is a draft that will form the project contract. The important point here is: Even if only the first phase of the project is prepared, it should come out in working condition. When you encounter a problem and you have to cancel a phase completely, when you transfer the project to different people or institutions, returning to the previous phase does not cause a big financial loss.

Project Summary

After completing the items of your project, prepare the project summary. It may sound like a simple task in summary, but it is more difficult and more important to reduce a project to a few paragraphs or articles than to prepare the whole project. This is necessary for you to get a quick and final price and time quote. When I looked at my e-mails from the past years, I realized that I had not read many project proposals that were overly long and full of spelling mistakes.

How Do I Find an Expert?

Find a software developer or software agency with strong references. Not every software developer keeps their references publicly available, you can request them by e-mail. In case of a quote above your budget, state that you will only do one or a few phases of the project and get a quote for them again. Here you have to choose the phases correctly. The developer/agency you decide on usually doesn't respond to your third request because it starts to think your budget is too low.

At this point, don't take it as a good option to look rich. Either a mediocre wordpress will try to rob you, or a really good software developer will do the job you specify much better than you expect. This will result in very bad results for the duration of your project and your budget that you overestimate. In the literature, this is called the premature optimization problem.

Clean Code, SOLID, Software Architecture

Indicate that you want clean coding in accordance with SOLID principles on an up-to-date framework. It is important that they tell you the principles they apply to you. Even if you don't have technical knowledge, you can know a person who is stuck in a corner. Some people use jargon and lie! Please take note of the concepts they have stated and search the internet!

Documentation

Indicate that you will request the design of the software structure and the documentation of the written codes with a report every week. This report can simply contain changes from the past week to this week. In the document, all software design should be detailed technically. You need to specify these processes that need attention, because the emergence of such a request brings additional workload. Since the developer or the agency did not receive such a request from the beginning, it will be much worse for your project if it is found empty and accepted. Be honest from start to finish. We can all notice that customers are squeezing additional features into bugs or something :)

While these last demands will increase the cost, they significantly minimize the risk for a successful project.

Project Management of Big Projects-How to get started-What Should Be Considered?

Your rules will increase even more in matters such as large Saas projects. I will share the stories of unsuccessful and successful saas projects in different articles. Now, let me talk about what you need to pay attention to in a project of this scale.

The previous articles are also valid for very large projects. Now we will add some to these;

Meeting and Reporting Cycle

I stated that a functioning structure should emerge in each phase. You need to shorten these phases (milestones) more. Interim meetings are held with the software developer at the end of the phase in small projects, while weekly or biweekly meetings are held in very large projects and the progress of the phase is discussed.

Avoid Disrupting the Software Workflow

Every change that will be added while continuing the project will increase the duration of the project very seriously. There is a serious workflow on the software side. When the project starts, we move forward at the points that are connected to each other on the software. These links are abstract links from a software perspective, not from a user perspective. Even if the phases you have determined can be realized with the steps you want, the items you have determined in these phases do not take place in order, they are not technically healthy. Therefore, doing additional processing even at a different point on the page we are working on can disrupt the workflow. This workflow consists of algorithms followed by the software developer.

When the calendar starts to get mixed up, problems arise both psychologically and financially. Your cost can increase drastically. Therefore, if you see significant shortcomings, you can create new phases, but you should not request changes in the ongoing phase. You should talk to the project manager or software developers about the new phases you have created and get both an additional price quote and an additional time estimate. Most importantly, you should do the positioning on the calendar with technical people. This interphase may need to be added at the end, it can also be done as the next phase.

In short, squeezing work in while there is a software workflow, squeezing a small additional project (which is common in companies) causes that project to never end, sometimes not to start at all. Despite my warning about this, they always make the same mistakes with their money greed and they will get what they have.

Single Developer? Team?

In large projects, a team is usually worked with, not a single software developer. At least, it should be a frontend developer for visual coding and a backend developer developing structural algorithms.

In the past year; I was asked how long it would take to complete a complex task such as serious devops processes, render engines, drag and drop operations on canvas with reactjs, and scaling horizontal architecture. I said we need a team. They insisted too much, I couldn't break it, I said 10 years. They didn't really believe it was it :) There is a core team of 15 people working on a similar project and they got the project up and running in 3 years. In fact, 7 people work in the team of the company that develops an online accounting program that looks ordinary, and the project has not been fully completed for 2 years. It is true that I have certain powers, but not such otherworldly things.

In short, if you dared to do GIANT PROJECTS rather than big projects, you should also dare to establish a company with a team of at least 20-30 people. It is not technically possible to start small in such projects. How will you divide the phase? What would you say if a phase will last 3 years, if you are going to commit 3 years of a person to this job, and when the new software developer leaves your project tomorrow and says, "This very complicated installation needs to be done from the beginning", what would you say?

Technology Selection

Choosing the right technology is very important. It is very difficult to find the right technology from sites created by artificial intelligence modeled on old information. For this, you can have the project consultancy done separately and the project by a separate team.

Why do the final price and final time come out after software analysis?

The items you remove are discussed, discussed, and the necessary technologies are determined. By considering these technologies, the items are grouped and basically the duration and the price corresponding to this period are determined.

More specifically: If working with a team, programmers have low tenure (they change jobs quickly). This is a risk. There are blind spots that are not clear during the analysis. These blind spots can sometimes extend the specified deadline up to 30% for professionals and up to 1200% for amateurs.

A software developer's only expense is not a desk, chair or computer. They must constantly follow new technologies, buy paid tools and trainings, they need a psychologist because they are constantly dealing with abstract enemies, and they need good health care because they are constantly inactive. They should eat well, protect their brains, and come out of the 4 walls often. For these reasons, it is very difficult to train qualified personnel in this sector. Many of my programmer friends either left the profession or continued to code in more monotonous companies with the mindset of civil servants. Why do you say that there is money in software development and that most of them flee before completing their second year? For such reasons, software developer fees are higher than in other sectors. Your cost comes out with hard training and if you don't work with these people professionally, things don't go the way you want.

I'm So Confused

You have to make a project with jargons that summarize a profession that deals with millions of parameters. This will be a little challenging. A little bit of research into the fundamentals of software and how it works will add tremendous benefits to all of this. Dont make the "I can do it too" mistake here. Yes, you can, by saying goodbye to your current job and projects and staying awake at night :) Your aim is to have enough technical knowledge to do this process management correctly, otherwise no one expects you to have advanced software knowledge.

After performing all these, the job is transferred to Project Process Management. I will talk about process management in more detail. When you apply the above with a good project, you will increase the chance of success of your project by 70%.