33

We work in scrum teams with a product owner who is responsible for the backlog and prioritisation of that backlog. Recently the topic of un-ticketed work came up, developers for one of the applications are doing un-ticketed work that they regard as important. Typically this is tech debt but can also be things like migrating to a better library etc.

The argument from the developers was that these are generally small things and in an agile team they should be able to exercise their judgement and fit them in around sprint work. E.g. if waiting for the CI system to build and deploy they could tidy up some code. The effort of raising a ticket will take longer than actually doing the work. The work being done is tested via automated tests and so there is no additional burden on the QA members of the team.

The argument against this is that the developers are effectively saying their opinion on what work is a priority is more important than any other stakeholder and are not going to go through the PO so it can be compared against other work in the backlog. There is also a case to be made that if a developer has spare time then it would be more productive for them to be elaborating upcoming stories. The state of stories coming into sprint has been raised at retros before and so more elaboration can only help this. There is also a concern that the self policing of what size falls into this category may start to stretch and result in even more time being spent on un-ticketed work.

I can see both sides of the argument to an extent but should all work no matter how small be ticketed and go through sprint planning rather than be done as and when by developers if it is small?

Sutty1000
  • 1,379
  • 1
  • 12
  • 15
  • 33
    I'm a developer, so I might be biased. But I'm with developers here. I currently work on a product where we have strict machine-enforced policy that no code change can happen without a Jira ticket. And it is easy to see what that kind of policy has on a codebase, as project accumulated huge amounts of technical debt and fixing it would mean going through emounts of bureucracy that no one seems to be willing to put up with. – Euphoric Apr 01 '20 at 16:46
  • 3
    I think this quesion will vary wildly depending on what is goal of having tickets for work. Are they for coordination between people? Work and capacity planning? Keeping of work history? Analyzing flow of work? – Euphoric Apr 01 '20 at 16:52
  • 37
    If the work done to conform to a process is more than the actual work accomplished then you have a broken process. – 17 of 26 Apr 01 '20 at 19:41
  • 2
    Also, what is the goal that you are trying to achieve with this question? Right now, it's pretty vague. Are features not being completed on time? Are the developers putting things into the product that shouldn't be there? Is the codebase being destabilized and causing more bugs to appear? There doesn't appear to actually be a problem that needs solving in your question. – 17 of 26 Apr 01 '20 at 19:49
  • 2
    While I might be with the developers on the decision to do 10 minute tasks ad-hoc. I would not be with them to do them unticketed, because I want to see what was done within a version. Not to supervise anyone, but to know the associated risk with that version, i.e. what could break and where to look if something breaks. Just as a hint that deciding what is to be done isn't the only reason to create tickets first. – Frank Hopkins Apr 02 '20 at 01:52
  • 1
    @Euphoric I really don't see the issue with dealing with large tech debt there. The more legacy and tech debt is present, the less overhead adhering to the process adds, because there will be tickets of the type "refactor component X" and refactoring that properly will be serious work. The other good thing about creating tickets first in such a scenario is, that you might have an immediate argument for additional team members instead of wondering after a year why that ball of mud is still around. – Frank Hopkins Apr 02 '20 at 01:57
  • 4
    @FrankHopkins It is difficult and time-consuming to build a valid business case for refactoring. It is not uncommon to spend 1 day of work time and 2 weeks of wait time build a business case for a refactoring that takes 1 hour. That is clear waste to me. And demonstrates lack of trust of business in engineers. – Euphoric Apr 02 '20 at 05:28
  • 18
    I think your question suffers becausd you are essentially asking a community of developers to vote on whether they want to do more admin work or whether they should be trusted to do what they think is best. – Ewan Apr 02 '20 at 07:06
  • @FrankHopkins, that depends on what you use the tickets for. A source control system will typically show what has been changed in a version and by whom, and I wouldn't assume that tickets in the OP's organisation are being used to manage the risk of regression. The impression I got was that tickets there are primarily used to coordinate with a non-technical person outside the team who articulates the broad functionality desired, not (for example) as a way for a senior developer to exercise oversight on the integrity of the application. – Steve Apr 02 '20 at 13:40
  • 2
    This question presents the issue in a very "Dev vs PO" or "Dev vs The System" light, but the only person I see getting the shaft in all this is your humble QE. _Realize any change/risk you add, also adds complexity to QA._ That may explain the reasons for the System right there. – Marc L. Apr 02 '20 at 18:00

