Execution over Perfection
I talk about execution a lot. I know, a lot. However, I still haven't reached enough people in my mind, because I still watch posts fly in about getting started in development, should I do a bootcamp, how should I learn to code, what framework should I use.
Or the middle engineer questions, should I use react or angular, and what is the performance benefit of each. What about vue.js? What about doing a swift application or react native.
STOP THE INSANITY
OMG! The exhaustion that a new developer must go through now to realize what does NOT matter and what does.
The truth is, it really doesn't matter. Not to get started. Build something. Break it... Fix it... Add a new feature... That is all development is. We have all of these processes, managers, rules, approvals, and it has gotten NUTS!
Let me explain the best process for development:
EXECUTE, DELIVER, IMPROVE
You can repeat that process for many years on a single product. It's not more difficult than that. The problem is every new project seems overwhelming... "we are doing ground-breaking stuff". No most of are not. We are organizing data, making it useful, and then automating something around that data so someone can make a more informed decision about something.
Yes, I over simplify for effect. Am I aware of security concerns, scalability, threat modeling, SWOT analysis of projects, P&L reports for projects, migration strategies, failover strategies, disaster recovery, EU GDPR requirements, AA Accessiability compliance, and the list goes on. Yes, I am.
However, let's stop scaring away potential developers from the overwhelming data that they will learn over time as they go through their careers. Let's get them started with a hello world, a new web site, and let them play with responsive design in post-css and figure out why a post-css processor is MUCH better than writing raw CSS.
So listen up developers, go click on one of those links of a tutorial.... get it up and running, and then see if you can get it running on heroku, and then maybe azure, AWS, or GCP? If you can do that, you are ahead of the curve.
- Add something to it... add a new page that has a picture of you and a contact form.
- Have a user signup for your site and figure out how to store their information (and delete it easily, EU GDPR)
Then keep going....
You have everything you need to build right now
You don't need permission, you don't need a teacher to get started, you simply need to go EXECUTE. Go build something... and share it... and help someone else build something... and then figure out what makes it easier to build it the next time.
If you want my opinion, I love dotnet and react. But that doesn't mean you have to. Stop being overwhelmed, stop reading articles about how to get started... go do it.
Process will come
Don't worry about learning agile, kanban, setting up a trello board, all of those things will end up being what you will be doing naturally if you execute, deliver, and improve.
Seriously, for those who KNOW (or at least claim they do) agile methodologies... let's look at scrum... what do you do? You commit to work, you do the work, you demo the work, you decide what went well and what could be better, and you make small changes the next sprint. Execute, Deliver, Improve. Kanban - You do the work, if a stakeholder wants a demo, you demo, and you keep delivering... the improvement does happen in Kanban, but it is not as documented as a regimented retrospective... but I usually have a retro after each stakeholder demo... and we keep getting better.
I'll stay away from an in-depth agile discussion here. I want new developers to get started. Go try stuff... Go break stuff... and Then Fix that stuff you just broke, and figure out why it broke. That is how I developed everything on my commodore 64 back in the day.... What if I delete this? Hmm, that didn't work... let me put that back... and tada, it works again.
Ok, I'm done ranting for now, but go build something!