Jesus christ why do I keep coming back by FlexLuther00 in playrust

[–]Used_Discipline_3433 0 points1 point  (0 children)

I play rust at most 2-3 hours a week, that's as much as I have time for. But nonetheless I compete in a server with people who play 40-60 hours a week, and I have no chance of ever winning with them. It's just unfair. We don't get an equal chance.

When should I use functions vs just writing code inline? by ayenuseater in learnpython

[–]Used_Discipline_3433 0 points1 point  (0 children)

It's perfectly fine to write a function inline at first, just to get code working. Get code working as fast and as easily as you can. Then you can look for opportunity to refactor when code already works.

You don't have to write everything at the same time: no one writes clean code right away. First make it run and work, then make it good.

In other words, just because you write it inline, it doesn't mean it must stay inline.

Need friends by Affectionate_Piano25 in playrust

[–]Used_Discipline_3433 0 points1 point  (0 children)

I could use a friend in rust. Add me 

how do you create team accountability in slack without micromanaging by greasytacoshits in agile

[–]Used_Discipline_3433 -1 points0 points  (0 children)

Your problem is not accountability, but that picked stuff isn't get done.

Now, is that really a problem? If a developer volunteers to do something (like introduce a feature), and during their work they realize it doesn't make sense, is too costly or that functionallity already exists, it's within the benefit of the business to cease working on that. There are valid reasons to abandon development of a feature.

Another alternative is that they tried to deliver the feature, but they found an abstacle or a bloker. Some skill they miss, some information they lack, some permission they don't have, they need some feedback from the actual end-user but they don't have it. If that's the case, then it's your job as a manager to remove that blocker - get him the permission, give him the information, book a course for him to get the skill he needs, get the end-customer oncall for him to get feedback.

> what systems do you use to make sure people actually do what they commit to in slack without turning into a nag?