9 Answers9

53
  1. If you work in a company that doesn't place any value in paying down technical debt, you may have no choice but to do unticketed work.

  2. Stakeholders are generally not qualified to make decisions about this kind of work.

  3. Include unticketed work as part of your ticket estimation process.

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
  • 2
    well, if you estimate it into your tickets, it's not unticketed ;) Imho, proper refactoring of stuff you touch belong into the ticket estimations anyway... – Frank Hopkins Apr 02 '20 at 01:57
  • 2
    If your Scrum-Team really works as a team **together** with the PO, you as a software developer are a stake-holder as well, since you have to work with the code and usually have to fix bugs. So often it is just a communications issue for tech-debt to get prioritized. - Working around the system without even trying to work with the system is toxic... – Falco Apr 02 '20 at 13:11
  • 1
    @l0b0, you overlook the possibility that they may not be "allowed" to do unticketed work in any formal sense, but are doing it anyway because management don't have any power of oversight, which would be perfectly in-keeping with such management's lack of understanding overall. – Steve Apr 02 '20 at 14:00
  • @l0b0: Naturally, finding a new job is always an option. I'm saying that doing reasonable due diligence ought to just be part of your job, whether management thinks it is nor not. You don't put someone onto the freeway in a rickshaw. – Robert Harvey Apr 02 '20 at 19:02
  • @l0b0: It's not what I "like;" it's what the moral imperative dictates. I can release crap that makes my fellow programmers' lives a living hell while still barely meeting functional requirements, or I can leave the area a little cleaner than when I arrived and lay the groundwork for making future changes easier. Is that a personal choice? Perhaps, but as I stated in my answer, the stakeholders are not qualified to make it. – Robert Harvey Apr 02 '20 at 19:12
  • @l0b0, I'm not sure I quite follow. Robert Harvey clearly meant "... no choice but to do unticketed work *if you want to pay the technical debt down*." That latter condition was unstated, but almost every developer has experience trying to explain to non-technical managers that a conceptual mess has arisen that must be cleaned up and mental order restored - a process that takes time and work - otherwise it is very quickly going to overwhelm the developer's ability to reason about it and maintain their own productivity. – Steve Apr 02 '20 at 20:50
30

In a few safety-critical industries, you need approval for every bit of code that goes into a product. Most people are not in that situation, and those that are, accept that condition.

In normal situations, if you don't allow for unticketed work, you are basically wasting the experience of your engineers, especially senior engineers. They know about things that will improve the customer experience but that a customer would never know to ask for. They know ways to accomplish your stated goals that are better than a proposed solution. They know about things that will improve the developer experience, making developers more productive and happy, and indirectly getting customer requests out the door more quickly. Conversely, they know about things that could make customers angry, and can prevent problems before they happen if given enough latitude.

How do you keep developers accountable for that work? By telling the product owner about all of it, even if you don't always ask first. That way, the product owner can make priority calls if you end up spending too much time. Our PO attends every standup, so he never goes more than a day, and usually no more than a half day, without knowing what unticketed items we work on. If we think something will take more than a couple hours, we run it by our product owner first.

Part of the reason this is efficient is because the more people involved in a decision, the longer it takes. A developer can have something done in an hour, or he can get a ticket created that might take a dozen man hours to explain, analyze, and prioritize. As long as there is oversight so it doesn't push business priorities aside, you're actually saving money.

