Do you want to be a great software developer? Embrace a Growth Mindset

Do you want to be a great software developer? Embrace a Growth Mindset

Curated by: Sergio A. Martínez

What makes one a great software developer? When you work in a field where there is no “right” way to do things, this can be a pretty important question. Some say that the best developers are those who can find creative solutions to difficult problems, willing to experiment and take risks, always learning from their mistakes. Others say that a great developer has a strong understanding of the latest technologies and trends, enabling them to think outside the box and come up with new and innovative ideas. And yet others say that a good developer is simply one who writes good, stable code with discipline and consistency.

Cloud-Computing-2023

Of course, all of these are very good qualities for a software developer to have, but here at Scio, we think that there’s something else involved, a “secret ingredient” of sorts that every developer can have if they put in the necessary effort and that we encourage as often as we can: a growth mindset.

What is a growth mindset? Simply put, it’s the belief that intelligence and ability can be developed through hard work and practice. It means having the ability to constantly learn new things, adapt to new situations and be open to feedback with a willingness to experiment. It’s never getting too comfortable with your skills because the industry is always changing. We believe that the best developers are always learning, always growing, and always looking for ways to improve.

The research of Stanford University psychologist Carol Dweck has shown that people with a growth mindset are more likely to persevere in the face of setbacks, take on challenging tasks, and embrace failure as an opportunity to learn. With this, you can see why any great developer would know that having a growth mindset is critical for success. Your skills can be developed through hard work, determination, and persistence, and this mindset allows you to approach challenges with a positive attitude and the belief that you can overcome them. It also gives you the chance to learn from your mistakes and view “failure” as an opportunity to evolve. Without a growth mindset, it is easy to become discouraged when faced with difficult problems or to give up when encountering setbacks. Getting yourself into this headspace will leave you better equipped to continue growing as a developer.

Developing a growth mindset

The rise of the industry-specific Cloud: Here’s everything you need to know

As we said, a growth mindset believes that intelligence and talent are skills that can be developed, rather than static traits that you’re born with. The latter is known as a “fixed mindset”, which maintains that ability is static or predetermined, and there’s little you can do to change that. In other words, it’s thinking in terms of “natural talents” instead of “acquired skills” that can dissuade a lot of people from learning and improving an aspect of themselves, leaving them stuck in place. 

The idea of “natural talent” is very powerful. It’s often used to describe someone good at something seemingly without any effort, a sort of “Life’s Lottery Winner” that either you are, or you aren’t. However, this is far from the truth; what we call «talent» is simply the result of hard work, practice, and dedication, so anyone can become good at anything if they are willing to put in the time and effort. The belief that some people are born with inherent abilities, while others are not, is nothing more than a harmful myth, discouraging people from trying new things and pursuing their goals, because they believe that they will never be as good as those with «natural talent», no matter what. In reality, everyone has the same potential for greatness, but it’s up to each individual to get into this mindset.

But how to shed this worldview and embrace the idea that you can always learn and become better? How can you develop a growth mindset to become the developer you always wanted to be? Well, the most important thing you should know is that having a growth mindset is not always an innate attitude for most people, so it requires effort to get one. We all have a specific aspect of our personality somewhere that we believe impossible to change, that is just “part of who we are”, making us likely to give up in the face of adversity, stick to familiar tasks, and see failure as a reflection of our lack of ability, which is rarely the case. Recognizing the presence of this “fixed mindset” is the first step to start improving.

With that in mind, you should start by practicing self-advocacy. This is the ability to communicate your wants and needs to others, which requires an honest assessment of your strengths and weaknesses. Doing so makes it easier to identify areas of opportunity where you can improve a skill or learn something new. In software development, for example, you need a lot more than just writing good code; you need to communicate with the client and your team effectively, understanding their needs and challenges, and in a Nearshore company like Scio, often in a different language than your native one. All of these skills require time and commitment to master, so to get started…

  1. Make a list of all the skills you use daily, both hard and soft (tools, frameworks, platforms, and programming languages, for example, as well as stuff like planning, communicating with others, giving feedback, etc.)
  2.  Make a note of which ones you feel completely confident about, and which ones require more effort on your part. 
  3. Try to see what’s the difference between these skills: maybe it’s the amount of practice you put into it, or maybe you feel more interested in doing one rather than the other. Maybe you never had the chance to use that skill before.
  4. Apply self-advocacy to find the help you need to bring these skills up. Sign up for a course, ask a more experienced friend, or make the time to improve.

By understanding what you’re good at and what you need to work on, you can set yourself up for success”, says Luis Aburto, CEO and Co-Founder of Scio. “If you’re aware of your weaknesses, you can take steps to improve them. And if you know your strengths, you can use them to your advantage. Which is an essential quality if you want to grow and evolve as a developer. By taking the time to understand what makes you tick, you can set yourself up for success both now and in the future.

However, even after doing all of this, we understand that this growth doesn’t happen instantaneously; it requires a continued effort and the support of everyone in your environment to reach your maximum potential as a developer. This is why choosing to collaborate with an organization that takes growth seriously is just as important as recognizing your need to improve your skill set. After all, what good comes out of knowing your areas of opportunity if you don’t have the chance to act on them?

