Mindful Development is understanding exactly what you're working on at any given moment, and what comes next. Whether you're building a new shiny API, or supporting a system - being mindful helps you be more productive and less reactive.
Plan
- Ask yourself: What are you planning on getting done for this session? Be specific! Write down a list of tasks down or reference them from your favorite project management tool, and add your own ballpark estimates on how long you think each task will take.
- Ideally, you should do this before you start, or the night before. Outline what you're building, and how you're going to build it. If you're fixing a glitch, think of your debugging strategy and what may be causing the issue and/or steps to replicate.
- Build your to-do list before you start, but ideally the night before.
- Your most productive hours are earlier in the day. Don't waste your productive hours on context switching and building to-do lists. If your list is ready from the get-go, you'll spend this time producing instead of thinking about what you should be doing.
-
Execute
Once you start, the clock is ticking. Be mindful of the following:
- Understand when you're getting sidetracked, and write what sidetracked you down - but don't let it disrupt your flow & mission.
- When you're writing code, you're putting down what you've already thought of on paper. Once you've actually started developing, you shouldn't be heavily thinking about architecture - this helps you focus on writing quality code and making split-second decisions that will affect the maintainability of your project for years to come.
- PR / Push Frequently
- Aim for small PRs that cover 2-3 small to medium sized tasks, or one large task.
- Ideally, you should be submitting multiple PRs on a weekly basis.
- If no one reviews your PR, tag them on Slack.
- If you tag and everyone is busy - go ahead and merge it in - as long as it's not going to production directly. PRs can be reviewed after the fact.
- Don't be shy about pushing your code before PRing, and asking for input on specific commits or code decisions.
-
Stay Accountable
- Track your time, and be aware of how long a specific task is taking you.
- If you're 2X over your original estimate, ask for help from a fellow team member.
- If no one is available to help right away, move on to something new, and come back to it later.