Karl Bielefeldt
  • 146,727
  • 38
  • 279
  • 479
  • 1
    I think one can contrast work done without thinking a lot about it (like cleaning up some comments while the code compiles) and conscious decisions to start a chunk of work (like updating to a new major version of a dependency) - and for the second ones, if a dev is thinking about and deciding to start this task, he should have the time to inform his team/po about it so they can take part in the descision and possible side-effects. – Falco Apr 02 '20 at 13:39
  • Yes, of course. The wider the impact or the more controversial the decision, the more people need to be involved. – Karl Bielefeldt Apr 02 '20 at 13:52
  • 1
    If you stop your developers from doing this, you also waste their paid time. Because what will happen is not, as you might expect, that they create tickets and whatnot. What will happen is, that instead of fixing small things during CI build time, they will read news on the Internet, watch YouTube, chat (and stop others from working because of this) etc. – Josef Apr 03 '20 at 16:16
14

should all work no matter how small be ticketed and go through sprint planning rather than be done as and when by developers if it is small?

There's certainly a point where the answer is no, right? It doesn't make sense to add a ticket to open the IDE, or to format the code before checking it in, or to code review other's code. One could argue that those tiny things are all part of an existing ticket - but so is cleaning up tech debt around the stuff you're working on.

The biggest thing people forget is that process is there to serve you, not vice versa.

If making the ticket is more valuable (in visibility, consistency, etc.) than the cost (in time to make it, context switching, noise to the backlog, opportunity cost of not doing something else), then do it. If prioritizing these things is more valuable than the cost, then do it.

Telastyn
  • 108,850
  • 29
  • 239
  • 365
  • 3
    "The biggest thing people forget is that process is there to serve you, not vice versa." Except when the process is there to serve your boss or the business, instead. – nick012000 Apr 02 '20 at 01:28
  • @nick012000 maybe shortsighted - but in the overall picture it is you who delivers actual value to the project, the actual team members working are the only ones producing anything - and all the process can try to do is to help them produce better. – Falco Apr 02 '20 at 13:21
  • In many teams I worked, we simply had a place-holder ticket "working on technical debt" which we included in sprint planning with an amount of points how much time/energy we wanted to invest into it and to make it visible to the PO, without specifying in details what 50 little tasks would actually be done under this umbrella. - be pragmatic – Falco Apr 02 '20 at 13:23
  • 2
    @nick012000, except when the process is there but actually serves nobody. The concept of dysfunction does exist, and software processes exhibit a lot of what I believe is called "mimetic isomorphism", in that organisations emulate each other (or more often, partly emulate each other) without having the slightest idea of what is being achieved by it or how. – Steve Apr 02 '20 at 13:49
  • 2
    "Cargo Cult" is the more well known term. – Telastyn Apr 02 '20 at 17:44
6

Lets differentiate a bit, you can have many types of unticketed work

  1. Doing something completely unrelated to project, eg. helping someone on another team, admin, management meeting

  2. Implied by specified work. eg. no-one mentioned security, but we are just adding the default rather than pestering for specs

  3. Gold plating. eg. of course you want animations on those buttons!

  4. CV driven development. eg. I refactored to ${latest thing}! it will be #better

  5. Shadow IT. eg I did the DB backups for X even though its not my job, because I'm de-facto the DB admin.

Obviously some you would want people to do without a ticket, some you wouldn't.

Ideally you want all of your developers time to be accounted for and project focused but you have to put the work in to make this happen. Assign time for those PDP meetings, Hire a DBA, provide full specs for the hard stuff, specify exactly what you want and don't want

Trying to do this properly is a massive unloading of work from the devs to project managers. But if you can do it your velocity will skyrocket.

