Tips for students

Do you still remember the good feeling you had when you started programming? Do you remember that expectation that your job was going to help a lot of people and give you more autonomy and freedom? Where did it all go?

Unfortunately, I see that the IT market is losing connection with the value it should generate. The problemsolving mindset has been replaced by a model that only focuses on the scale. The goal is to deliver the maximum of features.

With this, we programmers become mere executors of demands. All the creativity and analytical reasoning that should be an essential part of software creation comes secondor is totally ignored.

The result is that, with each passing day, we accumulate overtime to deliver codes that make no sense to users. It is a vicious circle of dissatisfaction, loss of quality of life and waste of money. Looks like we’ve reached a dead end road.

I’ve been through all this and I know how frustrating it is, butfortunatelyI found the light at the end of the tunnel and managed to reschedule my career. I regained the enthusiasm and joy of programming as I connected with an incredible community.

In this article, I want to share with you the way I have traveled and five great lessons that have helped me to expand my autonomy and to design my life the way I wish. In the end, I also want to make you a special invitation.

Effectiveness vs. Efficiency

The predominant mindset in software development is that of scale production that we import from industry and engineering. The focus is on producing a lot of stuff with a lot of speed. It is the mindset of efficiency.

All the pains and frustrations that occur in the software market are due to incompatibility with this model.

I have understood in my journey that time and effectiveness are more important than volume and efficiency.

If you are on the wrong track, riding faster will only leave you further from your goal. It’s no use delivering a truck of features if the customer will not use even 5% of them. This model is a real waste of money and mental health.

The key is not to do many things, but to do the right thing in the shortest possible time. For this, the best strategy is the baby steps. Here it is worth the old popular saying that an ox is eaten in steaks.

As you make constant deliveries to your customer, you can manage and meet expectations. Instead of taking months to deliver a new full version of things, we go through and deliver improvements in the software every day.

The shorter your feedback loop, the stronger your connection to value. The longer the cycle, the greater the risk that your project will fail.

Remember: your code only has value when it is used by someone.

Your software lives

I see software as a living organism running, serving users and society. It is not a static product. It is in constant transformation.

So you have to be careful to kill it when you upgrade. I call this conceptLive Software“.

Think of a living organism. As soon as he is born, he begins to grow. As it develops, it is critical that all existing functions remain healthy.

Software is the same thing. As it evolves, it must be ensured that it is sound, consistent, and sustainable.

Think of him as a son.

If you do not care and do not give the resources that it needs to develop in a healthy way, it will suffer in the future. When I realized that, I adopted three strategies to help me. This brings us to the next topics.

Kitchen Developer

When we see the work of the chefs, we do not see an essential part. When they prepare a recipe, they already have all the ingredients and tools at hand.

The knives are grinded, separate pans, the ingredients peeled, cut and arranged into pots in the right quantities. All done so they can devote their attention exclusively to the preparation of the dish.

It is a stage without much glamor, but it is fundamental! It is this setup that will define if they will be able to dedicate themselves fully to the preparation of the dish.

The same model holds for programmers. Setup is key. Everything needs to be within reach of just one command. It does not make sense to have to stop everything whenever a new person joins the team, for example.

By programming as a chef, you reduce the delays in your work. With this, you can dedicate yourself totally to generating value for your client.

You’ll never be better than the computer in this.

You’ll always be more effective than a computer when it comes to thinking about creative solutions to problems, but you’ll never be faster than machines at repetitive tasks.

So I understood thatinstead of sticking your fist down on a knife edgethe best thing to do is to use the power of automation to gain speed and focus on what really matters.

Automation frees the worker from the need to continually judge whether the machine is functioning properly. So you only warm your head when the machine alerts you to a problem.

This is the process that integrates the machine into the feedback loop, making all work more fluid and productive.

Manual navigation in the system is important for creating interaction design and user experience. But once the usage flow is defined, the test must be performed by the computer systematically.

Manual navigation in the system is important for creating interaction design and user experience. But once the usage flow is defined, the test must be performed by the computer systematically.

If it’s not on the air, it’s not ready.

One of the biggest lessons I learned in my walk to an effective development model is that if the client can not use the software, it is not ready. And it’s no use spinning.

To get out of an addictive programming model, we have to stop theworks on my machinesyndrome.

It is critical that you complete each task by delivering what has been developed for the client. Completing a task also involves deploying the application so the client can use it.

The important thing is not the code you created, but rather what happens after it runs. And the customer will only know if his software solves his problem when he can actually use it.

Beyond Programming

If what I said in this article made sense to you, I have a special invitation to make you. On April 23, I’m going to release the first class of the video series: Develop Quality Software and in the Term, in it I will deepen each of the points I deal with in this article.