App development has a massive appetite between software vendors and start-up owners. Because of appetite, there are, of course, so many application development challenges that need full attention.
This post set up an interview with our app development expert, software engineer, and front-end specialist Hamed Navabian to tell us about the challenges he had faced in app development.
He has worked remotely and full-time on different apps and software development projects.
You can find him over on LinkedIn.
As one of the WINaTALENT top talents, he will tell us about his app development journey and the challenges he has faced, and his tips on how to overcome them.
- How come you entered software development? And specifically app development?
Around four or five years ago, as I started my bachelor’s in Biomedical Engineering, I had my first encounter with coding.
Before that, as a teenager, I was fascinated by computers and learned how to use different software. And had the opportunity to learn some video and audio editing programs; you can say I already had a basic knowledge about computers, so computers weren’t that new to me. But The Fundamentals of Computer course was the first time I learned about coding.
A friend of mine started to work on a software project outside of university. Therefore, I also got motivated to get more serious about coding to have an income and gain some work experience.
Afterward, I changed my major to Computer Science Engineering because of my passion for computers and programming.
- Can you tell me about your experience in app development? (how many projects have you had the chance to participate in?…)
I worked on several apps, but there were always some complications when it came to publication. I use React or React Native to develop these apps. For example:
- Pardakht Vaset was my first project. This application gives a wallet to the users, and they can use it for money transactions between different bank accounts.
- The next one was an application that showed commercial videos, and users would get paid if they watch these videos. The app would show videos, and the users could cash out their earnings from the application after some time. The application was not just a mobile app; we also had to develop and build a website using React. This website had an admin panel to upload videos and see the user list. In this panel, cashout requests were available for the administration.
- I was also involved in the Happytor application, which is available on google play to download. This app is a personal calendar to remember the year’s special days (like birthdays and anniversaries). Users can add wish-lists. Your friends can follow you on the application to see your wishlists. You can also see their wishlists and plan your next gift idea for them.
- What were some of the real application development challenges you faced when you were developing an app?
As I started my app development career, I was inexperienced in this field, so it was natural to have many technical challenges.
But after some time and with more experience, these technical challenges became less and less. Each project is different, and new challenges may arise. But the technical difficulties are the reason app development is not dull.
Besides technical difficulties, some application development challenges involved the clients and the way they manage a project. For Example:
- Sometimes the project’s owners or clients think a developer is a typist and not a professional computer engineer. So basically, they devalue what you do. These challenges happen because the clients are not very experienced or are not very knowledgeable about app development.
- Job devaluation attitude will affect payment. The clients forget what you do as a developer and programmer is a professional job! Therefore I found so many clients asking for a discount or refusing full payment.
- Another problem that arises in the projects is time-based. The whole team should be involved in time management and project time estimation. Sometimes, the client does not consider the developer’s professional idea and keeps on pressuring the development team to meet their unreasonable time frame.
- Though, I have had clients who were formerly developers themselves, and they do have the required knowledge to plan a project. They know how much something will take or how much the developers will charge them, but they still have an uncommunicative manner toward the developers. Clients need to understand an IT project is not a battleground. And they should consider agile methodology in their planning and communication. It’s interesting even after all these years; there are still clients who believe computer programming is not a serious job.
- According to your experience, what did you do to solve these application development challenges you mentioned?
For the technical challenges, I tried to learn from my mistakes or change my perspective and structures or my coding model in the face of new challenges. But It’s worth mentioning that app development with React and React Native has a solid methodology with a bit of adjustment based on the project’s needs. Also, React gets a regular update to make things easier for the developers.
Sometimes you need to develop and code from scratch to solve your technical challenges. The technical challenges happen because developers use many different libraries. (libraries get regular updates, and they try to solve all the problems that may arise, but in your workflow, there are times that you face a library-related challenge). This process can be very time-consuming. But you shouldn’t forget that it’s part of the job, and it’s okay to spend time on it.
And with the management and client side challenges:
I always have some requirements in my contract. For example, all of the designs and back-end services should be ready before I start my role. These requirements help with a swift and smooth development process.
As a front-end developer, my job is to design implementations. So the web services must be ready before I begin. Therefore, by connecting the designs to the web services, the application will start running. In my contract, I also try to ask the client not to interfere with the project’s technical aspects.
I also set regular weekly meetings with the development team and the client. In these weekly meetings, the client gets informed about what we have been doing in the past week, and we show them a demo of the product we’ve been working on. Regular meetings help put the client at ease since they receive regular updates and feedback from the developer’s team.
Also, to prevent problems between my team and the client on the project, I mostly give them an hourly rate.
- What do you see in the future of app development?
I think the future of app development lies in artificial intelligence and data science. Artificial intelligence will be more active in the development stages. You will be able to talk to a program, and it will automatically develop the app you want.
There are available platforms that help you develop apps as quickly as drag and drop. These platforms give you the source code and the production field of your app.
App development is going to get much easier in the future. I think, in the end, the app developer will get replaced with an intelligent program.
It’s true! The technology will get better and smarter every day. The app developers also need to grow with technology. Even if it means there will be no app developers after a while, they still need to stay updated and learn new skills.
I don’t think the appetite for app development will go anywhere soon.
For example, some new ideas cannot get developed because we still don’t have the technology. And technology is growing every day, so there will definitely be more developed apps.
Right now, the app development industry does feel stuffed and out of ideas. Like, everyone wants to develop a new Spotify, a new Digikala, or a new Instagram.
But there are still fresh ideas around to pay attention to and without repeating the past. You know everybody has some digital smart device, and it keeps on growing. Everyone knows about the internet and applications, and their appetite for new features is endless.
On the other hand, there are more developers and software technicians. So the programming world is on the rise because of the new talents and the new ideas they bring to the market. This will be very helpful for software and development. It brings growth and new ideas to the field. A very positive thing about the whole software industry is how different people like to share their experiences with others. Also, in this industry, we help each other grow and become more successful developers.
- What are your best tips for app development?
The technology will get better and more intelligent every day. App developers also need to grow with technology. Even if it means no app developers in a while, they need to stay updated and learn new skills.
Share your skills with others. Educating others, finding new talents to coach, and helping other developers succeed are all excellent practices to gain experience.
As a Developers get used to to documenting your codes.
Use updated, healthy, and well-known libraries.
Find the best well-known, widely used design patterns. Don’t choose a favorite when it comes to design patterns. You can always hand over a project to other teams after your development stages are over. If you haven’t used a well-known design pattern, they will face complications.
Use React Native to save time. React Native supports almost everything in the app development department. Right now, it’s effortless to use and has become very advanced. The built-in support is also beneficial.
- What can you tell our readers if they want to start and develop an app?
To the new clients I can say:
Don’t go to the software developer with a basic idea. Start by writing your FRS, SRS, and BRS documents.
Get consultations from experts such as product designers.
Suppose they want to start an app to sell chocolate. In that case, they should not enter software development before knowing the kind of product they want to sell, where they can find retailers to supply the product they need, and writing the related document to see if it’s possible to make that idea to an app or not.
Do your market research, then, talk to a developer!
Build a business model, and if you don’t have the knowledge or expertise, hire a project manager.
The client and the developer should document everything they agree upon, their requirements, and what they had already done.
- Is there anything you want to add?
I think the clients need to keep this in mind; to make the situation ready for their application development.
The work quality will get a lot better this way, the clients themselves will have less stress, and things can move smoothly.
Application Development Challenges is a part of the app development journey of every client and freelancer. But to overcome them, they need to work as a team and communicate through these natural obstetrical.