Ewan
  • 70,664
  • 5
  • 76
  • 161
  • 9
    "Ideally you want all of your developers time to be accounted for and project focused" No you don't. Sprints and ticketing are project management techniques, not people management. They do not, and are not supposed to capture the entirety of what a developer is doing. What the tickets and stories are supposed to capture is what work is being done currently and in the near future, and that can be extrapolated to see if a project is on track. It does not and isn't supposed to be used as a time tracking tool, and using it to track developer work is an antipattern – Gabe Sechan Apr 02 '20 at 03:13
  • in order for that to be accompished you need to include (account for) time not spent on the project in some way. Sure you dont need to have a ticket for your daily poo, but you need to know that you wont be working on tickets at that point – Ewan Apr 02 '20 at 06:13
  • 3
    No, you don't. That's not the purpose of a ticketing system, or for project planning. The purpose of those is to keep track of project progress and what still needs to be done- not to manage people. If you're using it for that, you're doing things VERY wrong. – Gabe Sechan Apr 02 '20 at 06:21
  • 2
    the purpose is to make sure you hit your deadlines. I assume your projects are all delivered late by number of holiday days the devs took because this is 'people management' and you dont include it in your planning – Ewan Apr 02 '20 at 07:02
  • Yes, they track the progress of a project towards a deadline. It is NOT used to track people doing their job, except as it refers directly to a project. If that's what you're using it for, your organization is severely screwed up. Especially with ideas like "all their time should be product focused". Even for a junior that's not true. For a senior its way less than 50%, most of a senior's time is spent on mentorship, architecture, code reviews, hiring, technical guidance, maintenance of projects (either directly or by explaining to maintainers). The ticket system captures none of this. – Gabe Sechan Apr 02 '20 at 09:02
  • 1
    The way it actually works is you break the work to be done into tickets, and you estimate each ticket. Then you track how fast you do compare to those estimates. Based on data, you re-estimate regularly. If you're off track, then you decide whether to increase resources, push back, cut features, etc. But you don't use tickets to try to micromanage the engineers- not only does that not work and create overhead that costs more time, but it harms your actual ability to track the progress of your project. – Gabe Sechan Apr 02 '20 at 09:06
  • 1
    that's a very naive view of things. You estimate _effort_ then assign resource time equal to that effort + meetings + holidays + training etc – Ewan Apr 02 '20 at 09:29
  • 3
    @Ewan So what do you do if something is not on schedule? What if someone gets sick? What if something just takes longer than you thought? Do you literally have tickets for "doing dumb mandatory training" and time tracking for "doing code review"? Sounds awful. – user3067860 Apr 02 '20 at 12:54
  • you don't need to account for everything through tickets. people have working hours, weekends and holidays blocked out in advance which reduces the time commitment accordingly. Usually you allow 20% for 'normal' meetings, lunch etc, reducing everyone's expected effort to 80%. If someone is Ill then you treat it like a holiday, blocking out their hours and your expected completion date moves back accordingly. Allowing you to assign the correct number of people to take up the slack, communicate with the clent, whatever. same with unexpected delays on tickets. the key is to measure – Ewan Apr 02 '20 at 13:57
  • code review is an interesting one. I think I would ticket for that because it can block, be project related and you might want to report on it – Ewan Apr 02 '20 at 13:58
  • Mandatory training, ticket if done by an individual at a random time, block out the hours if its something everyone has to do and you know the date/time – Ewan Apr 02 '20 at 13:59
  • @Ewan, I think a better slant on what Gabe is saying is that tickets are only supposed to track the time spent in a very general way. If you send a road sweeper out for a day with a dustpan and brush, you know he's been out, but you don't have the records necessary to determine every time he moved the brush head left or right on the pavement, or how many times the pan was placed on the floor - those decisions come and go during the execution, and nobody can reproduce exactly what occurred. Even if a time-and-motion man were assigned, he would only sample the process, not constantly record it. – Steve Apr 02 '20 at 14:20
  • @Steve *shrug* "Obviously some you would want people to do without a ticket, some you wouldn't." not sure I can make it clearer – Ewan Apr 02 '20 at 14:28
  • the important thing is the roads sweepers time is _accounted_ for. its 100% road sweeping great. if its 50% road sweeping, then you need to know what the other 50% was – Ewan Apr 02 '20 at 14:29
  • @Ewan, the time often already is accounted for. The developer attends 9-5, and he was not noted as absent that day. If you've hired a developer who knows what he's talking about, who attends the meetings, who has code written against his name, who asks for or gives help now and again, and so on, what is it you think he might be doing on a daily basis if not development? – Steve Apr 02 '20 at 14:54
  • 1
    @steve arguing on stackexchange – Ewan Apr 02 '20 at 17:36
  • @Ewan, I'm not sure I've grasped what you're saying. – Steve Apr 02 '20 at 20:22
  • 1
    @steve i'll explain tommorow between the hours of 9-5 – Ewan Apr 02 '20 at 20:25
  • @Ewan, ah now I see. I do it myself sometimes in working hours, typically either when I need a rest from the work being done, or when there is no work to be done. What I'm not clear about is either that this is something my employer "needs to know about" (and doesn't already), or that it is "unaccounted for" time. It's true he is not paying me to spend 100% of my working time on SESE, but he is paying me to know a thing or two about software, to develop clear and coherent understandings and be able to communicate them, and to rest and recover when appropriate. – Steve Apr 02 '20 at 21:33
  • if not they can always deprioritise the tickets for each comment right? – Ewan Apr 02 '20 at 22:45
  • 1
    @Ewan, you mean the ticket for each comment on SESE? I'd be surprised if the bookkeeping didn't exceed the time spent on the comments, and what's more it introduces the potential for conflict or need for justification over matters where there previously was no conflict or need for justification, and typically when an employer introduces complex or detailed kinds of time accountancy, it's the opening salvo in new conflicts or demands for justification, and for workers whose work is mainly or entirely intellectual in nature, these generate massive overheads which compete against the work. – Steve Apr 03 '20 at 14:01
  • really? its just 3 clicks and a copy and paste. then its on the backlog for prioritisation. – Ewan Apr 03 '20 at 14:23
  • Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/106289/discussion-between-steve-and-ewan). – Steve Apr 03 '20 at 15:58