Growing together

Growth Mindset 6

However, a true growth mindset goes beyond simply believing that you can get better by just expanding your knowledge or your technical toolset. It involves taking the initiative to explore new skills and going through learning experiences outside of your “comfort zone”. In a previous blog, we talked about how actual “comfort zones” are less about getting stuck on a single place, without feeling the need to go beyond it, and more about expanding your areas of expertise, getting comfortable in areas of software development that are just as important as technical knowledge, but demand a very different kind of effort. Soft skills like  communication, negotiation, problem solving, teamwork or strategic thinking that will help you become a well-rounded developer. Going into places you have never gone before is how a person truly grows.

That’s why it’s so important to work with people that help you improve all your skills, or with an organization that provides opportunities for skill development outside of what you thought possible before, commiting to create a strong team capable of taking on any challenge. Companies like Scio, for example, know the value not only in offering workshops, courses, and programs like Sensei-Creati, but also in letting developers “stretch their legs”, so to speak, with assignments and responsibilities that might help them develop a new skill, like letting a Senior take the Lead in a project, or allowing people that not normally interact with the client to have a more “first hand” experience” to practice communication and planning. Actions like these allow taking something you are not “skilled at” and practice it to perfection on a daily basis, even if it’s outside of your normal interests. That’s how we participate in the creation of well-rounded developers capable of joining any team and overcoming any challenge.

So, to get back to our point, a growth mindset is essential for any software developer that wants to be excellent at their craft. With this mindset, you will never stop learning and expanding your skillset, always looking for new challenges to conquer and ways to improve yourself. If you can adopt a growth mindset and let go of preconceived notions about what you are and aren’t good at, you will set yourself up for success as a great software developer. And We will always be in need of those.

The Key Takeaways

  • A good software developer knows that the key to greatness is always improving your skills and learning new things.
  • To achieve this, you need to get into a “growth mindset” where improving is a continuing process that never stops.
  • To get this mindset, myths like “natural talent” or that there are things about yourself that cannot be changed need to be left behind.
  • However, doing this by yourself can be difficult, which is why you, as a developer, should choose to collaborate with a company or organization that sees the value in growing and learning at every step.

Scio is an established Nearshore software development company based in Mexico that specializes in providing high-quality, cost-effective technologies for pioneering tech companies. We have been building and mentoring teams of engineers since 2003 and our experience gives us access not only to the knowledge but also the expertise needed when tackling any project. Get started today by contacting us about your project needs – We have teams available to help you achieve your business goals. Get in contact today!

React: The challenges of keeping ‘up to date’ in the software development world.

React: The challenges of keeping ‘up to date’ in the software development world.

Curated by: Sergio A. Martínez

Software development is an essential aspect of modern life. From the operating system on our computers to the apps on our phones, software developers create most of the tools we use every day. However, it’s no secret that technology is constantly changing, and keeping pace with the latest trends can be difficult, with new technologies and approaches constantly being developed, so it can be hard to stay abreast of the latest trends. In addition, the industry is becoming increasingly competitive, and companies are constantly trying to one-up each other with new features and capabilities that any skilled programmer needs to keep up with.

React-Skills

For example, let’s look at React, which has been gaining popularity for a few years now. As a JavaScript library, React can be used with a variety of different programming languages, making it easy to integrate it into existing software development projects. It’s also known for being fast and efficient, using a virtual DOM that helps to improve performance by only re-rendering the parts of the DOM that have changed, and the large scalability it offers makes React really popular with some of the biggest companies in the world, including Facebook, Netflix, and Airbnb. In short, this means there is a lot of demand for React developers, which should make this library part of the basic toolset for any skilled developer. However, reality is very different. 

React is a very common requirement among our clients when they are looking for a developer to augment their in-house teams”, says Helena Matamoros, Head of Human Capital at Scio. “And is not that React is uncommon or anything, but we have noticed that, for some reason, programmers who know React usually learn it on their own free time, taking courses or experimenting with it on personal projects. React is not really part of most college curriculums around here, so there has to be an actual commitment from most devs to learn it and offer it to any projects.”

But why is that the case? Why is such a popular skill not something to be found on a curriculum in most programming courses? To answer this, today we want to take a look, not into React precisely, but into a broader question about the expectations about learning software development, and the realities of the industry and these technologies, so you can shine as a developer anywhere you want to collaborate.

Programmers programming themselves

React The challenges of keeping ‘up to date’ in the software 1

Let’s start with something you might suspect already: “Self-taught developers dominate technology: 69% of the developers who responded to the survey are at least partly self-taught, and fewer than half hold a formal degree in computer science. In a trend spreading to other fields, many are choosing ways to learn that offer everything but a degree: online courses, bootcamps, on-the-job training, and collaborating with peers”, an interesting fact shared by this Quartz article in relation to the modern state of software development and developers in the US. And this number will likely keep increasing in the coming years.

