Re: [PHP-DEV] [RFC] Reclassifying engine warnings

  106748
August 28, 2019 16:26 chasepeeler@gmail.com (Chase Peeler)
On Wed, Aug 28, 2019 at 12:12 PM Mark Randall <markyr@gmail.com> wrote:

> On 28/08/2019 16:37, Chase Peeler wrote: > > I'm also not the one that built it on the eggshells - I'm just the one > that > > is now in charge of developing the system that someone else left sitting > > eggshells. > > That's a challenge which at some point or another will face all > technical leads. > > You have to go to the people making the decisions and say: > > "Okay, look, we've got ourselves a problem here. We've dug ourselves > into a hole by cutting corners, building up debt, and we've never made > it a priority to fix it, and now it's causing us problems. It's not one > person's fault, it's something that has collectively developed over > time, but the reality is, the problem is there and needs fixing." > > But that's a lie. We have made it a priority to fix things that are broken. I wouldn't consider undeclared variables cutting corners. We've
also invested a lot into making sure we aren't building up additional technical debt with the new stuff we're fixing.
> And when the manager asks "What problems?" you say something like: > > "The language we use is moving towards a much stricter approach to > handling ambiguous or error prone code. This can only be considered a > good thing, but it is going to mean that a lot of our technical debt is > going to manifest as errors that will stop our site from function..." > > Then the manager will go "Can't we just keep using the version we are on?" > > You reply: > > "We can for a short period, perhaps an extra year or two, but the > reality is that PHP is moving forward, and the current version won't be > supported forever, and even if it were, we would be missing out on major > performance enhancements and new features that could help us to build > new features". > > Or, they go "Maybe we should look at some options that aren't always breaking things. Our other system built with C# has never had that issue."
> The manager says: "Lay this out to me" > > You reply: > > "It's like our company car still works, but it no longer tighter meets > emissions standards so they won't let us take it into the city any more" > > In this case, it's like "Our car still works, but, you the left/right arrows on the volume knob have worn off, so, you can't tell by looking at
it whether you turn it clockwise or counter clockwise to turn up the volume.
> "Crap", the boss replies "Okay, we had best fix that" > > Boss replies "Yea, that sounds like a pretty stupid reason to have to upgrade. We'll wait."
> -- > Mark Randall > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >
-- Chase Peeler chasepeeler@gmail.com
  106759
August 28, 2019 18:06 matthewmatthew@gmail.com (Matthew Brown)
I'm no management expert, but I'd be surprised if a boss who won't set
aside time to fix a few undefined variables nevertheless green-lights
rewriting everything in C#.

On Wed, 28 Aug 2019 at 12:26, Chase Peeler <chasepeeler@gmail.com> wrote:

> On Wed, Aug 28, 2019 at 12:12 PM Mark Randall <markyr@gmail.com> wrote: > > > On 28/08/2019 16:37, Chase Peeler wrote: > > > I'm also not the one that built it on the eggshells - I'm just the one > > that > > > is now in charge of developing the system that someone else left > sitting > > > eggshells. > > > > That's a challenge which at some point or another will face all > > technical leads. > > > > You have to go to the people making the decisions and say: > > > > "Okay, look, we've got ourselves a problem here. We've dug ourselves > > into a hole by cutting corners, building up debt, and we've never made > > it a priority to fix it, and now it's causing us problems. It's not one > > person's fault, it's something that has collectively developed over > > time, but the reality is, the problem is there and needs fixing." > > > > But that's a lie. We have made it a priority to fix things that are > broken. I wouldn't consider undeclared variables cutting corners. We've > also invested a lot into making sure we aren't building up additional > technical debt with the new stuff we're fixing. > > > > And when the manager asks "What problems?" you say something like: > > > > "The language we use is moving towards a much stricter approach to > > handling ambiguous or error prone code. This can only be considered a > > good thing, but it is going to mean that a lot of our technical debt is > > going to manifest as errors that will stop our site from function..." > > > > Then the manager will go "Can't we just keep using the version we are > on?" > > > > You reply: > > > > "We can for a short period, perhaps an extra year or two, but the > > reality is that PHP is moving forward, and the current version won't be > > supported forever, and even if it were, we would be missing out on major > > performance enhancements and new features that could help us to build > > new features". > > > > Or, they go "Maybe we should look at some options that aren't always > breaking things. Our other system built with C# has never had that issue." > > > > The manager says: "Lay this out to me" > > > > You reply: > > > > "It's like our company car still works, but it no longer tighter meets > > emissions standards so they won't let us take it into the city any more" > > > > In this case, it's like "Our car still works, but, you the left/right > arrows on the volume knob have worn off, so, you can't tell by looking at > it whether you turn it clockwise or counter clockwise to turn up the > volume. > > > > "Crap", the boss replies "Okay, we had best fix that" > > > > Boss replies "Yea, that sounds like a pretty stupid reason to have to > upgrade. We'll wait." > > > > -- > > Mark Randall > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > -- > Chase Peeler > chasepeeler@gmail.com >
  106760