4

Play Ball

The ticketing system is there. It is the rules. Now get creative.

1) Leave.

If you don't want to play ball.

Maybe on principle, or maybe its simply too arduous.

Don't stay and complain when you can be elsewhere living it up.

2) Play by the rules.

Spend your time doing exactly what the higher ups are asking for.

Just don't be nasty about it. Upfront and professional, if they try to push past you simply point out the rules and say that under them it cannot happen. Point out what would be preferable and the advantages of the approach, and ask politely for it to be changed.

So, If they want you grooming stories. Go and groom. The estimates will eventually grow and grow. And they will complain. You simply point out that no unticketed work is being performed, and that none of the problems are being ticketed as they have directed you to upcoming project work only. If they want the estimates to go down. They will need to ticket for code debt, and schedule it in.

Which brings us to, if they demand that the work is ticketed and submitted for prioritisation. Go and ticket. Spend that time identifying each and every problem. The number of tickets will grow and grow and they will complain. Point out that all code debt related work is being identified and that these are pre-requists of many substantial pieces of work. They will push through project work. Ticket each hack and kludge needed to get that work in.

Eventually they will try to deal with the deluge of tickets by just closing them. Point out that this is against the rules unless you as a stakeholder you also have the ability to close their tickets.

Again don't be mean about it. These are the rules, you are acting accordingly. You would prefer this alternate system, with particular advantages.

Sell them on a compromise. Your team gets to action small changes, in exchange you fill in a ticket with commit, doer, time taken, intention and a brief description.

  • commit to track the "small" change
  • doer to identify well you, you deserve acknowledgement for your work
  • time taken, because people like to count rice grains.
  • intention, because a semantic grouping is always good like: dependency update, code cleanup, code refactor, dead code, code coverage.
  • a description because the business folk can't read code and don't have access to the scm.

If they agree to change congratulations: you have helped your business maintain an agile edge to it.

3. Break the rules.

Just do it anyway.

Be subversive against the company culture. This is a rebellion! Throw off the chains of the old system.

Just don't come complaining when you eventually run into the thing that the system is supposed to deal with.

You broke it, you fix it, and pay the price for it.