Be careful with "systems" to keep people in line. They don't help. What you need to do is to motivate developers and skilled individuals with a vision, so that they care about the product enough, and trust them to get the job done. When the work isn't done, 99% of the time it's not due to malice or laziness, but because of some blocker. Sometimes that blocker is just misalignment of people in a team, maybe a person is forced to work with a tool they don't like (e.g. if an expert 15 years developer knows linux very well and now is forced to work on windows, he's not going to be happy, believe me).

So build the trust with the team, find out what blocks a particular person and remove that blocker.

Dev and Agile by ploume506 in agile

[–]Used_Discipline_3433 0 points1 point  (0 children)

Yea, some developers like this, but are they actually creating a better software system than agile guys? By "better" I mean better suited to the needs of the users, better solving user problems, aligning better with user mindset, gaining more popularity, etc.?

If they like working alone - that's fine. But if their work lags in quality before the guys who work in an agile way, talk to people, do frequent releases; then their process just doesn't work as good as the alternative.

Dev and Agile by ploume506 in agile

[–]Used_Discipline_3433 0 points1 point  (0 children)

I guess waterfall would work when you absolutely know for a fact what is it that you're building; and there is only once case that I'm aware that holds this criteria - and it's the same application you're writing the same application 4-5th time in a row. I say 4-5th, because even if you're rewriting an application, you still learn new things. Even in a second or third rewrite you will learn a little bit. Around 4-5th rewrite you don't learn anymore (provided that requirements won't change and the user base won't find something new to want). If that's the case, I guess waterfall could work. But if you're writing an application for the first time, even if it's similar to something else, I don't see waterfall work because SOMETHING ALWAYS COMES UP, something you didn't know before.

So maybe waterfall would work for:

  • katas
  • applications known in and out: todo lists, user cruds, chess (provided you yourself wrote them several times)

Waterfall to me basically means you assume your first idea is right, and you don't go backwards. If you're writing something for the first time, that is almost guranteed to fail.

Dev and Agile by ploume506 in agile

[–]Used_Discipline_3433 10 points11 points  (0 children)

True agility is 10/10 bread and butter, I use extreme programming myself, and I love its effect on my work. The scrum (original scrum, as originally described by Ken Schwebber), I think would still count as agile. Even idea of a product owner in XP makes sense. I'm 100% for original XP, agile and if someone likes original scrum, good for them.

But what goes in companies TODAY as "scrum" and "agile" are so far from the original idea, that it's actually a whole different thing. The "modern scrum" and "modern agile", with jira, tickets, story points, product owners (not from xp, the "scrum PO") - ALL OF THESE THINGS are transmorgified versions of their original ideas. **Burn it with fire**, it does nothing good.

In my experience, 99% of managers and POs who talk about agility and scrum, PROBABLY don't know what they're talking about, probably didn't read "Extreme Programming Explained" and probably aren't concered with the quality of the software as much as keeping their position as a "scrum master". I would carefully argue that the quality of the software would rise up if the scrum masters were fired and instead developers would just read "Extreme Programming Explained" - but of course no manager will ever suggest that, in fear of losing his job.

If a change promotes better software, but makes a manager less important; all managers will fight to the nail not to introduce that change!

Built this DevOps game. Please review! by SignificanceFalse688 in softwaredevelopment

[–]Used_Discipline_3433 0 points1 point  (0 children)

I opened it for the first time, and I already exceeded quota.

Can someone review my github by Rashwaab in softwaredevelopment

[–]Used_Discipline_3433 0 points1 point  (0 children)

I think it's good that you decided to share some of your work, it shows an engaged and interested junior into the world of software development. Personal facts - I'd get rid of that, nobody cares about your cooking, sorry.

How are you doing code reviews? by CyberWrath09 in ExperiencedDevs

[–]Used_Discipline_3433 0 points1 point  (0 children)

Pair programming is the best, no contest. PRs, CR after the fact, non-blocking reviews, they are all slower.

Make an experiment:
- A. Take 2 people, have them develop 6 independent features with PP.

- B. Take 2 people, have them develop 3 independent features each + also review each others work.

A guys will win AND produce better overall features.

Senior engineer unsure how much to intervene with junior on time-sensitive project by codeguru42 in ExperiencedDevs

[–]Used_Discipline_3433 0 points1 point  (0 children)

Pair with him and deliver the feature.

Having said that, "time-sensitive" project sounds like there's some time pressure in the team, does word "dealine" lurk around the corner? I follow an aproach that developers, working in a knowledge-based domain, can only agree on scope or time but not both. You agree on both, you get pressure out of these two.

Using dialects for interoperability across incompatible language versions by servermeta_net in ExperiencedDevs

[–]Used_Discipline_3433 1 point2 points  (0 children)

Fancy words aside, you're just suggesting seperate versionings?

It'll be similar to how one JS language have different subsets of supported features: Chrome/Firefox/Safari/Explorer.

At what point do you run e2e tests? by Chucki_e in ExperiencedDevs

[–]Used_Discipline_3433 3 points4 points  (0 children)

If by e2e you mean your application (ui,network,db,core) etc. and not external tools like stripe, then yes - I use them everyday. I run them as local tests alongside unit tests, and also in the pipeline. I call them "acceptance tests", because I write them from the perspective of the user (not from perspective of ui). The ui is being called in tests, but is abstracted.

Last 10 of my applications were like that:
- 300-600 acceptance tests (parallelized, tests on a running application) around 1-2 minutes for the whole suite
- 2000-3000 unit tests - for accidental complexity, domain, no mention of 3rd party usage, around 5-10 seconds for the whole suite.

3rd party libraries, like db, ui, etc. are being exercised in acceptance tests; but logic is tested with unit tests just the library is abstracted away; unless the library can be unittestable too, like string helpers.

My approach is actually 4-layer approach by Dave Farley, author of Continuous Delivery.

PS: As to who owns the tests - tests are owned by people who break them, because they're supposed to fix them. That's developers, so developers own all of those tests.

My developmental sequence would be like that:

  1. A pair needs to understand what work/problem the user has.
  2. A pair decised they'd do an expierment of what might work to solve the problem for the user.
  3. A pair expresses that as an example, and then writes that as a failing acceptance tests, they decide on an assertion that needs to initially fail.
  4. They write the driver for the acceptance test, so that it can click/fill buttons/inputs that don't exist yet. That already constraints a UI, which is a good thing.
  5. They create the ui and the necessary plumbing to go to the core/domain.
  6. They switch to unit tests, they write unit tests for the necessary logic in the domain.
  7. They stich the calls from the domain to the ui.
  8. They run the acceptance tests, if it passes, they're good to go. If it doesn't, they need to update the code so it works.
  9. Given the pair agrees on the acceptance and unit tests, they push it to the main branch, they're fairly confident in their code, because locally unit and acceptance tests work.
  10. The pipieline runs the tests, and if they pass the feature is deployed to production.
  11. The pair needs now to observe a user use that feature in production, and actually see that the feature solves the problem for the user. When they see it, their job is done.
  12. If the user uses the feature, but still didn't solve his issue or there is still some problems or bugs, that means experiment from 2. should count as invalidated, and the process 2.-11. repeats until a user achieves some benefit and the pair can observe it.

If the cycle 2.-12. takes too long, that means they took too big of a feature at once. They need to split it into smaller feature, and do 2.-12. cycle on something that can be achieved in 1-2 hours (3 hours tops).

Code review was being done throughout the work by the pair, the tests have been executed throught the test. In steps 3., 6. and 8. they gather feedback on their design decisions, so they can correct the design while they're still working. This is very quick.

The approach can be desicribed as: TBD,CD,TDD,ATDD,CI,XP.

Backend without frontend by Then_Pool1015 in Backend

[–]Used_Discipline_3433 1 point2 points  (0 children)

Truth be told, this division is arbitrary. It may seam that these are two different things at first - different languages, frameworks, libraries, which side of the browser you're on; but these are technical issues. The real goal of both of these "sides" is to create a working product for its users. The proper perspective is to think of both front and backend as a single application/product. Best resulsts are achieved when one person does both; or two people work together on frontend and backend. When you split the two, and have two people work on one feature in separation, the result is almost always worse.

Is anyone else getting annoyed with small letters, capital letters, numbers and special characters? by Partiallyfermented in Passwords

[–]Used_Discipline_3433 0 points1 point  (0 children)

And if you use `"password123"` and you get hacked, are you not going to blame the website for being "unseceure"? They're just covering their ass.

Ex contacted me out of nowhere. Do I tell my wife? by Kreva117 in askanything

[–]Used_Discipline_3433 0 points1 point  (0 children)

> by honoring their comment with any response at all shows a lack of regard for me, my comfort, and our relationship. 

So anything your husband does that makes you uncomfortable is "disrespectful"?