Have a personal compass, keep it pointed "true north"

Have principles and practices 
This is super important because: you become your practice and principles.
Here's some of mine: I think about my work, I research approaches, I ask a lot of questions, I am visual, show me the mocks, I create design diagrams such as uml diagrams,  I refactor and code together, I write tests, I work on projects which develop incrementally (design, code, test, repeat) etc.
I respect and look for others opinions,
I like to have fun in work and not take myself too seriously
I estimate the work as best I can, but am often wrong, thats estimates innit!
I'm not dogmatic, whats works is often best when developing a product
I don't like bullshitters at any level and I'll follow courageous tech leaders over the top and into battle any day.
I need to see a realistic plan
When shit hits the fan, take a deep breath and look to the data. Don't be run by emotions.
MVC has principles. If someones violating then they have to refactor and fix asap.


Have role models you can learn from (and learn principles etc from).
"Uncle Bob" Robert Martin and Nicholas Zackas are two of mine but also John Lennon and Ghandi. I like what they do/did and their rationale for why.



Know where you're going
Software: have a f*king realistic plan and approach; if no-one else is providing it then step up and help start one.
Career: The best person to manage and plan your career is you. Take advice for sure, especially at the beginning but you own the journey. 
Never underestimate the fun of new technologies


Know when you're been asked to go against your principles
Its easy when you have principles and practices....because these get violated. If they're principles they can't be violated. Within all this is some greyness and judgement call, but if it consistently happens over time then it's a problem.


Don't be afraid to speak up when that happens
I'm a software guy. I'm not in sales. But if sales is selling work that's clearly unrealistic then we'll all suffer, including the Client. That's an appropriate trigger to step back and figure out a better way with all parties involved.

It just struck me the other day that as well as "code smells", there's also "project smells" i.e. indicators that something is wrong and needs ot be fixed with a project. Surely a topic for a future blog post.


Comments

Popular posts from this blog

deep dive into Material UI TextField built by mui

angular js protractor e2e cheatsheet

react-router v6.4+ loaders, actions, forms and more