Those who come after you may have a bloody mess to deal with, or an idyllic paradise. What do you think the chances are?

Also please hang up any semblance of professionalism on the way out the door.

Kain0_0
  • 15,888
  • 16
  • 37
  • I really like this. One big thing to take away from my perspective is in point 3. If you break it, others have to clean up after you, and if your customers write custom code to integrate to yours, you've just pissed off a whole bunch of developers who may want to start looking at an alternate, depending on how often you pull this stunt on them. Even a simple library upgrade can break code, especially if your customer has to use the same library, and they don't appreciate having surprises thrown at them, and now they have to figure out what undocumented change broke their work. – Tom A Apr 02 '20 at 17:57
2

My rules are: 1. Nothing happens without a ticket and a code review. Ever. 2. Developers know what they are doing. If they think work is necessary then it is necessary.

So what happens is: You make the change, create a ticket with the lowest possible number of story points, assign it to yourself, add it to the current sprint, create a branch (all these in any order), then create a pull request. Then someone else reviews and merges. With a bit of practice you can do the bits other than making the change and the code review in less than five minutes.

If you are a developer who doesn't know what they are doing and make useless work, your changes don't pass the review, and if this happens often enough, you stop doing it.

gnasher729
  • 42,090
  • 4
  • 59
  • 119
1

The argument against this is that the developers are effectively saying their opinion on what work is a priority is more important than any other stakeholder and are not going to go through the PO so it can be compared against other work in the backlog.

I wonder, is this a genuine argument?

The tone suggests the developers are suffering from a certain amount of arrogance in forming independent opinions at all, but it would be wholly unsurprising that developers form opinions on what work needs to be done (either as part of their general responsibilities for maintaining the integrity of the system, or necessarily entailed as part of a task they have been set about), and that their opinions may in many circumstances be the most important.

It would be more appropriate to try and agree sensible guidelines about what scale of unforeseen or unplanned work requires formalities. Half an hour here and an hour there is no time at all in software.

Steve
  • 6,998
  • 1
  • 14
  • 24
0

From Agile Estimating and Planning by Mike Cohn:

You may want to consider including 0 as a valid number within your estimation range. While it's unlikely that a team will encounter many user stories or features that truly take no work, including 0 is often useful. There are two reasons for this. First, if we want to keep all features within a 10x range, assigning non-zero values to tiny features will limit the size of largest features. Second, if the work truly is closer to 0 than 1, the team may not want the completion of the feature to contribute to its velocity calculations. If the team earns one point in this iteration for something truly trivial, in the next iteration their velocity will either drop by one or they’ll have to earn that point by doing work that may not be as trivial.

If the team does elect to include 0 in its estimation scale, everyone involved in the project (especially the product owner) needs to understand that 13 × 0 ≠ 0. I’ve never had the slightest problem explaining this to product owners, who correctly realize that a 0-point story is the equivalent of a free lunch. However, they also realize there’s a limit to the number of free lunches they can get in a single iteration. An alternative to using 0 is to group very small stories together and estimate them as a single unit.

So, yes, if you're estimating all your tasks, include the "freebies" knowing that they're not truly free. I've very rarely had a task where writing the ticket took longer than the task itself, and ticket writing is hardly an arduous or long process. Write those tickets so the product owner can see the extra value that the developers are providing! Without them, they're doing invisible work.

The important thing to remember about Agile is that it's agile! If you try to use it too rigidly, it's not agile anymore!

Another thing to remember is that if you do estimate "free" tasks but fail to do them by the end of the sprint, they don't impact your velocity, as long as the number of unfinished "free" tasks is low!

