I started working in my current job as an Android developer right after graduation (1.5 months ago), my first task was to build a complaint application which includes the following features:
- Registration using mobile number & SMS verification.
- Sending complaints and storing complaint ticket for later use.
- Tracking complaint status (querying the server for ticket status).
- Service to for polling the server periodically and generating notification if the complaint's status has been changed.
I completed the task in around 3-4 weeks and was able to deliver the beta version of the app. I believe some of the code is "weak" mainly because of the pressure about deadlines, but nothing that causes serious performance issues.
Now, I'm asked to start on a new project and after being asked for an estimation (which I provided after reading articles about development time estimation) but I still don't have a good grasp on how to estimate the time needed for development, I'm now faced with unrealistic expectations & deadlines.
How can I give more accurate estimates when I'm given the requirements of an app (android specifically) so that I'm able to explain why such time is needed, and how can I deal with unrealistic deadlines & expectations set by the manager or the team leader?