This question already has an answer here:
I started my first job as a software developer while still a senior in college. It was at a small IT and computer repair shop, and I am the first and only programmer to work there. Now two months after graduation I have found a job at a company on the opposite end of the size scale, but as I reflect on the work I leave behind I feel uncomfortably as if I have failed in some of my responsibilities as a developer.
Mostly I couldn't find a way to convey to my boss (the owner) that the project I was working on was outside the scope of my experience and abilities. Without specifics, he wants a SaaS-like website that offers a host of features such as task management, calendaring, group chat messaging, and inventory tracking. The website should feature as native an experience as possible but have to advantage of being accessible across all platforms. He also wants Android and iOS client apps.
I like to think I am a decent, albeit novice, programmer. I set up Git, I created a database normalized to third normal form, I use bcrypt, our web api is mostly RESTful, I learned AngularJS for the website and Objective C for the iOS app. But progress has been slow. The iOS app is done, but Eclipse hasn't even been downloaded for the Android one. I'd say the website is about 25% done, but I've come to realize that my ability to accurately judge web development is nil (I'll never touch another line of HTML in any future jobs if I can help it).
That said, I definitely did not do well in project planning and requirements management. Worse, he'll never be able to find a more experienced developer willing to work for my wages, so there's a real danger that almost a full year's work will never see production.
Several months into the project, as I started to get an idea of how much work would be required and how little I knew about web development, I tried to convince my boss to accept separate desktop and mobile apps to decrease development time, but he was pretty set on the benefits of a web app interface. As a software developer, I feel I have a responsibility to not only write good code, but also make sure my employers accurately know what can feasibly be done within both my skill limits and their resource limits. How can I effectively convince to my boss that a project is too far beyond my abilities?