“Experience is what you get when you didn’t get what you wanted .” ― Randy Pausch
Development experienced is earned the hard way by trying, failing and trying again until you get it right.
Developing isn’t easy and anyone who says it is will soon be humbled by the process. Senior developers are expensive but inexperienced developers will cost you more with late projects. Not all experience is equal and when you get to lead developer you need standards and leadership (values which are also learnt)
Experience is what you get when development didn’t work as planned or when something goes wrong. Experience is gained by working outside your comfort zone, on areas you haven’t done before. The cost of developing is making mistakes and a slower development speed because of the trial-and-error nature of learning.
In development theory is good but practical experience gets work done. It’s not until you create code in a new language or framework that you know you can do it.
Why is development hard?
The same approach doesn’t always work every time because the requirements are unique, the people involved are unique and the solution is unique. A creative process, involving people, communication and creating functionality that needs to work individually and as a complete solution. There are unknowns that cause errors. Errors and mistakes are a part of the process, going wrong and fixing it. Feedback is the fastest way forward for the solution and the developer growing their skills. Experienced developers limit the risk of things going wrong badly. They avoid more problems and fix the problems they find quicker.
The cost of learning
New Languages and frameworks are the same and yet different. The key concepts are the same, but each has its own syntax and processes. It takes time to learn how it works and the processes around deploying, creating and debugging etc.
The cost of learning is mistakes, getting it wrong will help you understand how to get it right. This is the on boarding cost developers need to pay to gain experience. Experience allows you to avoid future mistakes. In theory there is no difference between theory and practice, no difference between knowledge and creating code and customization.
In practice there is a big knowing what to do and doing it are very different and doing it will throw many unexpected challenges. Therefore practical experience is more valuable than theoretical knowledge.
An example is IT professionals with certifications, it shows they have the knowledge but doesn’t give any sign they can use that knowledge effectively.
This article talks about why C# developers struggle to learn Dynamics 365 Why .NET-C# developers struggle with Dynamics 365 Development
Why is experience valuable
Project plans are based on developers working at a steady speed. If the team makes decent progress, then we deliver the functionality roughly on time.
When bigger problems arise and progress slows significantly, then projects soon fall behind. This is when leaders and customer get alarmed.
Experienced developers don’t get blocked and through experienced have learnt to tackle problems logically and find the cause. Experienced developers, slow down and ask the right questions to resolve the problem.
Experienced developer reduce the big mistakes, resolve the smaller mistakes and deliver at a consistent rate. This allows projects to be delivered on time.
There is no shortcut to mastery, you earn it by doing, and it’s the fastest way to learn.
Experience is valuable because until you have done something, you don’t know how difficult it is and you don’t know all the mistakes you are going to make. Experience reduces the potential for making mistakes.