Did I hire professional iOS developers? How to tell
Hi from the Code Bug,
Here are 10 ways to detect that your iOS team acts professionally:
Ask them to place the login screen somewhere deep in the app navigation hierarchy. A professional team will have every screen so atomic and decoupled that it can be placed anywhere. The way screens are presented to the user often changes, so a great team makes each screen independent of others.
Ask the team to change the navigation in the App from a NavigationController(stack) to TabBarController(tabs). If they separated navigation logic into special files, they will be able to do it in a few minutes. If not, it may take them weeks. Navigation flow changes often after redesigns so a great team is prepared.
Tell the team your app doesn't require local caching anymore. The caching mechanism shouldn't be the core of the app. It should be just a caching mechanism, exchangeable by another mechanism, or be completely removed.
Ask the team to run your iPhone app on an iPad. Or your iPad only app on an iPhone. A good team would have an adaptive layout making sure their app looks good on any screen size, be it 1/2 iPad, 1/3 iPad, iPad Pro, iPad mini, iPhone 5.5", iPhone 4,7" and so on. You never know what device size Apple is launching and a good team is prepared for any screen size.
Run the app on a older device. The app should behave smoothly, no freezes or lags allowed. A good team ensures butter smooth performance on any device.
Ask the team to prove that no new regressions have been introduced in the phone number parsing algorithm. A professional team will have a suite of Unit Tests covering most test cases for parsing a phone number. Those tests will run instantly so you should get an instant response. Great teams do not joke when it comes to regressions, they write unit tests to prevent things from breaking twice.
Ask the team for an app build every night at 12:00pm. A team should have the app build and build delivery process completely automated.
Ask the team to change the UI of your app - a redesign. If they decoupled the UI from the business logic the redesign should be very cheap. Great teams are always ready for redesigns, by separating the UI from the business logic.
Ask the team if they can reuse the networking layer of the app for a Mac OS version of the app. A professional team separates layers well enough that it's able to reuse entire parts of the app. You will often find yourself wanting to use a significant part of the app in a new one.
Is the team open sourcing software? From time to time you would expect team members to open source parts of their code. In order to open source something it has to be very decoupled and highly reusable which means it's good code.
This blog is entirely dedicated to real solutions to these 10 problems.
It has been a long belief of many people that shipping your app often, somehow contributes to the quality of the code. After all, you can't ship every two weeks if your code is crap? Right? Wrong.
While somewhat true, what the code bug actually sees is that developers write code which is bad,ignore degrading performance of their apps, just to keep by that 2 week release schedule.
You may force your developers to practice TDD, hoping that unit tests will make them write better code. They will then write coupled tests which do more harm than good just to make you happy.
The real moral is that there is no substitute for caring and passion.