Page 1 of 4
For me perfect working conditions are as following:
-
The client requirements don’t change, only small minor and non-critical changes are allowed.
-
The technology which I use don’t change and only security updates are applied by the dev-ops.
-
Each iteration can reach the planed milestone and the client requirements each time 100% satisfied.
-
Test driven development is a mandatory in the projects without any exceptions.
-
Work in teams with team members always cooperative and nobody play the “blame game”.
But many times the situation quite different, business always wish new features, such work expected to be done in the shortest time possible.
I see my main role in such cases to help to drive this goal to success or be reasonable and use common sense and politely say NO,
I wouldn’t lie that’s such statement isn't easy publically to state , but I prefer to stay honest if a business wish to have a sustainable business model then it’s critical to be honest to each other and be fair.
As professional programmer i believe it’s always reasonable to say that in some cases it’s almost impossible to make a legacy project meet all planned features on time or even keep it alive and running.
-
Even more when team work on new project, they should always ask themselves, does really what we discussing valuable for our client or product owner, what are the most important features for the project success?
-
Do we actually have all needed expertise to create such product?
-
What our backup strategy if something goes wrong?
-
How we plan to manage a technical debt?
Answers to those questions must be always in the minds of your developers, solutions not always arrive as straight answers, many times you build prototype and present it to the client and evaluate how client react to it and then you improve the product.