The root of this curious situation could be that, since the very beginning, software development has been driven in great part by hobbyists and amateur developers who see programming as more than just a means of employment; for many, programming is a lifestyle. Often, a programmer lets their own sense of challenge and curiosity guide them towards learning new things, so people becoming self-taught in this field, at least in specific tools and frameworks, is usually seen as pretty normal. In fact, as a part of the software developer experience, this cultural norm has become a defining part of our industry.

Considering this, one could see why learning React on your own time is not a weird thing to do, or arguably difficult to do. However, the truth of this depends on a few factors: how much experience you have with programming in general (if you’re coming from a background of working with HTML and CSS, then React will probably seem easier than if you’re starting from scratch), and how much time you’re willing, or able, to invest in learning it. React is not the quickest framework to pick up, but it’s not the hardest either, but it makes you wonder why it tends to be a “learn on your own time” library instead of a basic topic in programming courses, seeing how useful it is as a powerful tool for building user interfaces. 

But what is React? This framework was created by Jordan Walke, a software engineer at Facebook (now Meta), first deployed on the FB timeline in 2011, and later released to the public in 2013 with an open-source version. It was named as such because it can be described as a «reactive» framework, meaning that it can respond to changes in data very quickly. This makes it well-suited for applications that need to handle large amounts of information or that require real-time updates, which of course has made it incredibly attractive for corporations such as Facebook, Instagram, Netflix, and Uber that need to handle a massive number of requests and users every minute. Moreover, React also has a number of features that make it appealing to developers, like its declarative syntax, its ability to render views on different devices, and its performance advantages. In the years since its release, React has become one of the most popular tools for front-end web development, designed to be easy to use, that enables developers to build complex web applications with less code than other frameworks. 

Taken together, these factors make React an appealing option for software development in a world with lots of different frameworks and libraries to choose from, so learning React can open up a lot of doors for future programmers, giving them a practical skill that is in high demand by employers. The thing is, colleges and universities offering React as part of their Computer Science programs tend to be few and far between, thanks to how (relatively) recent this framework is, and the high cost of entry that official boot camps and courses have. But many programmers need to do this regardless, in order to master this framework.

Continuing education is especially crucial in software development. This field is constantly evolving, with new languages, frameworks, and tools being released on a regular basis, so to stay competitive, it’s essential for software development companies to invest in the skills of their employees”, explains Helena. By providing opportunities for employees to learn new skills, companies can ensure that they are keeping up with the latest technology and trends. Additionally, continuing education can help employees to feel more satisfied with their jobs. Ultimately, investing in employee education is a smart business decision that can really pay off.

Growing skills matter

React The challenges of keeping ‘up to date’ in the software 2

That’s why companies that know the value of continued education are the ones bringing the best talent aboard. Although curiosity and motivation to learn new things for the sake of it are great qualities for a software developer, leaving them all of the work is not the best strategy to ensure a team is ready and ahead of the curve when it comes to tools, approaches and frameworks to innovate in the software space. After all, the key to a successful business is its people. 

Many companies focus on hiring employees with the specific skills they need to get the job done. And while this is certainly important, it’s also important for an organization to invest in the skills and development of its staff, for one very simple reason: this is investment in success, both for the organization and for the collaborator. Well-trained employees are often able to work faster and more accurately than those who are not. Second, employee development can help to reduce turnover, and when employees feel like they are learning and growing in their jobs, they are more likely to stick around. In the case of React, the best approach could be having more senior developers, whose experience with this library is top-notch, to lend a hand to their teammates to develop their own skills, with the company giving the opportunity to comfortably do so. 

Scio, for example, has the “Sensei-Creati” program, where a Sensei developer can take on “Creati” apprentices to teach them about a specific tool or skill, remaining open to discuss issues, solve questions, and all in all share knowledge to whoever would benefit from it. The result is that, when everyone is on the same page, it makes it easier to identify areas that need improvement and come up with new solutions. Furthermore, sharing knowledge helps to build trust and collaboration among team members, which can lead to better code quality and a more efficient workflow. Ultimately, sharing knowledge is essential for any software company that wants to be successful, and attract the best talent available.

The bottom line is that learning is part of the normal experience of a software developer but offering the opportunity to do so on the job is the best way to keep ahead of the curve when it comes to popular technologies like React. So if you are looking to join the best company to work with, see what their position is regarding sharing knowledge and growing skills. Maybe you can find a place where the proposition of learning something like React is not something you do in your free time, but part of the job itself.

Scio is an established Nearshore software development company based in Mexico that specializes in providing high-quality, cost-effective technologies for pioneering tech companies. We have been building and mentoring teams of engineers since 2003 and our experience gives us access not only to the knowledge but also the expertise needed when tackling any project. Get started today by contacting us about your project needs – We have teams available to help you achieve your business goals. Get in contact today!

Quiet Quitting: Myths, facts, and misunderstandings about a new reality of working

Quiet Quitting: Myths, facts, and misunderstandings about a new reality of working

Curated by: Sergio A. Martínez

