Building Something From Scratch: Week 1
Hi!, welcome back once again to my blog. This time I would like to introduce the beginning of a new phase in the Academy program (that I have been discussing in my last few blogs). This phase is called Building something from scratch, and as you can interpret, we are in charge of working on a project to expose ourselves to real scenarios of the software development industry, creating a project from zero, and implementing what we have learned and state of the art technologies and practices.
I think that we will learn about the importance of working as a team, helping each other, cooperate and develop. In fact, this project will teach us how crucial is collaboration in software development.
In addition to that, in the next paragraphs, I’m going to complement this blog with some of my thoughts about some lectures that I had the opportunity to review. These materials, allowed me to change my perspective about things like being an optimist, important tools to create a culture of improvement, quality, humility, discipline, and teamwork. Very important skills for a software developer to take into consideration.
There is something called the optimism bias, this concept is about finding an equilibrium or maintain optimism in the face of reality. Some of the things that will make you consider begin to be a little bit more optimistic are the following:
- Optimists expect good, they anticipate the things that are happening in their lives by having high expectations, and that enhances their wellbeing.
- Optimists have the power of changing their subjective reality, as a matter of fact, the way we expect the world to be will change the way we see it.
- Therefore, optimism changes objective reality, optimism makes you try harder.
- So, to maintain optimism in the face of reality we must remain hopeful and protect ourselves from unrealistic optimism. Be optimistic, but prepare if things just don’t work out as we plan.
How do we get good at what we’re trying to do?
In the past, a great way of being good at something was to be independent and self-sufficient, autonomy was our highest value in several areas.
Nevertheless, as facts have shown, we can’t know it all, and we can't do it all by ourselves.
This is why in today’s world of specialization, having a system will really impact your performance. A great system proposed in the talk: How do we heal medicine? suggests to practice the following:
Skill 1:
- You must develop the ability to recognize success and failure to measure how are you improving.
- Be aware that, when we are specialists we might not see the result of something very well, be open and really rethink and ask others.
- Become really interested in data: Data is becoming one of our strongest tools to analyze solutions, practice researching to make conclusions.
Skill 2:
- Devise solutions: Practice doing a strong analysis of your problem's solution, think about advantages and disadvantages.
- Do more training, embrace more specialization.
- Bring in more technology.
- Use checklists: Tools to help make experts better.
- For your checklists: Define pause points, do a simple takeoff checklist, and remind key things that get forgotten.
Skill 3:
- Practice and develop the ability to implement this.
- Humility, discipline, and teamwork.
- Remember that Complexity requires group success.
I really encourage you to stop and think about how knowing these things can really change your life.
Anti-fragile
To complement the last concepts, I will introduce the anti-fragile concept, this concept has been treated in several fields, but the one that results more interesting for us is computer science.
We understand fragile as something that breaks under stress, and something that remains the same is called robust. Then, anti-fragile refers to something (or someone) that gets better the more it gets stressed. This is, referring to ourselves, becoming better through our struggles.
Just like in software development, when software is anti-fragile it means it is going to get better the more we try to break it. The same can apply to us, we should crave disorder, stress leads to immunity. Something important of practicing this concept is to apply it just like if we were software, even if it sounds funny, give just enough stressors and recovery time.
Practicing this will allow making us adaptable to situations, this is finding always a way to succeed. It is fundamental to understand that we have to fail to get success, so fail and do it quickly, and learn from it.
If you get to the point where there are no stressors in your life, you are stopping yourself from growing, identify it, and create stressors. With this, I mean try to do your life as anti-fragile as possible.
Essentially, there are certain questions that you can make to yourself to begin your path to become anti-fragile:
- How can you gain from disorder?
- How can you learn to grow from the situations?
- How can you make yourself a better person?
A good piece of advice: take every situation that happens today and try to look at the bright side of it, the side that can make you stronger.
Creating a Project Proposal
This last week I learned a lot from failing at creating a project proposal. These events taught me a lot, from learning how to research all the important aspects of a proposal to, studying in depth the objectives of the project you are working on, understanding very well the problem you are trying to solve, who are you trying to help, what are you solving for the stakeholders, and also the use of user stories.
We build software to add value, not just because of building. We must understand how to begin a project in the right direction, I would say that the beginning of a project has a lot of weight in the probability of the project to succeed.
Another idea I would like to share is that I believe I overthink the design of the project, and I forgot that functionality is always going to be more important to cover before design since that’s actually what is going to apport value.
I’m also in the process of learning to apply agile methodologies to my project, but that's something I would like to share in the next post.
New technologies
Finally, I would like to add that I’m also in the process of learning new technologies such as a framework called Bolt, used for apps development in the Slack application. Now, I know that this framework allows you to work with the latest features of slack to create your apps and use all the different possibilities of doing and completing tasks.
In the next posts, I’m going to share how I am using the bolt framework so you can decide whether to use it or not in case you need an idea for a project to implement something useful in your work.
Thank you once again for being part of today's post, have a great day!