Comments by "Slipoch" (@slipoch6635) on "Continuous Delivery"
channel.
-
3
-
3
-
3
-
Largely this will be a matter of what the programmer is comfortable with and what languages are supported.
Having used vim, vi, emacs, borland builder, VS, jetbrains etc. programming in intel x86 assembler, C, C++, C# and (wince) VB. I find the only time an IDE 'gets in the way' is when the IDE runs slow, or doesn't support a language you wish to use, or has issues compiling a particular language efficiently.
For example VS pushes towards using VSC++ instead of pure C++, I find VSC++ typically ends up 4x more top heavy than say embercadero's compiled C++ solution doing the same thing. Even using another C++ compiler and a non-visual project, VS ends up taking longer and having a more inefficient binary.
BUT, unless you are working at lower levels (and even then) an IDE allows for more efficient programming experience, which then you can run through the other compilers for the final binary.
2
-
2
-
2
-
2
-
Yeah, while waterfall is bad for ongoing development where change occurs or scope change occurs, it has still resulted in some of the most successful software in the world today (Windows, Linux, Autodesk, Maya, Houdini etc.), and while the changes were obviously a lot more breaking at a later date, some of that was due to the way MS or whoever had built their code rules and coupling (Hungarian notation can take a running jump for example as it just adds too much complexity). TDD is great for ensuring later change does not break older code for example, many tests for coverage in certain industries are required so you can have every part of the software that takes input tested for injection attacks, buffer overflows etc. But by the same token, I believe you will start to internalise these processes as you get more experience, and some of the less necessary tests (getting an int out of the db in a model for example) are just pointless once the system is working.
Agile is great for fast change & bug-fixing, but often a lot of places just get stuck in to the coding and later analysis using flow-charts shows a bunch of extra rubbish that is not needed or inefficient loops of logic. I like Agility and being able to quickly do a flowchart of the process logic and then enact the change is my fafvourite way to do things as you then have a 'map' of what is happening and any change on top of that is easier to implement as it just gets inserted where needed.
1
-
1
-
Hmm, well the bloke at MS I know was working waterfall post NT4. Unsure what specifically on but he's an assembler programmer so it would be very low level boot/driver/OS work.
I'm unsure why you think a small team means waterfall wasn't followed? I was part of a 3 person team working on application software and we had to do the project using waterfall. Doesn't matter anyways it just seemed an odd assumption.
Os2/warp (round 95 days) was actually pretty decent IME but IBM never bothered to really push it for non-business use which is a shame as it was working considerably better than Win 95 and pre-sp2 98. Getting decent software for it was a bugger though.
One of the more famous groups that used waterfall for many years (They may still) was Toyota (kanban boards were used within their waterfall system) for their manufacturing software.
Cisco has and still uses both Agile and Waterfall for different things. As mentioned earlier a LOT of older 3d rendering and engineering/architectural software was developed using waterfall.
I have worked in several jobs where full-functional software has been released and 1 major version has been supported and updated over more than 10 years and it was developed using waterfall. I have also worked agilely in small and larger teams and have also supported original waterfall projects using agile for updates.
Now patching, updating, anything with ongoing development and large change etc. I prefer to use Agile, but if we want a robust code structure for a new project particularly if the end-user is not going to be involved in the development at this stage, then I think it's either CI with a shedton of qualitative & edge case tests and code reviews/pair programming (or other fallbacks to reduce poor code quality) or map the planned software out using a waterfall methodology, if you then use agile for the implementation stage, this is fine, but the amount of crap I have seen in code where one thing has been done a few different times in the same codebase because a new TM didn't know it had already been done elsewhere is pretty much something I see on every agile project I have worked on (none have been CI/CD). The rate of this issue occurring in waterfall was greatly reduced as there is less unplanned change.
perhaps you could do a vid on your fave methods for ensuring the existing team is replaceble with others that do not have full code coverage and how you would structure something so that the wheel is not reinvented for a new feature when it exists elsewhere even when it may not be obvious?
I go with the flow for the most part. If I find we need a lot more planning I'll do the planning. If something is a pain to modify each time we touch it, then I will flowchart it, mapping out what it is actually doing and every point of the software that touches it. If it is small change I will just get stuck in and do it. If it is large I will change the flowchart and try to push it to be more modular and efficient (and more obvious).
The above has resulted in one piece of layered agile import code, instead of taking 2-3 hours (often getting timeouts) and using 4-6gb of RAM, to taking 10 minutes and using 500MB. It also avoided a couple of edge-case gotchas later on that would have killed it (and would not have been caught by the tests) when the data imported was a bit weird (this was a very oddly designed data set and was very mutable, but the client had no control over it) .
Horses for courses, whatever is the simplest way to make it a robust long-term solution should be the way to follow. Usually I use agility, but for more planned, less mutable work I will use a general overview waterfall with agile for the actual implementation phase and to handle any change to the overall plan.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1