What is the future of work? That is a question that virtually every organization, in both the private and public sectors, from software to manufacturing to service and everything in between, has been asking themselves since the onset of the pandemic in 2020. Agreeing on an opinion seems to be impossible, but what we are sure about is that our idea of “work” has changed dramatically, with new ideas, models, and philosophies getting discussed every day.

Quiet Quitting: Myths, facts, and misunderstandings about a new reality of working

“Quiet quitting” is one such concept. After this term got popular on social media in 2022, the underlying meaning of “quiet quitting” started to elicit all kinds of opinions about what it means, going from those who see it favorably to those who see it as the norm (and nothing revolutionary), to even those against this attitude for a diversity of reasons. For those not in the know, “quiet quitting” means “performing the strict minimum requirements of a job within the allotted work hours”, a philosophy gaining supporters across all industries and with all kinds of workers and collaborators. And getting to the root of this line of thinking is not difficult to do. 

People are tired of being stifled by leaders who don’t trust or value them. If there’s no freedom to take a risk without fear of being punished for a bad result, then why take a risk? If there’s no acknowledgment of their capacity and no opportunity to contribute their full value, then why would they want to do more?”, says the analysis of Forbes Magazine in their article “The Cure For ‘Quiet Quitting’: Humanize Work”, which takes a look at the current job landscape and the factors that might push a worker into this mindset.

After all, it’s no secret that the current job market is becoming increasingly competitive, and people are finding it harder to get the jobs they want. At the same time, jobs are becoming more demanding, with some employers increasingly expecting employees to work longer hours for less pay, which not only causes a lot of stress and unhappiness among workers but also pushes them to question whether work is really worth it. Some people are even choosing to opt out of the traditional workforce altogether in favor of a more flexible lifestyle. This, in turn, is creating severe shortages in many fields that, with our current trajectory, will cause a lot of problems that will only continue to grow. 

I think this is old behavior under a new name and has always existed to some degree, but now it has a name”, continues Helen about the origins of quiet quitting. “It used to be a lot more common in other areas (for example, the public sector), where you could stop working at a certain hour and not have to worry about it. But in the software development industry, this issue is a lot more complex. The issue is how to measure the effectiveness and productivity of a team member. It’s easy to see someone who answers emails or does things outside of work hours as a good employee, but I don’t agree with that either. You are not giving your collaborators a complete work-life balance.

The numbers don’t lie; according to the online publication Axios, “82% of Gen Zers say the idea of doing the minimum required to keep their jobs is pretty or extremely appealing”, and a good portion of them are already committing to that, bringing back the idea of “working to live” instead of the other way around, putting priorities like family, friends and even hobbies ahead of work as the norm.

Finding the right angle for an old challenge

Quiet Quitting: Myths, facts, and misunderstandings about a new reality of working

The thing about ‘quiet quitting’ is that it doesn’t describe a specific phenomenon, but many different situations with their own context. Maybe you are an effective person within your working hours, and not being available after you shut down your computer doesn’t mean you are not an engaged collaborator, delivering on time”, expresses Helena Matamoros, Head of Human Capital T Scio, about the increasing popularity of this term. “After all, it’s easy to see when a person is actually “quiet-quitting”; they miss deadlines, they are often unavailable during work hours, their emails go unanswered, they appear disengaged during meetings, or they don’t take advantage of anything extra the company offers, like social meetings or training courses. And even then, that attitude can sometimes be the result of burnout instead of active disinterest. Is a complex situation that the name ‘quiet quitting’ doesn’t completely describe.” 

The thing is that, when trying to separate a good collaborator from a not-so-good one, past strategies don’t work anymore. In the old days, the traditional workplace was all about face time and being physically present in the office, but with the rise of technology, that’s no longer the case; good employees cannot be judged by how many hours they’re putting in at the office, but rather by the results they’re achieving. This can lead us to some myths about what an engaged employee is, harming more than helping engagement within the workplace: 

  • First, good employees are always available.

    As already discussed, with email and instant messaging, it’s expected that employees will be available outside of normal working hours. But that doesn’t mean those good employees are always glued to their devices. They know how to strike a balance between work and life, and they know when to unplug and take a break.

  • Second, good employees prioritize work above everything else.

    Many people still believe that employees should put their jobs ahead of any other priorities, even if it means sacrificing their well-being. However, a smart workplace knows that employees thrive when they feel they are valued members of a team, and companies should focus on creating an environment where employees can have a good balance and feel supported and appreciated. 

  • Third, good employees are always hyper-focused.

    When it comes to working, it’s often seen as a good thing to be hyper-focused, with the ability to laser in on a task and get it done quickly and efficiently is generally viewed as a positive trait. But contrary to popular belief, employees who take breaks during the workday, or take time to socialize, are more productive than those who don’t. Likewise, employees who telecommute or work flexible hours are just as productive as those who work traditional nine-to-five schedules. In the end, it depends on the person and the rhythm they need to achieve good results.