August 28, 2019 18:21 chasepeeler@gmail.com (Chase Peeler)
On Wed, Aug 28, 2019 at 2:06 PM Matthew Brown <matthewmatthew@gmail.com>
wrote:

> I'm no management expert, but I'd be surprised if a boss who won't set > aside time to fix a few undefined variables nevertheless green-lights > rewriting everything in C#. > > It wouldn't be rewrite everything. It would be doing future development using another platform (.NET, node, whatever) and letting the PHP stuff
remain like it is. Fixes made when necessary, but, not just for the heck of it. Eventually the PHP stuff will get redone on the new platform and be retired - just like right now the legacy PHP stuff is slowly getting redone or replaced. I don't think that would happen, either, but, the more difficult the upgrade path becomes, the more likely such scenarios will be entertained. We're committed to paying down our technical debt, but, we have to do so on a timeline that fits in with the goals of our business and given our limited resources. If we can't depend on PHP to allow us to pay it down on our timeline, then it might become a choice between not upgrading or doing future development with a platform that doesn't threaten to make the upgrade path something that isn't feasible for us to accomplish. And, to be totally honest, this probably wouldn't cause that much of a delay in our upgrade plans. We'd probably be upgrading to 8.0 around the time that 8.3 was released. Chances are we would be 1 or 2 minor versions behind anyway. We're still on 7.0. We would be on 7.3 but we've experience some difficulties and had to roll back, and currently it's on hold while we knock out a few big projects. However, 10 years ago, my company operated very different. 10 years ago I can see pretty much everything I've talked about being a real possibility. If we operated that way 10 years ago, then there are plenty that still operate that way today.
> On Wed, 28 Aug 2019 at 12:26, Chase Peeler <chasepeeler@gmail.com> wrote: > > > On Wed, Aug 28, 2019 at 12:12 PM Mark Randall <markyr@gmail.com> wrote: > > > > > On 28/08/2019 16:37, Chase Peeler wrote: > > > > I'm also not the one that built it on the eggshells - I'm just the > one > > > that > > > > is now in charge of developing the system that someone else left > > sitting > > > > eggshells. > > > > > > That's a challenge which at some point or another will face all > > > technical leads. > > > > > > You have to go to the people making the decisions and say: > > > > > > "Okay, look, we've got ourselves a problem here. We've dug ourselves > > > into a hole by cutting corners, building up debt, and we've never made > > > it a priority to fix it, and now it's causing us problems. It's not one > > > person's fault, it's something that has collectively developed over > > > time, but the reality is, the problem is there and needs fixing." > > > > > > But that's a lie. We have made it a priority to fix things that are > > broken. I wouldn't consider undeclared variables cutting corners. We've > > also invested a lot into making sure we aren't building up additional > > technical debt with the new stuff we're fixing. > > > > > > > And when the manager asks "What problems?" you say something like: > > > > > > "The language we use is moving towards a much stricter approach to > > > handling ambiguous or error prone code. This can only be considered a > > > good thing, but it is going to mean that a lot of our technical debt is > > > going to manifest as errors that will stop our site from function..." > > > > > > Then the manager will go "Can't we just keep using the version we are > > on?" > > > > > > You reply: > > > > > > "We can for a short period, perhaps an extra year or two, but the > > > reality is that PHP is moving forward, and the current version won't be > > > supported forever, and even if it were, we would be missing out on > major > > > performance enhancements and new features that could help us to build > > > new features". > > > > > > Or, they go "Maybe we should look at some options that aren't always > > breaking things. Our other system built with C# has never had that > issue." > > > > > > > The manager says: "Lay this out to me" > > > > > > You reply: > > > > > > "It's like our company car still works, but it no longer tighter meets > > > emissions standards so they won't let us take it into the city any > more" > > > > > > In this case, it's like "Our car still works, but, you the left/right > > arrows on the volume knob have worn off, so, you can't tell by looking at > > it whether you turn it clockwise or counter clockwise to turn up the > > volume. > > > > > > > "Crap", the boss replies "Okay, we had best fix that" > > > > > > Boss replies "Yea, that sounds like a pretty stupid reason to have to > > upgrade. We'll wait." > > > > > > > -- > > > Mark Randall > > > > > > -- > > > PHP Internals - PHP Runtime Development Mailing List > > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > > > > > > -- > > Chase Peeler > > chasepeeler@gmail.com > > >
-- Chase Peeler chasepeeler@gmail.com