You have a business which needs apps running on iOS and android; which one is easy, building native apps or hybrid ones?

If you are the one who right away answers either native or hybrid without asking what are the considerations for the apps then you are setup for failure or great hardship. There is no blanket right approach to build apps that look similar and works similarly across the ecosystems.

smartphones-2182838_640Building rich native apps require depth in understanding of the capabilities of the  platform and designing a common experience for the users even though the capabilities of the underlying system might be different. Two separate teams, two different development pace add to the complexity.

On the other hand, building hybrid apps require a great breadth in mobile development. This means the team should have developers who understand iOS and android systems, knowledge of javascript, some experience in trouble shooting applications in iOS and android (may even require java, kotlin or swift exposure for some native code). It is a tall ask, requires a fair deal of experience and knowledge for everyone in the team.

Choose wisely, a blanket approach of one over the other for everything we do is not right and often leads into difficulties. If you say ‘As a company we decided to only hybrid apps’ then you don’t either understand the complexities or have not given enough thought on how to implement.

 

We are increasingly surrounded by things what we want to hear and see, which traps us into a small circle of our own echo chamber. Before internet targeting something for someone is quite hard, a person has to do a great deal of research to find something useful about a person. Now it is just a click away and we are giving it away in a few clicks.

We are in an era that our attention has been targeted like never before and with great precision. We are giving away a lot when we message someone, when we talk to someone, when we read news articles, when we like our friend’s photos, when we order food, when we buy something, when we watch a movie, when we use maps, when we use search engines; there is not a place where we can control what we can give unless we put in deliberate effort.

All this creates a profile of us and then feeds us what we have liked and used so far. I chose to listen to jazz music one day in an app, from that day onwards I keep getting jazz music prompts and I have to wrestle my way out to find something else. Music was obvious, news is not. If I had clicked on a type of news in Facebook then I would keep getting the same kind of it and subconsciously I will be primed to think that is the only thing happening around me. The same applies for anything I can think about, as a first step I unsubscribed to all the emails and thanks to GDPR it made my life even more easy to unsubscribe. I also uninstalled Facebook from my phone and use it as a way to find some old friends and get their contact through the browser.

The next steps I began to do was to go under the radar. It may be hard to go under the radar especially when we use social networks and messaging apps but we can control a lot of things what we do on the browser. I stumbled on a link that helps us to stay private in the era of mass surveillance, I started cutting down on ads & trackers; it is easy to do even if you are not a full time developer. Privacy is getting increasingly hard, if we don’t seek it we will get stuck in an echo chamber, listen and see only what we want to not what is happening around.

There are lots of certified masters and trainers programmes available for various Agile methodologies but it is extremely hard to find one for Extreme Programming (XP). You can get certified in any methodology in 3 days and claim to be a practitioner but claiming to be a good XP developer is extremely hard.

It takes a few years of dedicated practice in XP to get some mastery in XP be recognised as one by peers. It does not come with just knowing how to write stories, estimate and sequence them. The most distinguished feature of XP is its emphasis on developers and technical aspects of software development.

Most of the people I encounter have modified waterfall into mini waterfalls following super rigid plans but tracking on a weekly basis in the name of agile development without giving much thought to the technical aspects. This will not help in realising many of the goals that we set out to achieve. Also to improve the speed, work is usually allotted in silos thereby increasing dependency on people and reducing collaboration.

Try answering Yes or No to the following questions

  • Do you do pair programming (May not be followed for simple straight forward tasks)?
  • Can any developer in the team call for a huddle when stuck or when there is a need for a design discussion?
  • Do you follow Test drive development (TDD)?
  • Is your team’s CI sacred, no one breaks the build or if broken it comes back green soon?
  • Do you do frequent commits/merges (short lived branches) to the master or do Trunk based development?
  • Can anyone in the team question the quality of code?
  • Does the team get together often to do mob code reviews or do some learning sessions on best practices?
  • Is it easy for you to roll off or onboard developers at least once a quarter?
  • Is there automation at all levels that people do not spend any time on recurring tasks?
  • Does your team seems to be productive enough if they work only for 5 days a week?
  • Is the team able to interact and negotiate on the stories with the Product owner during development?

The list above is not exhaustive but if there are questions that you have answered ‘No’ then you are not on the path to mastering XP.