Seeing it from both sides, the employee and the employer, it all comes down to having a clear work culture within the organization that everybody can understand and adopt”, explains Helen, referencing how Scio tries to be flexible and offer resources to keep their collaborators as far from burnout or disengagement as possible, especially important when our company collaborates with remote developers and engineers from all over Latin America. If you know what is expected of you, and what is acceptable or not for the company, it’s easier to identify if you are dealing with someone practicing quiet quitting. In the end, there is no one-size-fits-all solution, but starting by debunking outdated myths and practices, any company can create an environment that is tailored to the needs of their employees.

Pros and cons to both sides of the argument regarding “quiet quitting” remain relevant, however. On one hand, working strictly within your limits can help you to avoid burnout and to maintain a healthy work-life balance. On the other hand, it can also make you appear inflexible and unresponsive to the needs of the employer. And while in some cases working longer hours can help you to get ahead in your career, it can also lead to exhaustion and poor health, which could make such an effort too costly. Ultimately, what we can conclude is that this attitude is not something new, but its popularity is a symptom that flexibility and balance in the workplace are more important and appreciated than ever, and any company that supports and understands its collaborators doesn’t need much else to keep an engaged, productive, and motivated team always ready to give their all.

The Key Takeaways

  • The term “quiet quitting”, while popular in social media, is not a new phenomenon, although it can be taken as a symptom of a larger issue.
  • The main issue is that the term “quiet quitting” falls short when describing the wide range of attitudes and practices that come with working.
  • What it points out is the increasing need to keep a better work-life balance, and quiet quitting and burnout can be the result of a lacking workplace.
  • What really matters is the outcome achieved by every individual worker; with the correct support, keeping a collaborator engaged and motivated is far less difficult.

Scio is an established Nearshore software development company based in Mexico that specializes in providing high-quality, cost-effective technologies for pioneering tech companies. We have been building and mentoring teams of engineers since 2003 and our experience gives us access not only to the knowledge but also the expertise needed when tackling any project. Get started today by contacting us about your project needs – We have teams available to help you achieve your business goals. Get in contact today!

Why can your career portfolio look like a squiggly line?

Why can your career portfolio look like a squiggly line?

Curated by: Sergio A. Martínez

What are the expectations you have for your career? And we mean real, tangible things that you can expect from choosing a particular professional field: Autonomy? Flexibility? Knowledge? A better living standard? The chance to grow as a person? Trying as many new things as possible? This is a line of thinking you should consider when building a career portfolio; the definition of a meaningful career has changed and choosing the correct workplace can make a world of difference for a professional looking to put their talents to the best use.

Why-can-your-career-portfolio-look-like-a-squiggly-line

Why choose a career portfolio?

And one of the most significant changes in recent years is how the idea of the “career ladder” has slowly started to disappear thanks to a completely different job landscape, where spreading out skills and options has begun to be seen as the best career move possible. A “career ladder” in software development is typically referred to as starting as an entry-level programmer, working on coding and bug fixes. As they gain experience, they may move up to more senior positions, such as a Lead Developer or Project Manager. However, more and more developers agree that taking on new challenges and continuously learning new technologies is essential for success in this ever-changing field, with no “right” path to take when climbing the career ladder in software development. Rather, it depends on each individual’s skills and preferences.

This has resulted in the idea of forgoing career ladders, and instead focusing on “career portfolios”, or the idea of acquiring a varied list of skills, interests, and experience, tailored to your affinities and what you want from a professional field. But what does a career portfolio look like in practice and how to choose a workplace where you have the flexibility to experiment and learn new things?

The squiggly line to your full potential

Why can your career portfolio look like a squiggly line 2

We have talked before about how software development is already a pretty open career path, where the central concept (solving complex logic puzzles) can be applied almost anywhere. And with new technologies and approaches emerging all the time, those who want to succeed in this field need to be able to quickly adapt and learn new skills, which is why more and more developers are warming up to the idea of flexible career paths.

Having the opportunity to move between different roles and teams here at Scio is how to help ensure our people remain agile and responsive to change”, says Helena Matamoros, Human Capital Manager at Scio. “We know the importance of providing the opportunity to try new things and different approaches. In software development, it’s very important to encourage innovation and creativity, no matter where you are in your career. 

Nevertheless, where to start with this flexibility and craft a portfolio that showcases your talent, skills, and interests? After all, as the world keeps changing at an ever-increasing pace, those who embrace change will be the ones who thrive. In the words of the Harvard Business Review: “A career portfolio approach solves these problems and takes career development to a new level. It’s not only a tool for individuals to rethink their professional identity and reach their full potential.” So, as a starting point, you can ask yourself the following questions to plan your portfolio.

A) How much free time will you need?

An excellent way to define your career progress is by deciding how much time you are willing to devote to learning a new skill. The best way to go about it is to develop a yearly plan divided into quarters, months, weeks, or even days, decide on specific goalposts and work towards them. Depending on your job, your time might be at a premium, so knowing what’s the best path depends on your skills, talent, and amount of time available, critical to growing and becoming good at something new.

B) What are your interests?

As we said, a good portfolio comprises stuff you are personally interested in, but also makes good synergy with the career path you are currently following; for example, if you like being with people and think you have leadership qualities, why not work on your soft skills to be a Team Lead? Or a project manager? After all, these roles are more about getting close to people, listening, and empathizing, but still, they need a solid understanding of tech to the scope and plan effectively. 

