stevecrox

joined 2 years ago
[–] stevecrox@kbin.run 1 points 1 year ago

Immutable distributions won't solve the problem.

You have 3 types of testing unit (descrete part of code), integration (how a software piece works with others) and system testing (e.g. the software running in its environment). Modern software development has build chains to simplify testing all 3 levels.

Debian's change freeze effectively puts a known state of software through system testing. The downside its effecitvely 'free play' testing of the software so it requires a big pool of users and a lot of time to be effective. This means software in debian can use releases up to 3 years old.

Something like Fedora relies on the test packs built into the open source software, the issue here is testing in open source world is really variable in quality. So somethinng like Fedora can pull down broken code that passes its tests and compiles.

The immutable concept is about testing a core set of utilities so you can run the containers of software on top. You haven't stopped the code in the containers being released with bugs or breaking changes you've just given yourself a means to back out of it. It's a band aid to the actual problem.

The solution is to look at core parts of the software stack and look to improve the test infrastructure, phoronix manages to run the latest Kernel's on various types of hardware for benchmarking, why hasn't the Linux foundation set up a computing hall to compile and run system level testing for staged changes?

Similarly website's are largely developed with all 3 levels of testing, using things like Jest/Mocha/etc.. for Unit/Integration testing and Robots/Cypress/Selenium/Storybook/etc.. for system testing. While GTK and KDE apps all have unit/integration tests where are the system level test frameworks?

All this is kinda boring while 'containers!' is exciting new technology

[–] stevecrox@kbin.run 0 points 1 year ago

Uhh how?

The rate of new features/changes is far higher, uptime went through a bumpy transition but is back to normal. From an engineering perspective it supports my point.

Twitters issues are Elon scaring away advertisers/annoying governments/content creators through his hard line on free speech allowing an explosion in hate speech.

[–] stevecrox@kbin.run 15 points 1 year ago (13 children)

MBin is a fork by a group who tried to push into KBin but couldn't. There seems to be at least 4 active committers and stuff gets merged.

You will see a number of the KBin instances moved over https://fedidb.org/software/mbin

[–] stevecrox@kbin.run 61 points 1 year ago* (last edited 1 year ago)

The developer behind KBin seems to have issues delegating/accepting contributors.

If you look at the pull requests, most have been unreviewed for months and he tends to regularly push his branches once complete and just merge them in.

That behaviour drove the MBin fork, where 4-5 people were really keen to contribute but were frustrated.

To some extent that would be ok, its his project and if he doesn't want to encourage contributions that is his decision but...

KBin.social has gotten to the size where it really should have multiple admins (or a paid full time person). Which it doesn't have.

The developer has also told us he has gone through a divorce, moved into his own place, gotten a full time job and now had surgery.

Thats a lot for any normal person and he is going through that while trying to wear 2 hats (dev & ops) each of which would consume most of your free time.

Personally I moved to kbin.run which is run by one of the MBin devs

[–] stevecrox@kbin.run -5 points 1 year ago (3 children)

Firstly it was just a bit of fun but from memory...

Twitter was listed as having 2 data centers and a couple dozen satellite offices.

I forgot the data center estimate, but most of those satelites were tiny. Google gave me the floor area for a couple and they were for 20-60 people (assuming a desk consumes 6m2 and dividing the office area by that).

Assuming an IT department of 20 for such an office is rediculous but I was trying to overestimate.

[–] stevecrox@kbin.run 4 points 2 years ago* (last edited 2 years ago) (1 children)

The team/organisations knowledge is a huge factor but its easy to fall into a trap where no matter what the problem is the solution is X language.

If I have an organisation that knows C# and we need to build a Web Application. I would suggest we need to learn Node.js and Typescript and not invest in a solution that turns C# into web pages.

[–] stevecrox@kbin.run 29 points 2 years ago* (last edited 2 years ago) (4 children)

Technical Leads are not rational beings and lots of software is developed from an emotional stand point.

Engineering is trade offs, every technical decision you make has a pro/con.

What you should do is write out the core requirements/constraints.Then you weigh the choices to select the option that best meets it.

What actually happens is someone really likes X framework, Y programming language or Z methodology and so decides the solution and then looks for reasons to justify it.

Currently the obvious tell is if they pitch Rust. I am not saying Rust is bad, but you'll notice they will extoll the memory safety or performance and forget about the actual requirements of the project.

[–] stevecrox@kbin.run 2 points 2 years ago* (last edited 2 years ago)

DevSecOps is all about process, I simplified my answer.

At a high level in software there will always be a review phase, where code needs to be built and pass tests (as a minimum). With Git being used by every organisation I have been involved in you will find the organisation/team will claim to follow a variation of 'Feature branch Workflow' with review happening at a specific point (Pull Request).

For the last ~10 years every organisation/team I've worked in/with has claimed to use a CI to verify the source code as part of that review phase.

In most dysfunctional teams that review phase will be broken, the fastest win is to bring in the CI. Static analysis tools are also impartial in how they review and useful in teaching people how to review.

I don't say your project must build with no warnings, I say you project must build and I'll have the CI point out where you have added warnings as part of review. When people complain I'll point to their teams Ways of Working or an organisations Software Development Plan (or in one case a System Engineering Management Plan).

The sort of team that then chooses to disable this will do so because the leadership are undermining it (normally a team lead turns it off or tells them to just ignore it). There seem to be a few common reasons as to why team leads will do this but it isn't something you can rationally debate with. The only solution I've found is to sideline the problem, change team culture and identify a leader within the team and hand it over to them.

Your talking about teams which are failing due to the environment, those normally understand what is wrong and the best approach is to be a good scrum master (e.g. run retro sessions, identify issues and work to resolve the environment problems with them).

[–] stevecrox@kbin.run 5 points 2 years ago (4 children)

You can't fix a people problem with process.

For example I've worked in DevSecOps for 10+ years, whenever consulting my first step is to implement a CI that picks up Pull Requests, builds them and runs a code analysis tools (e.g. pep8, spotbugs, eslint, etc..) and have the CI comment the Pull Request. The idea is to get an understanding of the projects technical debt and stop things getting worse and ensure the solution 'just works'.

Teams with huge amounts of technical debt will find a way to disable it when your not looking. They will develop all kinds of reasons and in reality the technical debt was created because of cultural issues in the team.

So I've learnt its important if you spot a team doing that, the solution isn't locking it down the solution so they can't disable it or more process. But forcing out the technical leader and sitting with the team and working out why each one is fighting the tool and not seeing them as an asset and teaching them to be better.

[–] stevecrox@kbin.run 4 points 2 years ago (1 children)

There will always be someone who is beating you in a metric (buying houses, having kids, promotions, pay, relationships, etc..) fixating on it will drive you mad.

Instead you should compare your current status against where you were and appreciate how you are moving forward

As for age

During university my best mate was 27 who dropped out of his final year, grabbed a random job, then went to college to get a BTEC so they could start the degree.

It was similar in my graduate intake, we had a 26 year old who had been a brickie for 5 years before getting a comp sci degree.

The first person I line managed was a junior 15 years older than me, who had a completely different career stream. They had the house, kids, had managed big teams, etc.. honestly I learnt tons from them.

view more: ‹ prev next ›