HamsterRage

joined 1 year ago
[–] HamsterRage@lemmy.ca 3 points 3 days ago* (last edited 3 days ago)

In a way, this question itself is very "un-agile". Agile should be always forward-looking, "What can we do next?", "What can we get done in this short period of time?", "What should we do next?".

OK, so you found a possible "defect" in your system. Is it a defect, or did someone slide in a requirements change 3 months ago?

This reminds me of playing chess. Sometimes a player will make their move when their opponent is distracted. The opponent hears, "Your turn", and they look at the board. "Which piece did you move?". The first player just shrugs.

The point is that you shouldn't need to know which piece just moved. Every chess position is a "state" of its own, and your best move should depend on going forward from that state, not knowing how the board changed recently.

It's the same thing here. You have a situation. Does it really matter how, when, who or why it happened? It shouldn't, and here's why:

Just because it's a defect (if it is) doesn't automatically mean that correcting it moves to the top of your "to do" list.

It's going to take some non-zero amount of time to change it back to blue. And when you're doing that, you're not doing something else. There is always an opportunity cost to doing bug fixes and you shouldn't treat them in an ad-hoc way. Should you be spending that time, and who gets to decide if you do? It's not your decision. It's the PO's decision to make.

Maybe the PO doesn't care about the colour. Maybe they do care, but not if it means some other feature gets delayed. Maybe it's the most important aspect of the whole system, and there's no way you can launch with it green. So you cancel the current Sprint and start a new one dedicated to fixing this defect! Maybe they regret asking for it to be blue, and now they're happy that it's now green.

If it was me, I'd get a quick T-shirt size estimate on the work required to change it back to blue, then put it in the Product Backlog to be reviewed with the PO. Maybe have a quick chat with the PO, or send a memo about it. Maybe the PO will need to check with their SME to see if anyone remembers asking for it to be changed to green. Maybe not. In any event, it either makes its way into a Sprint Backlog or it doesn't.

Also, if you're doing Agile right, then your clients are getting constant, hands-on, experience with your system as it is being developed. To go 100 days without some kind of "release" that they can play with and give you feedback is an anti-pattern. If you are giving them the latest version every week or two and after almost three months they haven't noticed that the footer is green, then it's probably not important.

On to the actual question. Jira is a potential sand trap of administrative complexity. The answer is usually to keep everything smaller. Smaller features, and smaller Sprints. Smaller teams. A team of 5 or 6, working in one week Sprints, can only do so much per Sprint. If your fundamental unit of work - a story, or a feature, or a ticket - is set to take something like 1/2 day and forms the basis of your Sprint Backlog, then each programmer on the team can do at most 10 SB items (in a perfect world). Depending on the composition of your teams, you're probably going to have only about 3-4 programmers - which means 30-40 tickets per Sprint Backlog. And that's a blue-sky number that's practically impossible in a world with meetings. A team of 5 or 6 is going to complete closer to 20 Sprint Backlog items in 1 week Sprint in the real world.

The point being that 14 Sprints is your 100 days and each Sprint has about 20 easy-to-understand items in it. Whatever your management tools, it's a failure if you can't locate those 280 features in a matter of seconds. And it should be easy to eliminate 270 of them as not possible places where the change happened just from the description.

And when those SB items are small, as they should be, it's not an onerous task to document inside them the requirements that they are supposed to meet.

When you have 1 month Sprints with tickets that take 2 weeks to complete, then everything becomes a nightmare. It becomes a nightmare because it's virtually impossible to impose some kind of consistent organizational structure internally on free-form stuff that big. But it's almost trivial to do it with tiny tickets.

And the other thing that happens with big tickets is that there's tons of stuff that programmers do without thinking about it too much. If you've got two weeks to finish something, then there's a ton of latitude to over-reach and the time estimate was just a wild guess anyways. If you have 3 hours to do something, then you're going to make sure that what you need to do is clearly laid out - and then you have to stick to it or you won't get done in time.

Did somebody "fix" the inconsistent footer colour while doing some huge, 2 week, ticket? Good luck finding out. But that's not going to happen with tiny, well documented tickets.

[–] HamsterRage@lemmy.ca 13 points 5 days ago

Many, many years ago I used to have two Wyse50 terminals, running split screens each with two parts. I did a lot of support on remote systems (via modem!) and I would have a session on a customer system, source code and running on our test system and internal stuff. I didn't have space for a third terminal.

At another job I had an office with a "U" shaped desk. I would spread printouts across half the "U" and swivel around between the computer and the printouts.

[–] HamsterRage@lemmy.ca 9 points 6 days ago (3 children)

My first experience with this food was in Halifax decades ago. The Halifax Donair is a unique thing.

And it's definitely Donair, not Doner.

[–] HamsterRage@lemmy.ca 5 points 2 weeks ago

Deal with the ethernet port issue by purchasing a 5 port ethernet switch. Maybe the rest of your issues go away?

[–] HamsterRage@lemmy.ca 14 points 3 weeks ago (1 children)

Death Valley appears to be a very contained thing. When I was there, the temperature in Las Vegas was 108. When we started down into the valley the temperature started to rise dramatically. Half way down, it hit 117 and I had to stop to get out to see what it felt like.

But then the temperature kept going up as we went down into the valley. We hit 126 for a while approaching Badwater, and it was 124 when we got out at Badwater.

And this was in May, around 15 years ago.

The point is that when you go there, you see that Death Valley is a meteorological phenomenon created by, and contained by the geography of Death Valley.

Yes, 108 is hot, but there was an almost 10 degree increase as soon as you crossed the ridge into the valley and started down. The idea that Death Valley climate will somehow spread to the surrounding area just doesn't make sense.