C) Does your workplace allow for flexibility?

However, this might not be a smooth experience if you aren’t part of an organization that values this kind of growth, the number of which is growing as more people see the value in following a squiggly line. Organizations like Scio, for example, not only allow developers to explore different areas of software but actively offers courses and workshops (under the Sensei-Creati Program) that actively want developers and everyone else to grow as they see fit. Hence, researching which kinds of opportunities a company offers before joining is always the best idea. 

Focusing your career on yourself

Why can your career portfolio look like a squiggly line 2

A lot of people think that the best way to further their career is to focus on external factors, like networking, making money, or climbing up the corporate ladder, but the truth is that focusing on yourself and building up a portfolio of diverse interests and skills has no comparison, especially in the software development field. When you invest in your own professional growth, you become more skilled and knowledgeable, which makes you feel more balanced and successful. 

After all, you are the only person who knows what you want out of life, and when you make career decisions based on what you think will make other people happy, you’re not likely to end up in a job that makes you truly satisfied. On the other hand, if you stay true to yourself and pursue opportunities that align with your goals and values, you’ll be much more likely to find a fulfilling career. 

There’s plenty of reasons why a company should offer growth opportunities for their employees, and not only because it helps productivity or retain talent”, continues Helena about the philosophy of Scio. “It’s important to understand that many job seekers are looking for more than just a steady paycheck. They want to work for a company that will invest in their development and help them reach their full potential. It also boosts morale and motivation among everyone, When people see that their company is committed to helping them grow and develop, they feel appreciated and valued. Ultimately, growth opportunities are good for both employers and employees alike.

In the end, focusing on yourself is the best way to set yourself up for a successful career, and it’s in your best interest to collaborate with an organization that sees the value in a wide range of skill sets and affinities in their employees. Software development today is more diverse than ever, and the “ladder” upwards is just one of many options available to take during a career. So, if you want to make a name for yourself in the software development world, focus on building a great portfolio. It’s sure to pay off in the long run.

The Key Takeaways

  • The way careers work nowadays is pretty diverse, not just as a rigid path straight up, especially regarding software development.
  • Building a portfolio of talents and skills is becoming more common and more desirable, and this flexibility is an important feature of any organization looking to grow.
  • The skills you acquire should synergize with each other, but a company interested in the development of their employees already offers the workshops and options necessary to make it work.
  • Developing a person’s full potential is one of the core tenets of Scio, because that’s how true innovation and advancement are achieved. 

Scio is an established Nearshore software development company based in Mexico that specializes in providing high-quality, cost-effective technologies for pioneering tech companies. We have been building and mentoring teams of engineers since 2003 and our experience gives us access not only to the knowledge but also the expertise needed when tackling any project. Get started today by contacting us about your project needs – We have teams available to help you achieve your business goals. Get in contact today!

Scio Spotlight: Talking about passion, projects and videogame development with Pedro Ramírez

Scio Spotlight: Talking about passion, projects and videogame development with Pedro Ramírez

Curated by: Sergio A. Martínez

For many people, the idea of software development is just a job, with long hours in front of a computer, coding and debugging programs until they meet the requirements of their employer or client. However, software development can also be a fun hobby, taking on personal projects or contributing to open-source software where developers can exercise their creativity and practice their craft without the pressure of deadlines. In addition, working on side projects can give developers a chance to learn new programming languages and technologies; after all, practice makes perfect.

The-Scio-Spotlight-Talking--1

So, by working on side projects, developers can not only gain valuable experience but also try out new techniques and learn new languages. In many cases, side-projects can also be a great way to develop new skills. For example, by working on a project in their spare time, developers can learn how to manage a team or how to bring an idea to fruition. Moreover, working on side projects can also help developers stay up to date with the latest industry trends. By keeping their skills sharp, developers can increase the scope of their talents and the chance of growing professionally in ways you might not even expect.

So, this time we want to dive into the kinds of side-projects that many Scioneers have dabbled into during the years, and this time we chat with Pedro Ramírez, a Chief Architect at Scio with many years of experience, about a project he is most proud of: a complete videogame.

And this is because, for any software developer, no matter how experienced, creating a videogame can be daunting. Numerous challenges need to be solved and overcome, from designing compelling gameplay, to ensuring that the game runs smoothly on a variety of devices and platforms, to getting it into digital stores. For Pedro, though, this was an opportunity to learn and have fun alongside his son, releasing the endless runner FlyFlyFly in 2016 for mobile devices. You can still find it on the Microsoft Store, and talking about its development, shed a lot of light on the process for a software developer trying to get a project done on the side.

At first, I thought it was going to be simple, but there were a lot of challenges to solve along the road. You can use a lot of tools and libraries today to make game development easier, but still requires a lot of puzzle-solving and learning to manage your resources wisely. For example, I needed to save as much memory as possible at the start of development to make sure the game ran smoothly on every device possible, and the Microsoft tools don’t give you much. And even when I got it working, lots of things were still in the air.

