After starting a new job two weeks ago, I try to draw a conclusion of the insights I think I gained during the last year.
The following may sound patronising, but it is not intended that way. It is just an attempt of self-reflection, and I am aware, that I could hardly practice what I preach ...
Process:
Never do anything without a specification.
Defining SMART objectives is most important.
Don't be afraid of the 3Cs: Command-Control-Correct! This constant iteration is constructive and imperative to be productive! This has nothing to do with repression or dictatorship. [Actually having a manager that has done some additional military service can be beneficial here ;-)] As a developer it is very important that you know that your work is relevant and somebody cares!
Some kind of conceptual modal/ubiquitous language of the business problem is very important. It has to be documented somehow and become common knowledge of all involved team members (including stake holders).
Watch out for the danger of retrofitting the conceptual model after an existing implementation ... Tell don't Ask has meaning on all levels...
My understanding of production-ready quality has been utterly overhauled.
If you are working in a team, Sharpening the Saw and Filling Gopher Holes cannot be a One Man Show.
Bringing Testing into a big existing project is very difficult.
Producing more code is not necessarily a sign of progress.
Technology:
Design for testability IS important.
My dislike for code-generation has increased.
A layered architecture is just a millstone around your neck if it is not intended for decoupling different concerns.
Working with bitemporal data increases complexity by an order of magnitude.
Do not underestimate data migrations!
Personal:
I want to sharpen my saw.
I want to work smart, not hard. I want to make a difference. I want to be able to identify with what I am delivering.
Salary is not the most important aspect of a job. - This is no longer an empty phrase for me.
Working in a good team is bliss - you only can really value that if you have seen both ends of the scale.
It is very hard to work in an environment, where the majority of people does not share your mindset concerning important work related topics.
My trust into the sentence "This should not be a problem." has asymptotically reached zero.
The sentence "I fix it when I see it!" from a member of my management triggers the immediate urge to run to the nearest exit.
I want to read Death March.
"Working in a good team is bliss - you only can really value that if you have seen both ends of the scale."
ReplyDeleteThis is so true.
Coincidentally I'm changing jobs in 3 weeks too. And I'm leaving the best team behind I ever had as a team manager.
Stephan
--
Programming is hard - http://blog.codemonkeyism.com
http://twitter.com/codemonkeyism