4 ms·
Which, in reality, leads to everyone working on random things, just adding features and somehow patching bugs. No, it doesn't. Bad management and process leads
by matthewmacleod 11y ago
Which, in reality, leads to everyone working on random things, just adding features and somehow patching bugs.
No, it doesn't. Bad management and process leads to that.
But often refactoring the system, rewriting subsystems, etc is necessary.
Totally acceptable and something that can easily be included in agile development.
If your software is working, but there is no documentation
This is not a prerequisite of agile development.
- kuschku 11y ago> > If your software is working, but there is no documentation > This is not a prerequisite of agile development. No, but agile says that software is still quality software, even when documentation doesn’t work. http://www.agilemanifesto.org/ http://www.agilemanifesto.org/ It’s pretty clearly written down.
- matthewmacleod 11y agoYou are ignoring what I am saying – these are guidelines and principles to follow in development processes, not absolute requirements. If a requirement for the system you are delivering is comprehensive, complete documentation, then you can deliver that. The point is that "comprehensive documentation" without "working software" is useless.
- kuschku 11y agoNo, it is not. Your software might be working later on – and at the same time, someone else can write software depending on yours, based on just the documentation. Additionally, software without documentation leads to issues like "does the train continue running when the signal is broken?", and similar ones.
- matthewmacleod 11y agoNo, it is not. Your software might be working later on It might be, but it almost certainly won't be. See the errata to any set of documentation. But this is a digression – if the acceptance of your product or feature requires documentation of interfaces in advance, then that's a requirement that can be met regardless of the development process that you use. Additionally, software without documentation leads to issues like "does the train continue running when the signal is broken?", and similar ones. No, that's what incorrectly designed, implemented or tested software leads to. But again – if documentation is required, using an agile process in no way restricts your ability to meet that requirement
- kuschku 11y agoBut when you have to document and plan everything you write before you do so, isn’t that again waterfall? Are you just telling me that waterfall is also agile?
- matthewmacleod 11y agoAre you just telling me that waterfall is also agile? No, I'm obviously not communicating effectively. Documentation is a deliverable component of a software system. As a result, it can be tracked and managed just like any other deliverable component. In any real software system, the initial documentation will not reflect the finished system. That's inevitable – it's why we have errata. The difference between 'agile' and 'waterfall' in this case will be whether those changes to documentation are delivered at the end of development, or as they are required by changes to other parts of the system.
- kuschku 11y agoThe issue is when other software is built upon those initial documentation of your system. Third party services depending on you having a stable API, for example. You can’t just break support for them, so what do you do in agile?
- gnoway 11y agoDon't break support for them? There are still requirements, there is still design. If you have a customer depending on your API, that is a requirement. Agile doesn't mean requirements go away.
- kuschku 11y agoAnd if your implementation never changes, but you just do minor changes – isn’t that the maintenance phase of Waterfall again?
- 11y ago
- rbanffy 11y ago>> If your software is working, but there is no documentation > This is not a prerequisite of agile development. What I often see in "waterfail" projects is documentation that's inaccurate and reflects what once was the plan someone wanted to build.
- matthewmacleod 11y agoThis is so often the case, I agree. I can't count the number of times I've received a design document that details to the level of database field names – and of course, never bears any relation to the final product.
- Joof 11y agoAs an aside; I've been playing with rust and it's built-in documentation solution has an interesting quality to it. Code snippets in documentation are compiled and can be tested at compile time. It's one excellent way to ensure that updates that necessitate a change in documentation actually get documented.
- rbanffy 11y agoI love using doctests in my Python code. They can't replace proper tests, but its great to be able to guarantee your docstrings are correct.