However, being a solo game developer is no easy feat. Not only do you need to be skilled in programming, but also be able to create engaging gameplay, design attractive visuals, and even engage in marketing for your game to build a community around it. Of course, you don’t need to be an expert in all of these areas — there are plenty of tools and resources available to help you get started, but it’s important to have a general understanding of all the different aspects of game development if you want to be successful, and most of the time that is a challenge by itself.  

I had to develop stuff completely new to me, like the user interface, or draw the graphics and make them work as intended. Not everything is just writing code, you need a knack for art to make it look nice and appealing, which was one of my biggest learning experiences of the whole deal. When I started this project, I thought it would be easier than it was, so it was a big reality check when I realized how much I still needed to learn, especially when it comes to trying to get the word out and make it stand out in the stores.”

A passion project (in more than one sense)

Anyone who’s ever gone through software development knows how rewarding it can be to see your code doing something. It’s even more satisfying when it’s something you built yourself, just for fun. But what you might not know is that having a personal side-project in software development can be pretty advantageous, too. For one thing, it gives you a chance to explore new technologies and learn new skills without the pressure of having to produce perfect results. You can also use your side project as a portfolio piece to show future employers what you’re capable of. 

Three or four years ago, we had a client in Scio that was looking to develop an RPG-type game, similar to Final Fantasy, and I was put in charge of it thanks to my experience with FlyFlyFly”, tells Pedro. “In the end, the client had to put the project on hold for budget reasons, but we still have the source code somewhere in the Scio servers, and I’m proud of the opportunity it offered me. That’s why I believe that doing things for passion and fun can be so important in software. You never know when those skills will come in handy.

And beyond that, working on a project by yourself can be a great way to relieve stress and take a break from the day-to-day grind of work, and when done purely for your own enjoyment, you can learn new programming techniques, try out new tools and frameworks, and generally push yourself outside of your comfort zone. What’s more, side projects can be a great way to make connections with other developers and build up your professional network, and maybe even have unconventional learning experiences along the way.

When I first started development on FlyFlyFly, I was working for Amazon, and that technically made it their property, thanks to the terms of my contract with them”, explained Pedro about one of the most unexpected issues of this project. “It was basically a conflict of interests with the IP or so, and that basically made it impossible for me to maintain the game after I left them to work elsewhere, which is one of the reasons I couldn’t keep updating it on Android and iOS. Still, the experience I had with my son figuring out the game and learning how these storefronts work is invaluable.

The-Scio-Spotlight-Talking--Flyflyfly-2

However, a question you might be thinking is why put some much effort into a side project like FlyFlyFly? Well, if you ask any software developer what they love most about their career, they’ll likely tell you it’s the challenge. Building new software is like solving a puzzle — it’s endlessly fascinating, and there’s always something new to learn, but even the most dedicated developers can burn out if they’re not passionate about what they’re doing, which is why this is such an important element of software development; when you’re passionate about the work, all the difficult challenges are worth it, constantly driving you to push yourself to do better.

After all, it’s easy to think that working hard and being passionate means the same thing. After all, if you’re putting in the hours, it stands to reason that you must care deeply about the work, right? But in reality, these are two very different things that need to be balanced carefully: Working hard is a necessary part of achieving success in any field, but to be truly successful, you need to be passionate about what you’re doing. Passionate people are driven by a desire to excel, not just by a sense of duty or a fear of failure; they’re willing to put in the extra work because they love what they’re doing and believe in their abilities. Projects like the game created by Pedro are a great example of this: a fun bonding project that taught him so much pushed him to learn new things, and even was useful to get a project rolling at Scio.

So, if you want to achieve your goals, ask yourself: Are you working hard because you’re passionate about what you do, or just because you think you should be? The answer will make all the difference.

Scio is an established Nearshore software development company based in Mexico that specializes in providing high-quality, cost-effective technologies for pioneering tech companies. We have been building and mentoring teams of engineers since 2003 and our experience gives us access not only to the knowledge but also the expertise needed when tackling any project. Get started today by contacting us about your project needs – We have teams available to help you achieve your business goals. Get in contact today!

Good Test Case design in QA: Quality at every step of the process

Good Test Case design in QA: Quality at every step of the process

Curated by: Sergio A. Martínez

Creating software can be compared to solving a big, complex puzzle. A developer needs to take a bunch of pieces (code, algorithms, requirements, deadlines, etc.) and put them together in the right way to create a functioning product that satisfies everyone involved, from clients to final users. And just like with a puzzle, there is no single «right» way to develop software; it depends on the individual developer’s preferences and style, where some may start by laying out all of the pieces and looking for patterns, while others may start assembling pieces and then adjust as they go along. 

Test-Cases-1

And the biggest challenge is that if even one piece is out of place, it can throw the entire system off balance. This is why, besides having a good team of developers able to see the big picture and break it down into manageable tasks, a good QA Tester is so critical to obtaining the best possible outcome during development. Only then can you hope to create a successful piece of programming.

That’s why having a good approach to QA is so important; having experienced testers whose toolset matches the requirements of the product, capable of coming up with a plan for how they will test the code as they write it, as well as having a deep understanding of what “quality” means for the project, is a must in any team. 

