BLOG

Developing Apps in a Rapidly Changing Pre-release Ecosystem

An approach for developing apps.

Author : Rajat Singhal

Date: 09 January 2024

Working on a software project can be quite a different experience depending on the stage of the software cycle that it is in. And it could also depend on the state of the ecosystem that the resulting app lives in.

I am currently building a brand-new OTT application that is hosted inside an ecosystem that has not been released to the public yet and one that changes quite often.

This article presents some of my experiences and the approaches that I developed during the building of this app.

To make it easy to refer to the app and the ecosystem, I will give them fictitious names – Neo (Greek for ‘new’) for the app and Noris (Greek for ‘early’) for the ecosystem – attempting to reflect the state that they are in.

Background

Projects are often classified based on the stage that they are in, such as

  • A ‘greenfield project’ or a brand-new project
  • A ‘version upgrade project’ which has some previous versions already in production
  • A ‘maintenance project’ only involving testing and bug-fixing
  • An ‘L3 support project’ involving priority tickets to fix within timelines dictated by SLAs

And so on…

The way one develops and delivers good robust working software in each of the above types of projects can vary drastically.

For example, 

  • If it is a maintenance project, then skills at reading other people’s code, being adept at using debug tools / techniques and quickly troubleshooting issues will be of utmost importance, compared to… 
  • A greenfield project where the focus will be more on building the right architecture & design and laying out good project infra & practices like stringent code reviews, CI/CD pipelines with comprehensive static code analysis, unit tests, high levels of code coverage, and so on.

 

Where do we fit?

Developing Neo using the preview versions of Noris and the underlying new Linux operating system presents a scenario where the underlying ecosystem itself is nascent and changing rapidly. This can be quite an experience and a challenge of a different level for most software developers.

Below are some guidelines, tips & strategies that I have personally started using and sharing with my team on such projects.

My Learnings

How to be Agile in such projects

Agile is a very popular methodology used for most software projects largely because it is very lightweight due to its self-organizing approach, flexible and adaptive to rapidly changing requirements, and self-improving due to its iterative and introspective operation style.

All the above are not only important in Neo but extremely crucial as each aspect is a more acute concern in such a rapidly changing environment. Below are a few ways I have customized the Agile process for my team and got more juice.

  • Start with short sprints of 1-week duration as these will help in adapting to newer Noris updates faster. Explore increasing the duration of the sprints once the base application is more stable and more third-party integrations are available.
  • Add an additional ad-hoc SPM (sprint planning meeting) somewhere in the middle of the sprint to accommodate any mid-sprint updates.
  • Anticipate a healthier portion of the initial sprint backlogs to be filled with exploratory work like prototyping and spike stories. This could be related to infra tasks like resolving SDK installation issues, getting the simulator to run smoothly and troubleshooting on a real device OR understanding and implementing features like focus management, navigation of UI elements and adding a new data provider.
  • Shift the focus from polishing up the app and bug fixing to tasks revolving around learning and trying new things instead.
  • Folks who love to obsess over burndown charts and sprint velocity charts should take a teeny-weeny chill pill. Remember that we are navigating some “un-chart-ed” waters.
qtq80-HNz91B

Use Test Driven Development (TDD) or FDD?

Nothing wrong with TDD, but a ‘Forum Driven Development’ (FDD) might also be useful here.

FDD is my funny way of saying: Check the Noris community forum first thing each morning before continuing development tasks. And one should even check it multiple times a day.

We are dealing with a completely new SDK that sits on top of a completely new operating system. There are hundreds of developers facing the same problem statements and ‘how-to-solve’ situations. And there is no ‘Stack Overflow’ knowledge base yet! So, what can we do?

  • Go to the forums often, search for the issue! Chances are that someone just posted something about it.
  • Or, even better, the Noris team has already built it for us. For example, Noris Bricks (fictionalized name) which are reusable components – both UI and non-UI, that give one a head-start in development. Maybe the component we want already exists in this library. And the Noris team promises to keep adding more components in the coming days and weeks.
    So, check often!
  • And if we don’t find any solution, post a question in the forum. Chances are someone will soon answer or post something about it.
  • Or add a feature request.
  • Also, Noris Evangelists are eager beavers hungry for adoptees, and will hopefully get us answers much quicker from the relevant internal teams. Follow up with them.
  • Now if we can also do TDD on top, our broken build will keep reminding us to check the forum.

Become Linux Friendly

Just looking at the sheer number of Noris forum questions on topics like simulator, emulator, terminal, shell and similar keywords tells me that this is primarily a Unix/Linux world.

Also, Noris has rolled out support for only Ubuntu and MacOS, both of which are Unix-based operating systems.

Lastly, the underlying OS is their own Linux based OS. So for that extra edge, better brush up on the *nix stuff.

Below are two very good free eBooks out there that should help:


One final note I tell all our Windows ‘fanbois’: Forget any hopes of getting a Windows dev environment anytime soon. Any query to Noris will be met with a quick response: Be Ubuntu; be MacOS; Hell! At least be dual-booted w/ Ubuntu, else be dead! I even boldly attempted to go where no Noris developer has gone before. [Where_no_man_has_gone_before]. I mean I even tried to get it working on WSL2, and only got close but no cigar.

So, become friends with Linux!

About React Native

Just a couple of thoughts here for now:

  • Since Noris is making a concerted effort towards React Native based development for apps like Neo, it might be better to stay away from native technologies like Java/Kotlin, Swift and proprietary scripting languages and consider using React Native instead for our current projects.
  • The reduced porting effort to Noris devices will make our life much easier in the future.

Conclusion

Perspectives are different ways of looking at the same things. Below is a growing list of perspectives I keep on Noris projects. These are a must for anybody in similar situations.

  • It’s an ever-changing world! Don’t get married to something, yet!
  • ‘Deep dive’ might usually not be that deep. Be ready to encounter shallow bottoms!
  • It’s better to ask questions now than to beg for answers later!
  • We are migrating to a new world. Get ready to unlearn & relearn how we do things!
  • The debugger, watch window, call stack and logs are going to be close friends!
  • My code is going to change, so no point in thinking production-quality just yet!


Developing apps in a rapidly changing ecosystem is tricky and how you look at each situation and find the resolution in a time-bound manner is critical. The above perspectives helped me come up with innovative solutions like the ones mentioned in the earlier sections.

Hope they do the same for you!

About Author

Rajat Singhal, Head of Engineering

Rajat is an experienced technologist with close to 3 decades in the IT industry. During his long career, he has made some significant achievements, for instance, managing the software product development for a $100+ mil annual revenue-generating financial product, building & selling healthcare software to a Fortune 500 company, and building an e-commerce platform from scratch for a $30 million annual revenue automobile spare parts dealership. In the past, he has also spent over 11 years at global icons like Corel, Cisco, and Thomson Reuters in the US/Canada.

In his spare time, Rajat likes to listen to music, strum the guitar, and binge-watch crime shows.

SHARE THIS ARTICLE

Stay up to date on latest trend in video tech

Please enable JavaScript in your browser to complete this form.

Related Posts

Please enable JavaScript in your browser to complete this form.
Step 1 of 2

Get in Touch

Fill out your inquiry and contact our team

Welcome cookies

To provide the best experiences, logituit.com use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behaviour or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.

Please enable JavaScript in your browser to complete this form.
Step 1 of 2

Talk to an Expert