Self-analysis and emotional intelligence are valuable assets. Internal, or even external, dialog aids in problem solving and understanding. Knowing yourself is more important than any skill that you may have. You must understand what you think you know, what you know for certain, and what you do not know. In the IT industry, your ability to learn is critical which makes understanding how and how fast you learn just as critical. Do you learn well from reading blogs, watching training videos, hands-on experiencing and testing, all or any of the above?
This topic can become rather abstract or philosophical as we dive into challenges of self-assessment or other concepts. I would rather root it firmly in a practical use case, however. Take this scenario as the basis of discussion.
A typical task in a day as a DBA
You are tasked with migrating over one hundred reports from an SSRS 2005 implementation to an SSRS 2016 implementation. First you evaluate your knowledge.
- You do not know how to automate the migration.
- You know how to manually complete this task.
- You know that this task, if completed manually, will be time-consuming and tedious.
- You know what your deadline is.
Automating the migration would be the quickest path to delivery and use the least amount of your person hours, but not knowing how to do that means that you have an extra task. You need to learn how to automate it. This can be time-consuming and could negate the value of this path.
This is where knowing yourself intimately becomes important and the decision of which path to take becomes more difficult. How long it will take you to learn the automation has a few factors.
- The difficulty of the automation.
- This is an unknown to you presently.
- How familiar with automation tools you are.
- Familiarity with scripting languages such as PowerShell and experience with development are examples of knowledge which can accelerate your learning.
- How well you can navigate and absorb information from available resources (blogs, BOL, free videos, etc.).
- How quickly you can learn in general.
If you are the type of person who needs to do something seven or eight times before you feel comfortable that you understand all the nuances, then learning this will take a fair amount of time. If you are the person who does not feel that they need to understand all the nuances in order to still be successful in accomplishing their task, then you will need less time.
Creating accurate estimates
Now you need to decide whether the cost of learning is acceptable or not. Having a deadline is important for this decision. Without a deadline, I would always shoot for learning the automation. Building new skills is important for your professional development. Whenever you have the flexibility to invest in yourself, do it.
Usually there is a deadline, however. The easiest thing to evaluate is how long you have compared with how long the manual effort will take. Let us use this equation.
Ta – Mt = Rt
- Ta = Time available.
- Mt = Time with manual effort.
- Rt = Remaining time.
- At = Automation time (not yet shown).
Using non-specific units, your equation works out where you have two units remaining.
10 – 8 = 2 units
Now you need to look at your automation effort.
Ta – At = Rt
You cannot solve this equation yet because At is an unknown. Of the bullets above, you can assess your abilities but you do not know how difficult this particular automation task is. That variable makes solving this equation, even with a margin of error, a real challenge. But, we know that at any time we can abandon the automation efforts and revert back to doing it to manual way. We also have identified that the manual effort leaves you with two units of time which can be spent. This means that you can spend two units of time learning, specifically trying to evaluate how difficult this particular automation task is.
If, within two units of time, you assess the task then you can look back at your equation and estimate a value for At. If you can complete the task in time, then carry on. If you cannot, then you will need to revert to the manual method.
Evolving the method
I painted the decision in heavy shades of black and white. All of this process actually lives in the grey area, however. Throughout this process, you can continue to think out of the box and assess partial solutions.
You decide that you do not have enough time to learn how to migrate reports directly from SSRS 2005 to SSRS 2016. You did learn that deploying from an SSRS project is pretty easy, though. Now you can decide to partially automate the solution.
- Manually download all of your reports to a directory.
- Create an SSRS project.
- Add all the .RDL files to the project.
- Configure and deploy the project.
Your two units of time learning may have bought you more than two units of time by automating the second half of the process. Just as important, or even more important, is that you learned how to bulk deploy reports and your value as a DBA has just increased.
The final step
The last step in this process is to learn from the process. Did you under or over-estimate any of the variables initially? Did you end up meeting your deadline? Also, it is important not to let that deadline control your professional development. Schedule some time to go back and learn how to fully automate this task. Next time that you need to do something similar you will be equipped for it. Understand that the need to learn does not end when the immediate need to do a task is gone.