So, in that sense, we want to take a look into one of the most important processes of QA: test cases. Because beyond running automated tests and manual testing, QA involves a systematic approach where developers can avoid costly mistakes and create products that meet customer expectations. And in practice, how can you design the perfect test case? What considerations should you have, and what’s the best approach to document and keep track of the sometimes messy process of QA?

Test cases are simple: Just think of everything

When it comes to software development, well-designed test cases are essential. By carefully planning out each test case, developers can ensure that their code will be thoroughly tested for errors, and taking the time to design comprehensive test cases can save a lot of time and effort in the long run. But how should you approach this task in practice? Is there a trick to designing a good Test Case?

It depends on the project”, says Angie Lobato, a Quality Assurance Analyst at Scio with a wide range of expertise in everything QA. “The ISTQB already mentions that 100% thorough testing is not something that is possible, so it comes down to the priorities of the team, the requirements, the severity of the bugs, and the timelines set to deliver the product, as well as how much time the person in charge of QA has.

This is why knowing how to design a test case is so important; considering all the challenges that software development already faces, being able to write an efficient, timely, and thorough test case is a valuable skill, keeping in mind things like… 

  • Thinking about the expected behavior of the system under test. What should it do in various scenarios?
  • Choosing input values that will exercise all relevant parts of the system.
  • Designing tests that will detect errors, but also verify that the system behaves as expected.
  • Keeping track of all tests performed, including pass/fail status and any observations made.

However, saying this is easier said than done; it can be difficult to create comprehensive test cases that cover all possible scenarios, and as software becomes more complex, replicating customer environments to test for all potential issues requires some intuition and minute attention to detail. That’s why the design of your test cases has to start with a script as the basis of the test, documented and shared to see exactly what you are trying to accomplish. For this process, Angie tells us that…

I first need to validate that the Test Case (TC) related to the specific item I’m checking doesn’t exist yet, and do whatever is necessary, like adding, taking out or updating steps to not end up with a suite of repeated test cases”, she explains. “To design the script, it’s always good to create them in their respective suite, with a link to the requirement so everybody in the team can easily find them (I’ve personally used TFS, Azure DevOps, and Jira) depending on the tools utilized during the project. For the script itself, I define the objective of the Test Case, as well as the preconditions and postconditions it needs. Once that has been taken care of, I start to retrace the steps necessary to reach the item I need to test. I add each needed step to achieve the objectives of the test case with their expected result, and finally, I validate the final results where the change needed to be reflected.

As you can see, there’s a lot of documentation involved in designing a test case, and having the proper formats to keep everything in order (like this one) helps to make sure that each test is accomplishing what it needs to. And according to Angie, a good test case needs a couple of characteristics to make it good:

  • A good test case has a clear objective stated and is updated to the latest version of the project. 
  • Has all the necessary testing data to execute it without creating repeated information. 
  • Has defined all the preconditions and postconditions of the product. 
  • And most importantly, don’t try to test more than one thing in a single case.
  • However, if you need to, changing the parameters of the test is necessary to make that clear. 
  • An ideal test case shouldn’t have more than 10 steps in total.

Ensuring quality at a distance

Test-Cases-3

As anyone who has ever been involved in software development knows, QA is a critical part of the process, and a good test case can help to ensure that the final product meets the requirements of the customer and is free of issues, especially in the current development landscape where remote collaboration is becoming a given. 

For a Nearshore development team like the ones at Scio, a well-crafted, carefully designed test case is invaluable, helping to ensure that the team and the client is on the same page concerning the expected results of the testing process, and providing a clear and concise way to communicate those expectations to everyone involved. 

In other words, a good test case can help to streamline the testing process and make it more efficient, so taking the time to create a good test case is well worth the effort for any remote software development team. 

Any company that outsources software development knows that collaboration is key to success. A good QA team is essential to ensuring that the final product meets the standards”, says Adolfo Cruz, PMO Director, and Partner at Scio. “In a Nearshore setting, they are especially beneficial because they ensure that any problems are found and fixed quickly before they have a chance to cause major problems. As a result, well-designed test cases play a vital role in ensuring the success of a remote relationship.

The Key Takeaways

  • Quality is necessary at every step of the process of developing software, not only a concern in the final product.
  • A good example is test cases, how important they are to the process of QA, and what good practices get involved in designing one.
  • A well-designed test case is straight to the point, meticulous, and tries to think of all the context around the product in order to ensure the best quality possible.
  • Also, the process of designing a good test case is doubly important when working on a project remotely, helping keep everyone on the same page and track all the changes and corrections necessary to bring the best possible outcome. 

Scio is a Nearshore software development company based in Mexico where we believe that everyone deserves everyone should have the opportunity to work in an environment where they feel like a part of something. A place to excel and unlock their full potential which is the best approach to creating a better world. We have been collaborating with US-based clients since 2003, solving challenging programming puzzles, and in the process showcasing the skills of Latin American Engineers. Want to be part of Scio? Get in contact today!