[–] HamsterRage@lemmy.ca 4 points 1 month ago (1 children)

In respect to sitting above the API layer and turning DTO's to/from Domain Object's, I'd call them "Brokers".

[–] HamsterRage@lemmy.ca 5 points 1 month ago

It doesn't. All I'm saying is that your assertion that free will requires that evil is a choice assumes the existence of evil in the first place. If God never created evil, then it's simply not something you could ever choose, just like an infinity of other non-things that you cannot choose. But that doesn't inhibit your free will.

[–] HamsterRage@lemmy.ca 7 points 1 month ago

For me Bazzera Magica and Baratza Vario grinder some time back. Better coffee than most cafes.

[–] HamsterRage@lemmy.ca 6 points 1 month ago (2 children)

I choose hedbidittle!

Oh! I can't have hedbidittle, because it doesn't exist. It's not even a concept.

Well then, I guess I don't have free will.

[–] HamsterRage@lemmy.ca 2 points 1 month ago

I think it boils down to where you define the extension functions and how that impacts coupling.

At some level you want to divorce the repository storage of the data from your domain object. Let's say that the repository changes, and "name" is no longer just "name", but now "firstName" and "lastName". The body of your application doesn't care, or need to know that the repository has changed, as it will still just deal with a name, whatever that is.

So something has to put "firstName" and "lastName" together into a "name", and it needs to be consistent with how the application has always received it. Is it "Fred Smith", "Fred, Smith" or "F. Smith"? And who "owns" that logic?

From a coupling perspective, you don't want the application logic to know anything about the repository or the internal structure of the DTO. On the other hand, you don't want the repository service layer to know about how the data is going to be used.

Let's say that you have two different applications that used the "name" field, but in different ways somehow. So the conversion from the two "name" fields into one might be different for each application. Yes, you could argue that recombining them back exactly the way the repository service originally delivered "name" would be transparent to the client applications, but what if the change to the repository was driven by one of those applications needing split data?

That's usually why you put your adapters in some neutral place, associated with the client application but yet somewhat outside of it.

You could use extension functions to provide the adapter, but you need to make sure that they're not co-mingled with you application code. Otherwise you've just reestablished the coupling between the repository and the application that you where trying to avoid.

[–] HamsterRage@lemmy.ca 2 points 3 months ago

It helps if you are an old enough Canadian to remember the original "Hinterland's Who's Who" shorts.

[–] HamsterRage@lemmy.ca 2 points 4 months ago (1 children)

I'm not buying that. Slavery has been a staple of civilizations all through history. There's no universal law of nature that any being has any right to life, freedom or self-determination.

The "moral fabric" isn't some universal constant either. It too is a function of society. In the U.S., for instance, in 1776 there was no moral problem with slavery. Time went by and morality in the country evolved such that slavery, for many, was no longer acceptable. But it wasn't that the moral fabric of U.S. society was violated in 1776, it was just different in 1776.

Who knows, in another 100 years people might consider something that is normal today to be some huge violation of something that should be a human right.

 

I wanted one of these back in 1980 when I was 16. I remember that they were $1,200, but they might as well have been $1,200,000 as far as I was concerned.

Many years later I had the $$$ to buy one, and this one is a beauty. Koa, with Bill Lawrence pickups.

Look at all the knobs and switches!!!

 

This is the beside the time since the post was created. I cannot figure it out.

 

I live in Canada, where we are graced with the most expensive cell phone plans in the developed world. One of the "features" of my plan is something they call "Roam Like Home". With this feature, I can use my data and time from my plan just like I haven't gone anywhere, for the low, low price of $15 a day!!!

This is activated automatically the moment that they detect that I am roaming. I cannot opt out of this "feature", and the only way to avoid it is to put the phone in airplane mode and then activate wifi. There is a cap to the number of days you can be charged, but runs on a calendar month basis, so if you are away across the end of the month, you can get charged more than that maximum.

For me, the answer came in the form of eSIMs. I ditched my old Galaxy S9, and bought a Pixel 7 in May. Then I purchased an eSIM for France for both data and talk (30GB for 30 days for around €45) and went to France for 24 days.

I was really pleased with the Pixel 7 in the week or two that I had it before we left on vacation. The battery life was way better than the S9, and 2 hours at the gym, with YouTube Music on Bluetooth and "Strong" running to track sets and timing left me with close to 90% battery left. It would be closer to 50% on the S9.

No heat issues here in Canada.

When the plane landed in France, the eSIM automatically activated, and I turned it on for both data and voice/SMS. Nothing could be easier, and it works like a charm.

At around this time, the issue with hot Pixels started, and eventually Google found the issue with their servers that was causing this. Hot Pixels with short battery life faded from the news.

But not for me.

Ok, so battery life was still better than my old S9, but not by much. And it got hot, too. It seemed to be particularly bad when I set up a hotspot for my wife - as this was the plan, she would use wifi off the Pixel hotspot since her phone doesn't support eSIMs. Out and about, I could expect to lose up to 15% in the first hour, and then it would maybe go even faster after it was down below 70%.

Taking pictures seemed to be especially hard on the battery, too. Not surprising, really, as the new camera features use a lot of computing power. We had Android Auto in our rental car, and Google Maps would drain the battery at almost the same rate that the car would charge it.

I was waiting for the new updates to drop, hoping that might have a fix, but as of June 13, we still haven't seen it. In the meantime, we've returned to Canada and I've turned off the eSIM.

And now the battery life is back to where it was before we left. I haven't once noticed the phone getting hot either.

So there you go. Has anyone else noticed this kind of issue with eSIMs?

view more: next ›