2 hours ago, Fulcrum.013 said:
Specs meaning starting point of researching and nothing alse regardless of metodology used. Also any specs can be approached by different ways. It is responsebility of developer to find a most flexible way. For example let research some flexible ways for previously discussed hipotetical story. Of couse we can imediately start to code a some garbage code that would be trown to trash at first minor changes. And it is called a woodoo-programming. But by any canonical development requirements we have first to determine entities of task field, their responsebilities and relationships. Following this way wi shortly have solution to make tanks and turrets a composite objects and angular actuators with constrined angles to drive a turret left-right and gun up-down. Gun fire and reload cycle can be approached as state machine where each stage have a own delay and flag is it processed automatically or by user keypress. By this way wi will have a wery tiny code of implementation and 100% data driven tweaks of any object behavior. Realy to implement any proposed specs changes (and anything else what can be required into any whechicle shooter) it require to add/remove stages to gun machine and remap some input keys that anycase have to be 100% data driven,and add a additional guns/turrets slots and angle costraints into modeling software (anycase it involves changes of 3D model geometry) It is called a software engineering.
Spec is the alpha (the starting point) and the omega (the end results) in classics software development process. Of course the actual outcome of the process is the 'software', but specification get evolved along the way. The main reason is the specs will act as an reference for another project. If the spec does not matches with the software, either one of them has to be amended.
In larger organization, there are number of people get involved with some piece of software. Sometime you need a sign-off from the head of different business units before it can be delivered to the client (which happens to be one of these business units). So what would these heads check before they sign-off ? Of course, not the source code. They read the specification, or some other kind or document. (My latest work is about the processing, but it affects registration, so I have to ask the registration BU head to sign-off as well. for example).
I personally view Agile as a recommendation, not the 'only correct way'. In fact in the manifesto, it says prefer A over B (but keep B in the consideration too). It's not strictly enforced rule.
However, there are people misuse it. Many people (in the 'certification camp', for example ) dictate what to do and what not. Agile is not a universal rule, let alone SCRUM. I remember listening to an interview with one of the CMM inventors. He said CMM is just a guideline, the implementation does not really need all of them to be implemented. However, later some other people put those guideline together and create CMMI, which dictate thing to do and what not. This is something happening in the Agile world.
But I believe that in a few years, the word Agile will fade away. People will take some of it suggestions. It will become the norm and a basis of other methodology to come (DevOps ?).