So, thinking like a "Senior" programmer, I jumped into working to gain the deep understanding of client-side framework, and the various ways it worked to process my calls, so I can better tackle the task and others to follow.
After about 3 weeks of working on it(company orientation meetings and all), I was about 96% through but the client decided I have spent too much time in working on it. The expectation was that I would spend at most a week on the project and ramping up - copy-pasting where I could - to get the task over with.
I understand now that though I was brought on-board as a Senior engineer, I was in fact expected to first learn to work with the new library(copy-paste wherever I could), and then gain the understanding required over time, while working and pushing out code that is production ready, written in that library.
There was daily communication of updates during SCRUM meetings every morning.
The question here is .
1) When you find yourself expected to learn new technology in a very short time, and you have not only informed your manager of your inability to complete the training in such a short period, but made sure to provide daily updates, and ensured the line of communication stayed open for anyone who had additional questions, what do you do?
2) In the scenario above, was the client's expectation (complete training exercise within a week, start churning out production-ready code by the next week) unrealistic or was it in line with an "Agile" approach to learning that I am likely unaware of or not trained in?
2) Was my approach, which I assumed to be in the best interest of the company, to spend at least a month ensuring I gained solid grasp of this new technology so I could produce higher quality results than those before me, wrong?
3) Given that this supposedly "agile" training approach is unfit for me, how do avoid being locked into such a commitment on future assignments? How do I stress that I require a good amount of time to learn new technologies without hurting my chances of getting the job during interviews?
SCRUM <=== A.K.A Daily Update Communication Meetings
A stand-up meeting (or simply "stand-up") is a daily team-meeting held to provide a status update to the team members. The "semi-real-time" status allows participants to know about potential challenges as well as to coordinate efforts to resolve difficult and/or time-consuming issues. It has particular value in Agile software development processes,1 such as Scrum, but can be utilized in any development methodology. The term "stand-up" derives from the practice of having the attendees stand at the meeting, as the discomfort of standing for long periods helps to keep the meetings short.
The meetings are usually time-boxed to 5–15 minutes and are held standing up to remind people to keep the meeting short and to-the-point. The stand-up meeting is sometimes also referred to as the "stand-up", "morning roll-call" or "daily scrum".
There are three questions to ask and answer in the daily stand-up. Though it may not be practical to limit all discussion to these three questions, the goal is to stick as closely as possible to these questions:
What did I accomplish yesterday? What will I do today? What obstacles are impeding my progress?
To help cement the above, please visit the SCRUM GUIDE . . . the guiding
principles of SCRUM by those who came up with the idea.
PS: For those who are not thinking this one through. As explained earlier, I was close to wrapping up my training. I was in the middle of customizing the solution for the training exercise to show that not only had I learned the inner workings of the framework, I could also customize, troubleshoot, and re-create existing controls in this new tool. And Yes, the client did pay for me to acquire all this knowledge which I have now.