CJ Dennis
  • 659
  • 5
  • 15
  • *"Without them, they're doing invisible work."* - they'll almost certainly be doing "invisible" work anyway, that is work that is not fully described or reproducible by any recording system. The only question is how much work is expended on maintaining the fiction that they aren't. Outside a space programme, show me a shop where every minute is recorded, and I'll show you software that does little, because they spend all their time dancing with the paperwork to make it look like they're working - and that dancing is how you know they aren't working on software. – Steve Apr 02 '20 at 11:27
  • @Steve Yes but just because people always do some of their work invisible is no reason not to try to track a **reasonable** amount of it. If it were black and white, one should just give up on tracking any kind of work or progress, because they cannot track 100% - what I would strive for is tracking things as long as tracking them costs you less than not tracking them. – Falco Apr 02 '20 at 13:29
  • @Falco, what is a "reasonable" amount is the crucial question, and anyone who thinks it is reasonable to create a cost estimate for every form of tracking, is not being reasonable. – Steve Apr 02 '20 at 14:40
  • I've always thought that assigning 1 point to text changes and other near trivial tasks helped offset the optimistic bias most of us have in estimating the difficult tasks. Additionally, there may be work related to running the test suite, managing version control, all that other stuff. I've seen projects get derailed by a deluge of these little requests, and think it's good to keep in mind all changes have some cost and some risk. – Josh Rumbut Apr 03 '20 at 00:48
0

should all work no matter how small be ticketed and go through sprint planning rather than be done as and when by developers if it is small?

Almost yes.

It generally depends on how critical the work is, how large the company/business/team is, how much accountable each participant/stakeholder/employee should be held, etc. But, if you don't ticket, you miss time. Yes, you read that right, you miss time (not lose) when you don't take it into account.

Say you are called to organize the team and produce estimates for something. However experienced, you will generally always want to rely on past data. And if you have data gaps, you need to interpolate. And you degrade the accuracy of your estimation. Short story, when you are planning ahead, depending on how efficient or demanding your scheduling/estimation techniques are (see, e.g. this), you may not be in position to afford to "exclude" observations, you need to know exactly how much time was spent, oftentimes on what precisely, so that you can make the most educated estimates possible.

developers for one of the applications are doing un-ticketed work that they regard as important.

The principle of least effort says that's a good thing... in fact, that's a great thing. It shows that your developers are devoted to keeping a fair level of standards and code quality.

The effort of raising a ticket will take longer than actually doing the work

Yes. Booting a computer ten years ago also took longer than taking out a pocket calculator to sum up 20 values. The wrong solution: keep using the pocket calculator. The right solution: make computers boot faster. What I'm trying to say is that you wouldn't want to skip evidence that would make you more productive just because your current process is not too efficient. Make the process more efficient. How? I don't know, find a way. Create another ticket type: "Tech-debt repayment ticket". Automate the heck out of it, make the effort equal to just the click of a button, make one button for every reason out there, if you will. Or introduce "tech-debt repayment time" that anyone can stock up on and use, and assign it as needed.

Think about employee attendance monitoring systems (card swipe machines, etc.). Your dilemma amounts to considering whether you can get by with some people occasionally not signalling that they are there to do work, because the process of marking their work is quite a chore. When it's pay-time, everybody will know, in retrospect, the value of missing data.

In general, the availability of data/information is of paramount importance, sometimes for reasons that may not even come to mind at the moment of collection. It has the potential to protect the employer, protect the employees, improve productivity, etc. In general, you cannot lose productivity just by having additional data, i.e. extra information rarely harms.

Of course, this entire organizational mentality may not be too critical for a relatively small development team and you may not generally want to put such type of "pressure" on the developers. However, you can always explain to them why it is important to monitor all work done (spoiler: so that you can make increasingly better estimates and manage available time when it is scarce). In any case, your mileage may vary, of course, hence the main answer to your question was almost yes.

Vector Zita
  • 2,372
  • 8
  • 19
  • 1
    On estimating, having perfect past data does not produce an accurate future estimate, because there is still the question of whether (and to what degree) past activities overlap with what you propose to do, and more data is likely to increase the burden of collation. And the experience of *having* done something before may well change the timeframe (and crucially, estimates based on data from experienced workers will start to omit the true cost of *reproduction* of that experience). Also, "missing time" is not truly missing - you can always look at attendance records. – Steve Apr 02 '20 at 11:37