Kind of off topic but some people are really bad at writing jira tickets.
“Show the user a list of projects [eof]”
Ok but like, only their projects, right? Do they need to be ordered? Searchable? Paginated? Only active ones or soft deleted ones, too? Do you just need the name or do you need metadata too?
Somehow product doesn’t love my stance of “if it’s not on the ticket or in a sop, the behavior is undefined and you get what you get” stance.
Dealing with this at the moment - in an org that’s been pretty lax at writing anything down about what and why as far as internal software goes, trying (with support from C-suite) to get people to actually write up any amount of detail in their requests is like pulling teeth.
I tend to take that position as well; if it’s not defined, I get to define it. If I ask for feedback or review and get silence, that means you approve.
If it’s someone else’s job to design things, then that’s a pretty terrible specification. But depending on your role, it’s common enough for there to be one person who designs and builds a feature like “User projects dashboard”, and the job is to decide what’s important based on the product. Especially with smaller companies.
The problem is that requirements refinement has been unceremoniously dumped in your lap. The failure here is organizational; maybe you have a design person involved, maybe devs are expected to do this. Either way, your job now also includes communications.
One strategy I’ve used is to draw a low-fi example of what they’re going to get - Figma is great at this these days. Then I add it to the issue and push the whole thing back for early approval in order to suss out these finer points.
Not to come off as misanthropic here, but many people are hot garbage at describing what’s in their head. Most of the time, it’s all abstract concepts up there until you start asking the real questions. They really do need a whole-ass conversation to sharpen that mental image. Or in this case, what they want that feature to look like. Incidentally, this is also the reason why therapy is a thing, and why it takes people years to make sense of themselves, and that outcome is usually far more crucial than anything we’re doing at the keyboard.
This is me, writing jiras for myself.
Reminds me of this gem: https://lizengland.com/blog/2014/04/the-door-problem/
If you think it’s fine to show a list of a variable length without it being sortable, searchable, and pagineable, that’d be on you.
Being in IT communicating must be really hard.
The amount of human ingenuity that’s wasted on shit like figuring out how to make more intrusive ads, that could’ve instead been used to advance humanity is one of the biggest tragedies of capitalism.
The most creative artistic minds of today, are probably working on advertisement.
the sad reality
For a median salary of $112k/yr. Just sayin’.
Would you expect lower or higher?
That’s not true.
We use YouTrack.
It me
I feel personally attacked by this post!
I was a gifted kid who realized that when I applied myself all I got was more and harder work that I also didn’t want to do. Being successful academically felt like a punishment.
So I don’t mind at all that I’m filling out Jira tickets. It’s easy work and I have other things to enjoy.
I failed maths, but I’m great at logic, which I consider to be the more important proficiency for programming.
I think you need both. Does your logic cover complexity analysis, big O?
I did well in data structures and algorithms in uni, but I have never had those topics come up in my 4 years of being a software developer. I’m in web development, FWIW.
So you don’t really have to know that stuff, depending on what kind of software engineering that you get into.
I’ve done Telephony, Games and I’m currently working in a high performance context. 99% of the time, you don’t need to be thinking about Big O
I think part of it is going through all those sorting methods to show quick sort is the best so that a) students who run into new sorts are better equipped to determine it most likely isn’t better than quick sort and b) to show the process used to determine quick sort is better than the rest in case you have some other algorithm options you want to pick the best of.
And yeah, depending on what you do, some tasks never involve any of that, or when they do, they get offloaded onto a library or something that gives the solution to that step directly.
But, for example, if you have a collection, the question of array vs linked list vs tree is still relevant, even if you’re just choosing a provided construct that is built on top of one of those. Each has their strengths and weaknesses depending on how the data is added, removed, and accessed.
And with how slow things are these days despite how much better the hardware is, I think there’s a lot of successful software engineers and programmers who should be using that stuff from school more than they are.
There’s a lot of software engineering that doesn’t require understanding Big O
Also big O analysis IMO should just be the starting point of maximizing efficiency. Those coefficients that just get dropped can have a huge impact. For example, any algorithm written in JavaScript or visual basic will be of the same order as that same algorithm written in C/C++ or rust, but will likely perform much slower. And the exact manner of implementation could even result in the C version being slower than the VB one.
And on the other hand, I wouldn’t call a lot of big O analysis very advanced math. You might get a tighter bound with advanced math on some algorithms, but you can get a rough estimate just by multiplying and adding loops together. The harder question would be something like “does this early exit optimization result in an O(x³) algorithm becoming an O(log(x)*x²)?”
Another big thing that doesn’t get covered by big O analysis is the potential for parallelization and multi threading, because the difference created by multi threading only amounts to one of those dropped coefficients.
And yet, especially for the workloads being run on a server with 32-128 cores, being able to run algorithms in parallel will make a huge difference to performance.
I think the tldr; of what you said is that even when you have a theoretical handle on the growth function, you still need to actually benchmark anyway
I don’t get the hate for Jira
Maybe it’s badly implemented where I work, but I feel it’s clunky and messy
Categorizing stuff hard
I don’t hate jira. I just hate the managers who make me use it.
Manager lead process is often bad process, for sure
Seems like the hate I see for JIRA and Bitbucket consistently boils down to whoever implemented them being bad at their job
That’s fair, it’s very configurable so I guess you can do that badly
I feel it bloated with a lot of add ons that are not used, or not implemented.
I hate Jira because it’s slow and there’s no CLI interface
It’s slow if your server is slow but fair point about a CLI
Oh look, it’s me.
Should we make a club?
My high school never had math competitions so I’ll never know how I’d do. :(