I do not write any code on Friday (unless it's a severe production level issue). Instead, I spend the mornings reviewing PRs that I wasn't included on (to keep up with whats happening, but also to learn more about how other people write and review code) and the afternoons are spent reading/researching/online classes.
This has really helped me avoid burn out. I go into the weekend less exhausted and more motivated to return on Monday and implement new stuff. It has also helped generate some inspiration for weekend/personal projects.
Oh the joys of the JIRA sweatshop. We have JIRA pulled up on the big screen TV and the product guys cycle through the status of each dev team members’ items during each daily standup. This is my first development job, surely it’s not like this everywhere?
E.g: If we as engs think we can do 12 tickets in a one-week sprint, we commit to 8. This leaves room to pick up any production issue related work, address tech debt, and have some breathing room so we're not rushing through jira tickets.
It's also workplace specific, but imo product people shouldn't be engaging in daily standups other than passive observation. If they are drilling through the jira board and asking for status updates, they're taking on the role of a micro-manager, not a product owner/manager.
Standups should be engineers talking to eachother and raising blockers/issues that would prevent them from meeting the sprint goal they committed to, not daily check ins with product (again, imo).
If you want to stay in the organization and get promoted by performance metrics, then figure out what numbers are being evaluated and work to maximize them, so that you appear as the model worker. It's not very hard to stay one step ahead of management if that's the game you're playing. If you have the best relationships and the best metrics, you should be able to get your promotions.
If you want to stay in the organization and coast, then who cares, just do what you want and they're almost certainly not going to fire you without plenty of warning. If you do get put on a PIP, then go find a new job immediately, and repeat. From what I can tell, most of the workforce does something similar to this for 30-40 years.
If you're not a leader, not a model worker, and not on autopilot, then you probably need to find a new organization where you can be one of those things.
https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-...
(although leader, model worker, autopilot are more polite terms than sociopath, clueless, and losers)
Sometimes you learn to play around the rules. For example, if you are required to report your progress every day (and "sharpening the axe" is frowned upon), a possible solution is to report on Friday morning only half of what you did yesterday, and keep the rest for the Monday report.
> product guys cycle through the status of each dev team members’ items during each daily standup
Something has gone horrible off the rails. Standup is supposed to be a quick time for every team member to raise any blockers primarily, with a quick "here's what I did, here's what I'm doing" type blurb. The benefit of standup is identifying blockers and if engineers are getting mired in problems (so you can fix those issues outside of standup).
People brought chairs. To a standup!
I've worked in environments where the PMs micromanage like this. It's both hellish and extremely inefficient.
So we’re not really any worse off than before.
I haven’t heard too many examples of “oh man we used to be free and ship great features on time but now that we have a backlog and talk to each other every day it’s a hellscape death march”
Generally, I’ve found that the level to which agile approaches make life better depends on how much management is actually willing to let the team do its work and stay empowered. This can happen with trust and top cover in large enterprises, but it takes constant work at the PO / product manager level otherwise regression to the mean takes over. Also hard to avoid the inertia of making successful teams bigger rather than letting them continue small.
I wonder how the Amazons / Facebooks of the world avoid the trap, but then their enabling teams are likely a big percentage of their workforce because they understand how important software is to their business.
Also, by discussing the issue you might discover others feel the same way and are open to changing the process.
If I run into a blocker why would I wait until the next morning to try and get it resolved?
Blockers are not just people and usually it's not done for accountability. They can be undocumented APIs, an unfamiliar requirement ("do we already have a way to extract images from PDFs before I download this new thing?"), etc.
If it is urgent and your only option is to sit there and do nothing then asking the team for help during the day is fine. Just weigh up the cost of interrupting everyone (or that high-performer who has all the answers) against what you gain.
Sit there and do nothing for awhile just may be the right thing to do!
I'm thinking about the Theory of Constraints and optimizing a system versus individual parts. This is a concept you would want your PM to know. So when they are mentally mapping the workflow heard during standups, they can be thinking about optimizing the entire production system.
Next step is the importance of communicating this to everyone on the team, so that they understand that there may be times when the right thing to do is nothing.
"Hey I was trying to use Mary's api but I couldn't figure it out, can someone help me find who to contact?"
If you ask immediately for help all the time you aren't being self sufficient. At the same time if you are spinning your wheels then just a second pair of eyes can be helpful.
You're unlucky, there are a lot of software teams out there where the developers are pretty much autonomous. That's not to say they do absolutely whatever they want, but micromanagement is usually out of the question.
A couple of months ago I spent about half my working hours in a week watching everything that happened at .Net Conf. I didn't ask anyone, I just said I was taking training time and since I don't take much no-one cared.
If I was in your position, I'd take this as a sign that there are better places to work. Wait out your current job until it's adding value to your CV (few good projects and contributions you can talk about), then move out. You'll get more money, and you'll probably have a better idea of what to look for.
Start with asking questions about how work is assigned/doled out. Where does all of their work come from, the Agile board? Someone stopping by and asking "can you do x" or "can you help Jill with Y".
Follow that up by digging into how they then talk to others about their progress on that work. Ask if they're interrupted or allowed to progress independently? How often does someone ask them "Is that done yet?"
Ask about how often they're asked about the status of the same piece of work by different people. Dig into how they keep everyone else apprised of what they're doing.
Ask them about their relationship with their Scrum Master, Project Manager, Product Owner, Dev Manager, etc. Ask what they could change about it if they could.
That line of questions may uncover the micromanagement pattern. Even if it doesn't, it will go a long ways in helping you get a feel for how a team works.
About once a week (usually Friday) I tell my team I'm going to spend the day researching or exploring some new idea that doesn't have any stories yet. It's never a problem. A decent chunk of our big leaps forward for our projects have come from us working on random stuff nobody told us to work on.
Micromanaging means you have nothing useful to do, and you are needlessly making other people angry. Such people should be fired first. (Yeah, I know, they are often the last ones to stay, because people who have better options leave first.)
If the product guys are any good they will care about having 'options' and will therefore welcome devs that are taking a broader look of the solution space.
This is not just common, but the norm in most organizations. I think the only time in the past 12 years (working with probably 20 organizations) where this didn't occur is the one engagement when I was charged managing the team.
There's far too many places where a team of even just four or five developers will spend 30 minutes (sometimes an hour!) every morning in "standup" being grilled on every single item committed to in the sprint.
I convinced the team to do without the standup and just put the status updates in slack for a week. At the end I was the only one who thought it was better. To quote one developer "I don't read it when its in slack". That indicates to me that the information isn't necessary to do your goddamned job.
I dislike agile now as a result of that experience.
Those two were both large corporations. It is my theory that it happens as soon as you have a separate scrum/project manager for the project you work on.
Better yet, cancel that standup because it's garbage. Only one representative needs to go to the product meeting.
Do they look over your shoulder every minute?
What we don’t do, is “no deploy Fridays”. We deploy all the time, and maybe somebody wants to do some minor bug or light UI cleanup. I’m certainly not going to stop them. Requiring an “off-day” for deployments is a major red flag for me.
The biggest extreme that I've faced was a team where there was a 36 hour window between Wednesday and Thursday where deployments to production were allowed and it was a nightmare getting any code out especially with most deployments involving 10-20 new commits so if something did break we had to rollback a lot and rack our heads to figure out what went wrong.
Also, sites "go down" for more reasons than deployments, and often, a deployment is one of the fastest or only ways to fix or work around the issue.
So far the only problems I've seen is that sometimes it's hard to convince engineers to actually use the time instead of still working on tickets.
But sadly over the past few years we've kind of just done away with it. We don't allot time for it specifically anymore. We think about it from time to time and wish we still had the bandwidth for it.
But it just doesn't happen anymore.
It's a tough thing to build into a team's structure, I think, and in such a way that it's sustainable.
https://www.youtube.com/watch?v=e3msMuwqp-o&list=PLctkxgWNSR...
You can't heads-down slam out code for 8 hours a day 5 days a week. Be responsible with your time and use it to push forward the vision & mission of the company by taking your professional development into your own hands.
Not only that, but if you choose to learn on your own time, finding a lesson to fit in your daily routine is also tricky, especially if you're caring for a family or have other commitments. Couple that with uncertainty about what to learn next, it can become overwhelming just to get started.
Very recently, I started working on a project[1] to address this exact issue. The project is to help established software engineers progress their careers, learn new concepts, and refresh their existing knowledge with daily bite-size software engineering lessons designed to fit in their daily routines.
This is so short-sighted, because it means you can't learn anything unless your boss is 100% sure it will be immediately useful (at which moment, someone else is probably already assigned to do it). Most things I learned in my life were not immediately useful when I learned them, but many became useful later. Programming itself is a good example of this; when I was a kid, computers were considered just an expensive toy. By this logic, I should have never learned programming in the first place.
These constraints do not allow you to explore. If there is a new framework or a new programming language which MIGHT improve your productivity, but also MIGHT be a useless fad, you are not allowed to find out which one it is. No one in your team is. Thus you get stuck with the old technologies forever (or someone breaks the rules, or someone studies the new technology in their free time).
Unless you use load balancers in non-trivial ways at scale and really need to understand the ins and outs of how they work to utilize them effectively.
Or was that a faux story for your sales pitch?
I've always felt a level of entitlement around that. You (the business) want me to learn and get better. You get more value over time that way.
I've experienced the polar opposite in a Japanese bigco where we were given extensive material to learn (generally about the industry, or certifications), and it was very clearly understood that we were to learn the material off company time. As an American naturally I had an allergic reaction to this culture.
He says the amount of persuading he had to do to the global execs that being off-grid for two weeks might have it's benefits almost made it futile.
I can't help but wonder if this attitude has inhibited japanese progress.
I have no idea who started using these acronyms but they definitely forgot they're new and not universal.
We use SE here in Japan for both software engineers and system engineers. How are they difference? The latter is older and seems to have originated from people doing architectural, consulting type of work.
Fun fact, consulting/contracting businesses here and also known as SES, System Engineer (as a) Service.
That's a key thing.
Even in the most high pressure environments, where "project management professionals" are breathing down your neck for "deliverables" it is your responsibility to learn stuff and evolve.
It's nice if there's time and resources for people to better themselves, but these are typically limited to activities which are "related" to one's work function and are subject to "approval" from people whose interest in your career stops hard at what you can do for them in the roles they assume you're best-suited for.
The good news is most places are NOT rank-and-yank hellscapes where every minute you do something that's not on somebody's gantt chart will cause you harm in the long term. In most places you can lift your nose off the grindstone... but you have to be willing to impose your own self-direction and structure.
When I finished I had so much free time I could finally start doing the interesting projects and my work output was consistently 2x my co-workers. I considered explaining this to management but they had just admonished a co-worker for not doing the thing they asked and trying to improve process. So I kept it to myself.
Obviously this was a bit of a toxic work environment (early in my career) and I was luckily switched out of this group.
My point is that you can fight bad management to make a better working environment for yourself but it takes a lot of effort and you need to be strategic in what you tell them as it can backfire.
I suspect that one of the drivers behind open offices is to make it easy to “catch” people who are “wasting time” learning on the job.
Companies do think "It’s your responsibility to be on top of whatever’s going on in your field" and they might even claim that learning and development on the job is important, but when it comes time to log JIRA hours, they tend to show how much they really believe in this.
That is school and university in a nutshell though.
I wish misuse of these tools wasn't so widespread, but it was to be expected.
Are all these people really hired for their competency? The amount of wasted time this describes is staggering. Even at the worst of times, ticket interaction by even a skip-level was a sign of mounting org-wide desperation.
IIRC, management actually questioned people who didn't log much time on it. There were a lot of problems at this place but I liked that.
This makes me sad. I had a great experience with what I now think of as “authentic agile” at my second job, now I doubt I’ll ever get to do things that way ever again.
Personally I agree with you, and find that discouraging people from training themselves during business hours just results in most employees not fully applying themselves.
Why have WIP limits? Well one of the reasons is to be able to create downtime where you can go watch a video or read a newsletter. So I've been trying to spread this message in my team when someone has asked "The WIP is blocking and I can't really help anywhere at the moment" by answering "Go watch a video or read or take a walk for 10 minutes".
I mentioned in a comment above that with the Theory of Constraints in mind, sometimes the right thing to do for an individual contributor at a point in time is, nothing.
You went ahead and explicitly turned that into time to learn for them. Bravo.
--
Are these an internal thing for your organization? is it Just joining a mailing list for X language? Or is there some aggregation service you could share?
On top of that we dedicate one week every year to something that we call MJ University. We rent a hotel in a location and fly everyone in to that location. If you're interested on all the details, we've written them up here: https://mobilejazz.com/blog/mj-university-staying-ahead-of-t...
Something very important to this approach IMHO is paying your learning forward. Mentor other devs, write guides for your team/organization, etc. Make the benefit of your learning visible to everyone else.
That means that yes, your learning has to have value to the business and to the team. If that aligns, I can't imagine many problems arising. Your learning becomes an act of giving and taking, rather than just taking, which is a win-win for everyone involved.
Were you reading Stackoverflow? Taking a digital course and watching lecture videos? Reading a textbook with a pencil and paper out? Attending in-person trainings?
All of these things are scrutinized very differently in the workplace.
Also latter half of Friday is officially, by company policy, set up for such tasks - learning, and finishing internal tasks that always get pushed back.
The more i learn, the better value/cost ratio for my employer.
I would immiedetly change jobs if they didn't challenge me, or at least provide an environment where i can learn.
I subscribe to those weekly emails for the programming languages we use at work and I read them when they come in. I sometimes watch a conference talk about implementing something similar to whatever I’m scheduled to do next.
If I were running a company I’d expect this of all high level employees. It’s your responsibility to be on top of whatever’s going on in your field.