惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
IT之家
IT之家
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
小众软件
小众软件
博客园 - 叶小钗
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
罗磊的独立博客
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Paint by hours, or how I solved for time tracking
Grant Sheper · 2026-05-09 · via DEV Community

Time entry. That tedious daily friction that provides value to somebody, somewhere, maybe, where nobody reads a single one of the "thing I did" descriptions you wrote.

What's worse, you then have to flip browser tabs to a different application to re-paste that same exact description onto the task you just booked hours on, then either manually update its status and/or nudge your PM so everything is properly, manually groomed.

Gaaah!

Put your hours to work

My solution: build a project planner with time tracking as first-class. We might talk in story points or Fibonacci numbers when weighing the effort of completing a task, but in the end it is hours that buy it.

In AbleTime, when time is tracked against a specific task like "CRM-232 Fix the login page", several things happen automatically.

  • If that task's state was "to-do", it is promoted to "doing" automatically.
  • Click the "done" toggle when you submit the entry and the task closes off neatly.
  • Entry description lifts from entry to task automatically, the whole lifecycle tied together in one place.
AbleTime Task pane, showing all the pieces coming together
The task dashboard, one surface, everything together. Collapse/show lets you surface only what's important to you.

Now, the descriptions you put in your time entries aggregate as a coherent history of effort rather than a dissociated gaggle of tl;drs.

Paint-by-hours

The Kanban now reflects effort automatically, no drag or drop eating into your cycles. The "Timeline" Gantt bars snap into place as reality anchors your tasks.

The whole of it is designed to stay out of your way. You can draw your plan out by hand, dropping tasks onto the Timeline with estimated hours and day-blocked durations, or you can just leave the tasks to self-paint the board as the hours log.

Respect for gravity

Two other black boxes I wanted dealt with were Overhead and Backlog. The former, hours spent in standups, meetings, admin work, will invisibly bleed away capacity if ignored. Backlog is an even bigger capacity vacuum, a place where pre-work hides from the project's ROI. Both common and necessary, but dangerous if unaccounted for.

AbleTime Gantt timeline showing overhead, backlog, and dependency-shifted tasks
Overhead is your capacity equalizer. 6hrs of Backlog on the first task in the Epic. JPH-2 shifted 3 days ahead because of a dependency adjustment.

AbleTime puts both front and center. Overhead reads like an equalizer bar, weighted against the task-assigned hours. Backlog, if you choose to allow this particular sin, renders muted-but-visible on the Timeline. These signals, along with the color-coded "hours-spent" and ghost-bars that highlight dependency-shifted tasks, now all originate from the same simple act of tracking your time.

Time entry is a sin only if it's wasted on surveillance and billables. Put those hours to work.

If you have any questions, hit me up in the comments!