Introspection and self-reflection is something I first learned about and experienced when studying to be a teacher many years ago.
I've long since adapted my plans and have been working in software engineering for the last three years, where the value of continuously taking a step back and evaluating what you are doing has become a core principle thanks to widespread Agile practices.
But while regular reflection about work as a team in the form of Sprint Retrospectives has become the norm for me as a welcome chance to think about what went well, what didn't and how things could be improved, I haven't been spending any time on personal introspection until recently.
Now whether you're a fan of Agile practices or not, you will probably agree that improving things that don't go well is something to strive for.
On the flip-side if things go well, we enjoy hearing about that and might try to keep things as they are, so that more good things happen.
A process of continuously looking at and evaluating what has happened allows us to do just that, no matter if it's done as part of a defined ceremony in a certain Agile framework, or just by taking five minutes each day to think back and reflect about what has happened.
I've just started a new job that has a three week on-boarding process which covers everything from getting to know people, learning the basics of how things work at the company, and getting in-depth knowledge about and hands-on experience with working on the software product.
Three weeks filled with a lot of really interesting input.
Early in the second week I've realized that while I did pay attention and even took notes of anything I found particularly interesting, it is so much input that days feel chaotic and somewhat exhausting. And on the following day even those notes I've scribbled down are too much to quickly glean the standout things.
So how do you solve that if you already believe
- taking your work in small, planned junks
- looking back to see if things are going well frequently
- making empirical decisions based on data
- improving things in small easy steps is the most reasonable way to do your job?
You start doing just that, on a smaller personal scale day to day.
I started off by restarting something I've been doing on and off before:
In the morning, before doing anything else, I write down my plan for the day.
By not just keeping that plan in my head, I can not only check if I've actually done it, I also get the benefit of an immediate red flag if that list gets too long.
If my coarse plan for today is half a page long, I probably won't be able to follow through on everything.
That already gives me the chance to prioritize and cross things off which I don't actually need to do that day, and which could distract me from the important things I might need to get finished soon.
Additionally I find the act of physically crossing out things I've done to be immensely satisfying.
Okay. Planned my day, great, we're done here!
But things go as they usually go... not according to plan.
So my day plan allows me to ask myself the first of the questions I currently ask myself at the end of every day:
Did my day go as planned?
And much more importantly than that binary question:
If no, why not?
The answer might be obvious things like thinking I could accomplish more than I can actually fit in a day, but if that ends up being something that keeps happening frequently, it allows you to realize that you need to start thinking about the underlying issue.
Maybe you're just bad at estimating, and should put less on your plate.
Maybe there's some frequent distraction that you're not fully aware of, and that you can remedy once you are aware of it.
Last week I've discovered that I failed to focus on a task I was working one, because waiting for a colleague to discuss something I went and started something else.
A few days later I still had two half-finished things, where I could have finished one already, had I just 'annoyed' my colleague one more time and got the answers I needed more quickly.
Apart from the simple question that is directly linked to planning your day,anything else you might reflect on is highly personal and up to what you're currently focusing on, or trying to achieve.
Currently I ask myself two additional questions:
Boyscout rule: Did I leave things/code better than I found them?
This relates to the fact that I currently try to apply the practices put forth by Clean Code Developer which is of course based on Robert C. Martin's Clean Code.
And to my compulsion to improve things, which in the end is also what lead me to reflect regularly about what I'm doing and what can be improved.
What did I learn today?
This one mainly relates to the fact that I've just started a new job, and serves to allow me to really pin down the important things to take away from every day.
A day is a short time-frame and I usually don't spend more than a few minutes thinking about my daily questions.
But it's worth thinking about things on a larger timescale and distance, so I've started spending a bit more time at the end of the week to reflect on how it went.
Like thinking about my daily plan, there's a few general questions I ask myself that I believe could be as useful to you, as they are to me.
You also find these or similar questions mentioned in a lot of places, as of course they're very basic self-improvement questions.
And they might just be what your team asks itself at the end of a sprint if you're applying Scrum.
What went well this week?
What to stop doing?
What to start doing?
What to keep doing?
As you can see they simply focus on discovering what positive or negative things happened, and what to do about them.
It might take some time and consideration to realize what specifically I want to stop or start doing in order to remedy the things that went badly in the prior week, but it is worth taking some time to think about that question, or even to just keep it in mind over the weekend.
I generally find it easier to think about the positive things I want to keep doing. Generally these will be specific things that just pop into my head when I think about the question of what went well.
For example it might be that I felt like I used my time much better since I started considering and writing down my daily plan again, so maybe I should just keep doing that.
Just like my daily reflection I use this to think about some more personal goals or problems, and so might you.
Just find something that you feel is currently important.
As an example I'll still tell you about mine:
I was asked a while ago to think about my personal view of myself in very specific terms instead of general ones. Who do I want to be and Why?
This is an exercise to aid in understanding what specific steps and goals there might be on the way to reaching that.
One of the things I've realized, is that I still want to be a teacher. Not in the literal sense of standing in a school classroom, I stand by that decision.
But I still enjoy learning new things, sharing those with people and helping them learn new things on their own.
That realization is actually what triggered me to start writing articles like my git tutorial.
The other is that I really like software development and I have somewhat high standards for myself and the work I do. So ideas about software craftsmanship are something I value, Clean Code is one of my favorite books and The Pragmatic Programmer has been on my reading list for way longer than it deserves.
So from these realizations and wanting to constantly improve, I've added the following two question to think about every week:
What did you do towards being a professional software engineer?
What did you do towards being a teacher?
That's just what I've started doing though.
I've written it down not only to allow myself to think it through in some more detail and share it with you hoping there's maybe some ideas in it that are interesting to you, but also to learn more about other people's habits and ideas.
Do you follow a routine?
Do you plan your day?
Do you exercise introspection and how exactly do you do it?