|
I suppose it has something to do with Marvel and the incoming films...
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
|
|
I don't know when it originated but it was in use by RAH in Time enough for Love and the follow up books.
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
I've always been a bit of a cowboy coder.
Has everything to do with my first job and it fits my personality, I think.
Not one for lots of rules or things set in stone.
My customers prefer it that way too, they're too busy to worry about the development process, they just want a working project delivered.
I've always disliked scrum for that reason, way to much red tape!
Oh, and I dread the "we can't do that until the next sprint" reply from companies!
So I'm now working with an external designer (who is also a friend), and he has some problems with this way of working.
It's basically constant changes, shifting priorities, loose deadlines (if at all), etc.
He prefers to know what's up for today, the next two weeks, and the coming months, in that order.
A change should be requested up front, planned, etc.
So basically he prefers (the rigidity of) scrum*.
It even affects his mood in that he doesn't feel like working because he doesn't know what to expect.
As far as I know he's not on the autism spectrum.
Needless to say, as a good developer-manager I'm now trying to keep him out of the chaos and bring some structure to his tasks.
What are the preferences here?
* I know scrum should be the opposite of rigid, but that's not at all how I've experienced it
|
|
|
|
|
Me too! It's why I also prefer to work alone.
It seems that the larger the team the more rigidity is required -- Scrum recommends development teams between three and nine members. Scrum would slow me down.
|
|
|
|
|
Yeah, with two or three developers you can usually get away with just winging it.
More than three and you'll need some process in place.
Well, depending on the people you're dealing with I guess (but more people means more preferences).
I think it's easier for people like us to follow some process than it is for people who need a process to not have one.
|
|
|
|
|
In my experience, the best teams (in terms of work environment and output) are where the team members are given expectations and allowed to work solo. One of the expectations is to communicate ad-hoc with others as necessary, without some project manager trying to manage such discussions or make a team meeting out of every minor question.
|
|
|
|
|
Does structure have to be a boolean?
Unstructured is chaos. Whatever structure "structured" has will be the wrong structure at some point, if the structure is considered paramount then you're willfully creating inefficiency.
|
|
|
|
|
It seems more like a floating point number, companies are saying they're doing a certain degree of it, but they're always off
It's not like it's chaos, just that the priority of tasks often changes daily, instead of biweekly (or triweekly for some teams).
I guess it's more or less structured rather than structured or not.
|
|
|
|
|
I agree. Agile is the invention of project managers and is designed for their purposes. Dividing development work into Scrum's arbitrary sprint lengths is just silly, and only measures how well you can train developers into fitting their work into the process so that progress reports can show artificial improvements.
However, there is nothing wrong with planning your project, structuring its development into a logical sequence and being able to plan your day/week/month. I'm a loner programmer myself and I've always planned my projects by tasks. Now that I do work with a team I find the Kanban approach works well without all the red tape of scrum. Maybe you and your friend could try Kanban, or your own version.
If you think 'goto' is evil, try writing an Assembly program without JMP.
|
|
|
|
|
TNCaver wrote: I agree. Agile is the invention of project managers and is designed for their purposes. Dividing development work into Scrum's arbitrary sprint lengths is just silly, and only measures how well you can train developers into fitting their work into the process so that progress reports can show artificial improvements. Exactly this.
I've even worked in a team where I wasn't allowed to pick up additional work if I finished my work, say, one or two days before the end of the sprint, because "we'll be planning that for the next sprint"
I'd just sit there and pretend to be working.
Coworkers were just finishing up their work for the sprint so they didn't need my help either.
TNCaver wrote: there is nothing wrong with planning your project, structuring its development into a logical sequence and being able to plan your day/week/month. Of course there isn't!
However, when a client calls and says "we'd prefer you'd work on tasks A and B rather than what you're doing now" or even "drop everything, we need to do this work ASAP!" there should be room for that.
I prefer knowing what I'll be doing the next month (if only because that means I have any work at all), but priorities can shift by the day.
|
|
|
|
|
And that's always been the case. Priorities change. I don't know what the "official" Kanban approach to that is, but we shift tasks between the "doing" and the "backlog" and the "on hold" statuses quite often because of shifting priorities. It doesn't mean you can't plan your day, it just means that sometimes you change your plans.
If you think 'goto' is evil, try writing an Assembly program without JMP.
|
|
|
|
|
TNCaver wrote: it just means that sometimes you change your plans. And sometimes multiple times a day
Maybe this is also because I'm alone working on multiple projects?
I guess when you're in a team people have their own clients and projects and maybe there's a bit more stability.
|
|
|
|
|
How many clients do you have? Because if I drop whatever I am working on because client "A" think it is important... what about clients "B-Z"?
Support cases gets priority (i.e. the product can't do something it should be able to do and it affects their business), but besides that we can't interrupt the team every time a client gets "a good idea".
|
|
|
|
|
A couple, but sometimes it's like that.
Last month, I had months of work ahead of me, but someone quit his job and months of work kind of evaporated and priorities for this customer changed quite a bit.
Yesterday I had a call with the customer and we're now going to pick up a new project while postponing the previous one.
So, I now have weeks of work for this client alone, while yesterday I had none, while last month I had months (talk about churn)
Of course, that resulted in other customers getting more priority with their changes.
Meanwhile, another customer called this morning, his reporting didn't work, took me half a day to fix.
Of course I'm not doing everything ASAP, but when a client calls it usually has to be scheduled in later this week, or at least somewhere this month.
|
|
|
|
|
Scrum grew out to solve a different problem that the one you have. It was an answer to the world of large teams running waterfall with Gantt-charts and other horrible things.
So I would cross that one our right away in your situation, but I would also recommend you stop with remarks as "I know scrum should be the opposite of rigid, but that's not at all how I've experienced it" as that directly translate to "I tried to use this screwdriver as a hammer, and it sucks so it is a bad tool."
Kanban is a known "lighter" alternative, but it might still be too rigid for you. Look at it and see if there is one or two things you can take our of it - maybe as little as a prioritized list where you show restraint from changing the top item unless really needed is enough. I have seen teams receiving "Why is that feature I asked about just before the last two emails asking for urgent features not finished yet" emails while they are still working on the last email. A list makes something like this apparent - it it might also make it easier both for you and the customer to judge "do I REALLY need to change the priority right now, or will tomorrow do".
|
|
|
|
|
lmoelleb wrote: but I would also recommend you stop with remarks as "I know scrum should be the opposite of rigid, but that's not at all how I've experienced it" as that directly translate to "I tried to use this screwdriver as a hammer, and it sucks so it is a bad tool." I'm really not the only one saying that and I think many people here would agree with me.
Actually, I believe one of the writers of the original manifesto said something along the lines of that it was meant to grow more agile, but teams are now stuck in their scrum ways and holy two-week cycles.
I think it's so hard to implement correctly because it's based around change and many people don't react to change very well.
I've literally been in the situation where we were two days into a sprint when management came in and said, "things changed, we don't need what you're doing now, we need that other thing."
And the team was like, bad luck, we're finishing this sprint anyway because that's what we committed to, and then start on the work you need.
That's two weeks wasted!
Or how about, this story has a very high priority, but we don't know if the business wants the button red or green, so we'll have to refine it further and it'll have to wait for the next sprint.
That's not adding value, that's just mindlessly clinging to some process to the point where it does more damage than good.
Two distinct teams by the way.
lmoelleb wrote: Kanban is a known "lighter" alternative, but it might still be too rigid for you. Kanban is actually fine!
Not doing it now since I'm alone most of the time, but a good one for working with that designer.
I'm working on growing the team and I definitely need something like that.
|
|
|
|
|
Of course many will agree Scrum is too rigid. Everyone who needs something less rigid that what Scrum gives them. Rigid or flexible is a relative measure. Stop treating it like absolute and assume something is "too rigid" or "too flexible" for every situation. It is fine you say "Scrum is too rigid for what I need - or "Scrum is more rigid that what I use". That is very likely to be the case.
And if your anecdotes makes you believe "that is how scrum is", then you have no clue what Scrum is. You have seen someone doing something they do not understand and based on this, you now think you understand Scrum is not flexible.
Both your anecdotes are 100% clear violation of the agile manifesto. Scrum and other agile methodologies can't fix incompetence...
It's been a while (years) since I last abandoned everything in a sprint - but I have of course been in situations where it happens - and you just do it. Basically you remove any story that it no longer makes sense to work on no matter where you are in the sprint - and if that is all of them, then you remove all of them. Once you have no stories left, you have two choices: Start a new sprint, or pull in some stories in the current sprint. Do whatever works best for the team in the situation. If it happens now and then, no big deal. If it happens often, it is a sign Scrum is being applied in the wrong environment.
Some more anecdotes to add to yours:
Time since we accepted a story even though it was not ready for grooming: 15 days. It was clearly the priority, so the planning was longer than usual as a lot of things had to be discussed. Time since we have accepted a new story into a running already committed sprint: 3 hours.
|
|
|
|
|
Look, I get what you're saying and we mostly agree with each other.
I know scrum, I know what it's supposed to be, and I know how different teams implement it differently.
All I'm saying is, I generally don't like the implementation, whether that's because people are incompetent or scrum is too rigid/time-wasting for my tastes is not really the issue.
Besides, a big part of scrum is that you involve your clients and that's really the last thing my clients want (and also the last thing I want as my clients know absolutely nothing about software development or even what they want/need).
Doing scrum by myself doesn't really make sense and doing scrum with a designer who just gets a bunch of separate assignments also doesn't really make sense (to me, at least).
I have one larger customer who has their own IT department where we use a kanban-like approach (although not for everything).
So let's agree to agree, or disagree, whatever makes you happy
|
|
|
|
|
I could not agree more. I have a client that doesn't know what he wants until he sees what I have done.
AND, any new need that pops up for his business, I have to drop everything and get that done.
Very frustrating. I have to keep an Excel spreadsheet to keep up with what is done and what is not!
ed
|
|
|
|
|
Yeah, but don't tell them "no!"
I'm going for customer satisfaction, they want something and I deliver (well, if it's possible with the means at my disposal, I now have a customer who wants front-row seats for back-row money, that ain't happening).
Customers like working with me because I don't have all that red tape, they ask and I deliver.
Sometimes not immediately, but always faster than their larger suppliers.
Slow Eddie wrote: I have to keep an Excel spreadsheet to keep up with what is done and what is not! I have that too, all teams have that I guess (or a scrum/kanban board).
|
|
|
|
|
Do you know where Agile comes from? Because the statement "Agile is the invention of project managers and is designed for their purposes" to me looks a bit strange when you know the history of agile.
|
|
|
|
|
In most cases, project managers and scrum masters are not software developers.
They too often see software development as a bunch of developers on an assembly line, putting software widgets together. That is because much of what has been applied to the Agile Manifesto comes from the manufacturing and automotive industries. They have a hard time understanding how, in the "widget assembly" paradigm, you can't know the exact amount of time a software project will take, or how there could be unknown impediments that only appear during development, not design and planning.
IMHO, a senior-level software engineer who is good with "people skills" and can lead (not just manage) is who should replace the slots occupied now by project managers, business analysts, and scrum masters. Neither Scrum nor Kanban work well for software development but do work well in manufacturing. The proper role for project managers and business analysts is as assistants to the project lead (who is a software engineer as described in the first sentence of this paragraph).
My preference is to meet once a week to outline progress and setup the work for the week, then let the developers work on their own to accomplish their work. Stop with all the metrics that are better suited for manufacturing, and just measure progress once a week at the weekly meeting by what is actually accomplished.
Results matter much more than process.
|
|
|
|
|
Working solo you can do however you want but once a second person is added there needs to be some sort of structure. Formal process for two people who know each other, probably not. But some form of "Here's what I'm working on. What are you working on? Are we going to step on each other's toes?" conversations need to happen.
I agree with the Kanban suggestion.
I’ve given up trying to be calm. However, I am open to feeling slightly less agitated.
|
|
|
|
|