Battling Shiny Object Syndrome as an App Developer
In the fast-paced world of app development, it's not uncommon for app developers either cross platform or native to fall victim to what's commonly known as "Shiny Object Syndrome." This syndrome, characterized by the constant pursuit of new and exciting ideas, tools, and technologies, can be both a blessing and a curse for app developers.
In this newsletter, I'll share my experience with the challenges and strategies for battling Shiny Object Syndrome and staying focused on your development goals.
What is Shiny Object Syndrome?
Shiny Object Syndrome is the tendency to be easily distracted by the next big thing. For app developers, it often means chasing the latest trends, frameworks, and technologies, even when it's not necessary for the project at hand. While curiosity and a hunger for innovation can be positive attributes, they can also lead to inefficiency and project derailment if not managed properly.
It's crucial to recognize that during the early stages of your career, there's a natural inclination to explore new opportunities and be open to working on a variety of projects, rather than confining yourself to a single area. While this approach can be exciting and promote diverse experiences, it can also present challenges in your learning process due to the constant context-switching. I faced a similar situation in my early career, where I initially went through iOS app development, then transitioned to a different platform called Ionic, and later to Xamarin.
Unfortunately, I didn't invest sufficient time in mastering the first platform, iOS, as I kept moving from one platform to another. This scattered approach to learning did expand my knowledge but offered limited benefits in terms of career development.
My primary recommendation is to start by focusing on one programming language or platform initially. Dedicate at least one to two years to learning and implementing various projects using that language or platform. Once you've established a solid foundation, consider exploring new languages or platforms. This approach allows you to grasp the fundamentals thoroughly, making it significantly easier to adapt to new technologies.
It's worth noting that, in many cases, transitioning to newer technologies may not provide immediate career advancement. However, it contributes to your long-term growth and adaptability. While the allure of exploring new and shiny technologies can be beneficial in some situations, especially when they are within your domain of expertise, constantly switching between different domains can hinder your progress as a beginner.
I have noticed following pitfalls of Shiny Object Syndrome in my career!
Loss of Focus: Constantly switching gears between different technologies and ideas can hinder my ability to focus on completing projects effectively. This can result in missed deadlines and lower-quality work.
Overwhelm: The ever-evolving tech landscape can be overwhelming. I was trying to keep up with every new trend that lead me to information overload and burnout.
Wasted Time and Resources: Pursuing multiple new ideas simultaneously can lead to wasted time and resources. I started many pet projects with different platforms but struggle to finish any of them.
I've observed that app developers often engage in debates about various technologies, such as Flutter, React Native, Xamarin, native iOS and Android, and KMP development. They tend to emphasize one over the others, but the key is not to fixate on a single technology and dismiss the rest. Instead, the idea is to select the most suitable technology for a particular product based on the team's or individual's expertise.
For beginners, it's generally advisable to concentrate on one technology initially. As you may already know, Mark Zuckerberg chose PHP to implement Facebook because he was highly proficient in it. This approach can provide a strong foundation and expertise that can be leveraged effectively for the right projects.
I've noticed that many small companies/small app teams struggle to decide on the best technology to use. Instead of focusing on and learning one technology, they keep switching to different ones for each project. Let me give you an example: a small company starts developing an app using Swift. Then, the management hears about new technologies like Flutter or React Native for cross-platform development, so they switch to one of those without realizing that changing technologies means they also need to hire people who are experts in those new technologies.
When you keep switching technologies, your team needs to learn and adapt to each one, which can take time. This constant change doesn't give your team the chance to become experts in any one area. It also means you're not making the most of your team's skills and knowledge.
Here are some strategies to combat Shiny Object Syndrome based on my own experience:
Prioritize Your Goals: Start by setting clear and achievable goals for your app development projects and career developement. For instance, when I was working on a personal app, I had a clear goal of launching it within three months. If you come across a new idea or technology, think about how it fits into your current objectives. If it doesn't align with your goal, save it for later exploration.
Set Boundaries: It's essential to limit the time you spend on exploring new technologies and trends. In my case, I allocated one hour every week days specifically for researching new tools or approaches, keeping it separate from my main project work time. This helped me strike a balance.
Stay Organized: To stay on track, my previous team used a separate kanban board and task lists to organize a learning path before switching to next big thing. This way, we as team could focus on completing our project tasks before moving on to the next new project with different platform.
Seek Accountability: Share your development goals with a colleague or mentor who can hold you accountable. For me, it was my mentor who would review my learning strategy. Discussing your ideas with someone else can help you get a second opinion on whether they're worth pursuing.
These strategies helped me avoid getting sidetracked by every new idea or technology that came my way and allowed me to stay focused on my career goals. I believe that they can work for you too. It's not about avoiding new ideas and technologies altogether; it's about harnessing them effectively to advance your app development career and create successful, impactful products.
If you discover it to be useful, please don't hesitate to pass it on by reposting!
iOS Developer at AppNative Ltd.
1yKudos to the author for shedding light on this particular topic. In my early days, I felt the same. The attention to detail truly made this an enlightening read. 🙏🏼
🚀Build Scalable Apple Apps | Swift UI | Clean Arch. | Unit Test | Modularization | CI/CD | iOS Developer
1yInsightful.