General statistics
List of Youtube channels
Youtube commenter search
Distinguished comments
About
Tiago D\x27Agostini
Continuous Delivery
comments
Comments by "Tiago D\x27Agostini" (@tiagodagostini) on "Continuous Delivery" channel.
Previous
1
Next
...
All
Estimations are only valid if you already did something very very similar. That said, from a owner of a software company POV now, they are needed, because money allocation depends on that. So we really need to know a low and a high bar for an expected release.
9
@lukasdolezal8245 There are several fields that would call insanity to not do any end to end test. Would you deploy a telephony system without doing a single real call before delivery? It is not only deemed stupid, regulatory agencies demand register and proofs of a large set of REAL conditions tests . You may test every single part of your system and each signal degardation step may be within parameters but when you put everythign together the interaction along those degradations creates an unusable result. So it is common practive to automatically generate a large number of calls on a large number of routing situations and compare the entropy between the signals in the input and in the output.
9
@Ash31415 Sincirely I think that is the problem with some of his videos. The title of a book gives the whole tone of the reading experience.
8
This, your answers puts it much better . There are things you NEED E2E tests, so do it for those. Just try to use smaller scale for things that can be caught on that scale. A simple example is system performance, e2E testign is the only one that will give you a REALISTIC measure of the performance on a system that is asynchronous, parallel and with several dozen stages.
6
@THEMithrandir09 Well For starters, Open Source does not imply free of charge. It is free to be changed. You could distribute your Open Source content behind a paywall. THe logic way is to do that with peripherical modules mainly.
5
That is the classic middle management agile. They think agile is something FOR THEM, that makes Them more important. They are the ones that forget that a company direction is given by directors, the ones that MOVE things there are the workers. management is there to HELP the workers, not the other way around.
5
The problem of partitioning code for business is that you enforce the result that your architecture will be a copy of the organization internal department scheme and that usually is HORRIBLE to mantain and horrible to scale. Develoeprs do need to understand the business but the oens that define where to partition things shoudl be senior DEVELOPERS.
4
Well I never trusted. On all places I Worked we NERVER used a release newer than 3 months. Your development environment must be more stable than that to keep a good quality output. If things change everyday you are in a wild sea.
4
Yet that is not enough. For a client the product is the interaction of the code with the environment. So systems that operate in complex scenarios that cannot be isolated (telecom for example) are usually in need of E2E testing in live scenario to evaluate extraneous factors.
3
There are proper mathemathical tools that are way more effective than TDD exactly because they are not sampling, see TLA+ for a good example. It grants a much higher level of assurance than any TDD.
3
@johnjackson6262 It is still the ONLY form to ensure performance. And perfromance is part of quality! It is not a good test to get operation failures but it is the best test to evaluate how yoru changes impact load, latency, tasks paralelism etc...
3
The thing I often not be used enough is hierarchical test. In your example you can have a few tests that if they pass everything works. Only if they fail the more detailed tests need to be run (automatically) to find where. Before anyone screams with me.. real world is not always web development, there are systems where some tests take HOURS because they operate over a Terabyte of data each time. It is important to not waste time and server costs to run something that is not needed.
2
@enginerdy Let me put you a simple example that corresponds to 50% of the software companies in world.. : ONLY 1 DEVELOPER...
2
@TrackedHiker I Know MORE about development than any of my employees. I had your mentality yet as ALL business owners I understood that it cannot be that way. Simple as that. There is a reason why all developers that start their own companies change their opinions... because it is not an opinion, it is a fact. I bet you would be angry if your boss did not accept to say how much you will earn in your month until after the month ended. Yet we also do not know how much money will enter the company before hand.. but we HAVE TO predict! We can lose a client, we can fail to get new ones, lots of things can happen. The business feature is the one that pays the bills, be sure if ONE facet of companies that will not change is that. The business is the goal, development is just a tool. You do not change the objective just to make the tool easier.
2
@pawelhyzopski6456 That is not as easy to say when your field for eaxmple is healthcare.. and not opoenign meansw peopel will die in emergency waiting for the PACS or HIS to proccess their data. There are some moments where you NEED to do what is needed. And as soon as that is done you start doing what you SHOULD have done.
2
@mariusg8824 Sound very cool until your company needs to pivot into a field and the new field is completely incompatible with the way your organization is structured. I have seen companies crumble exactly due to that. Try to make an organization match with an operating system.. I bet microsoft suffered a lot with the Conway's effect.
2
Well it is better that they do not get to production than if they got to production being unfit for it :)
2
well that although is not a proof. I spent 12 years on a quite large project (1.4 MIllion code lines of C++ when I left). The measured time fixing bugs was roughly 4% of the team development time. We did not use TDD.. so one cannot assume that not using TDD generates buggy code. Quality of code comes from quality of the team, nor a process. TDD is a way to solve the issue of how to force a minimum standard on teams on another angle of approach.
2
@ContinuousDelivery The "always deliverable".. or as close to it as possible is something I agree, but I do not know if you heard this complain from more people, but at least in my experience, I have faced a lot of people that thinks the important part is the DELIVERY itself, not the software being always deliverable. The always in deliverable state I see a great correlation on what I learned on painting ( a hobby of mine).. a great practice is.. work from general to detail.. and try to keep your painting always in a consistent state that you could consider.. complete (even if in a lower detailed state). You add details in iterations. Always pushing the whole painting into that next stage before you advance further . The painting is always consistent. The contrast would be to render a corner of the image to user detail before you do anything else... and you fall in the trap that if you suddenly dislike your composition.. it is too late do change anything.
2
I used to be only developer, but then started a new company and now I understand why something alike Jira is NEEDED. You cannot ever justify anything to your investors without it.
2
@kurt7020 Unfortunately the ways are not obvious and the community is very .. reactive to people asking how to change some behavior (real zealotry). Everything would be easy to fix (on my pov) if I could overload the assignment operator (=), with specific signatures for move and copy (just like C++). Each one could make easily code that behaves as they seem fit. I am currently making a project to re learn Rust (I passed a few years without looking at it), or an n-body orbital solver supporting a generative AI to learn to make orbital transfers using the least fuel. I am writing 2 version one in C++ and one in Rust. The C++ one has much less typing and is clearer to read (mostly because math and simulation code is much biased towards copy behavior). Rust can have some gains on other areas but paying that price make its appeal diminish.
2
@-Jason-L Should, but you cannot! If you are making a website that sells tshirts you can risk it, but if you are making systems where a single minute of downtime can cost millions or worse, LIVES, then you CANNOT TRUST ANYONE word.
2
Using fixed versions is basic common sense.
2
@GalaxyCat001 I remember a coleague that when the new manager asked what model of development we used (already preparing to change everything) he answered "steady and ongoing"... and completed..."it is like scrum .. but witht he stupid part replaced by the "turtle and the hare" lessons.
2
Well be ready to get a lecture how company management, resource allocation marketing fund allocation works in return. I have done both things and I will say, software development is not harder than navigating business and government regulations that emand beforehand estimation of cash flow..
2
What I hate more than anything.. besides Javascript, .... and standup meeting.., is OPEN SPACE OFFICES!!!! Developers do not work or think as people in HR or other departments!!!
2
As everything in live the middle ground is usually the best place.
2
Yes, but both things should live side by side. Worst thing is when you find a method whsoe name implies it does A, but in fact it does B.
2
Before that there is the step of EXPLAINING your code to someone else. IFyou cannot make another person understand.. you probably need to throw it away and re do it.
2
@octomancer My own opinion is not so positive of unit testing. In my 30 year career I have seen so many mistakes created by unity testing focus (instead of thinking in the problem, the developers think in tests only and fail to see real complex interactions, that are the SERIOUS issues in several type of systems). I do near zero UNITY testing a the very definition, yet my systems have operated for decades in healthcare with very high reliability in healthcare. You need testing, automated AND manual (depending on the tool type) but not always unity testing is the way to make the best tests. IF your field of operation tranlates well over a math base, a lot that unit test aims is already acomplished by the underlying reliability of a math model.
2
Well One to blame in this debacle was EU. They Forced microsoft to expose their kernel to third part vendors. Operatign systems is for the operatign systems develoeprs and politicians have no place into forcing dangerous things like that.
1
But that is standard practice in game market. You do not get funding for your projects if you do not do that. Apple does not need external funding for a project. Their mistake was the most common one on game industry. They did not have a real game view, they had a hyperbolic dream and advertised that. Anyoen that knew anything about game development knew, back at the first announcement that it would NOT succeed on what it promised.
1
Yet is is not how math works. Math is a truth. It can define things that are not modeled. Several things were discovered because math demanded them to exist.
1
With the classic sole exception.. a system with only 1 part.
1
Java script is to programming languages what IA32 was to processors. Stupid idiotic, bot so spread that no one dares not not focus on it.
1
The 10 lines of code although must be taken with a pinch of salt (i.e it is not for 100% of cases). For example if you are writing a code that has a directly mapped meaning, split it can cause confusion. One example is math code. If you take a invert matrix code and start to fragment it you are splitting a well defined and known concept and that very likely will cause MORE confusion (because you start to create arbitrary cut point that do not exist in the concept)
1
Well in pure theory it is possible to measure productivity. You just need a company with only 1 developer. You check how much money the company makes with its product and how much it costs and you have productivity. Problem is that this scenario is not very useful.
1
But that is why I am against the hardcore TDD. Development should not be DRIVEN by test, should be SIDE TO SID with it. When something other than understanding the domain drives the development, you end up with BAD design. TEst is part of development, not the reason (Driven means is is the thing that pulls all your moves into the develoment, i.e the reason) of the development.
1
I think you underestimate things. This happens exactly the same in a hospital. The only difference is that people are very very careful at saying life A is worth more than B.
1
As I heard a wise dude say once, the only contract you can trust to never change is math, for the rest is all about your naivety.
1
I will say most companies do return to the origin any bug fixes they find, and that is their obligation. If you want more than that you need a license that goes into that direction.
1
@gronki1 yes, when you are writting a stop gap feature whose lifetime is expected to be 2 weeks and only need to convert some data from system A to B 1 time per day when a secretary push a certain button and the worst it can happen is someone having to do something by hand. Then it is not monetarily worth to spend resources into achieving the same safety that you should employ in a system that controls something in a passengers plane.
1
@piotrd.4850 Yup, My company is in healthcare and it is a NO-NO to deploy ANY software piece, be it a library or your OWN software without a few MONTHS of enclosed testing.
1
The main cause of that is that ideally notebooks shoudl have some form of specialized version control. Git is problematic because it cannot differentiate automatically the CODE lines from the execution lines. THat result in frequent conflicts and makes everything painful.
1
I find funny that there is so much HYPE on continuous delivery when during my 24 year experience (most of it in healthcare and communication backbone systems), most often than not the clients COMPLAIN of continuous delivery. I all the fields I worked they start to complain heavily if you make weekly deliveries. . I had cases where we lost clients because they felt they were being used as testers and they wanted at MOST 2 releases per year. This was so critical that they pushed the regulatory agencies in my country to FORBID such practices. For example I cannot deliver/ sell a software component in healthcare that had ANY change at all after it had been deployed in test field environment for 28 days.
1
@ContinuousDelivery I do not agree with the policy, but the regulatory agencies here have setup rules that make the effort mostly moot. They demand a grace period where no change at all was made in the software before delivering it... that makes the Always at deliverable state almost irrelevant(at a businness level) , since you cannot use its most immediate gain (the only remainign gain is that you cannot take yourself too far from a stable situation and that indeed avoid going into a deep hole). Indeed there is a mix of the cocnept of deploy with delivery.. maybe here it is enhanced sicne in portuguese Deploy and deliver are the EXACT same word.
1
The issue is, there are not even close the the worst kind of errors neither the most common. A system that looks like it is working but it is resulting in wrong values or actions is far far more dangerous that one that crashes. I agree we should not ever be complacent on mathematical rigor, but the worst problems usually arise of bad system modelling, not a bad language. Most errors caused by languages shortcomings cause immediate and critical failures (although I know there are some exceptions) My view is not that languages need to evolve is that we have too many people that THINK they are capable developers when they are NOT, and unfortunately I think the trend of new " I will hold your hand" languages contributed to the spread of so many bad developers. So while I am all for using safer languages on products, I think learnign shoudl be in a harsher environment.
1
@kurt7020 The zealots are what kill the language for me (that and the default behavior of MOVE instead of copy that make writing math code horribly verbose)
1
@johnjackson6262 It is not the answer, but NOTHING is the answer anywhere in software development. Everything are tools and tools are to be used when they are deemed the correct tool for that specific moment. The simplest example is ensuring the performance of the system is still within acceptable parameters. You can only be sure about the performance in an asynchronous parallel system when you run the system in a complete state.
1
@johnjackson6262 My point, to be more clear, is by your statement , I consider you a CRAP software engineer. Is it more clear now?
1
Previous
1
Next
...
All