As a Software Engineer, having a consistent approach to be as effective as possible is crucial.

This thread goes over the framework I use. I've polished these steps over the last 20 years, and I believe they are a fundamental piece of my success as a developer.

🧵👇
I start by splitting every project into small iterations 1 or 2 weeks long.

The process I'm about to explain applies to one of these iterations. I then keep repeating it over and over again.

(This works regardless of any other process/methodology that your team uses.)

👇
During every iteration, I go through seven different phases:

1. Organization
2. Estimation and Commitment
3. Prioritization
4. Execution
5. Review and Delivery
6. Presentation
7. Reflection

Let's talk about each one of these in detail.

👇
1⃣ Organization

I take all of the work I want to accomplish during the iteration and do the following:

1. Break it down into smaller pieces
2. Capture all the necessary information
3. Make sure I understand the ultimate goal
4. Come up with a way to measure success

👇
2⃣ Estimation and Commitment

This phase focuses on three main goals:

1. Estimate the necessary effort
2. Estimate the potential value
3. Negotiate a healthy commitment with stakeholders

This is my last chance to assess whether completing the work is possible.

👇
3⃣ Prioritization

I go through the list and prioritize it.

Depending on the context, I usually focus on a couple of different goals:

1. Maximize throughput
2. Minimize risk

I move on to the next phase whenever I know the next task I should focus on.

👇
4⃣ Execution

This is where all the work for the top priority task happens. A mash-up of the following activities (not necessarily in this order):

1. Design
2. Development
3. Testing
4. Refactoring

When I finish the task, I move to the next phase.

👇
5⃣ Review and Delivery

Am I fulfilling the goals I established at the beginning of the iteration for this task?

Are there any teams that need access to this? Do they need this packaged and documented?

From here, I move on back to phase 3 and repeat until all work is done.

👇
6⃣ Presentation

Now it's time to work on how I need to communicate and present my work to the rest of the team and stakeholders.

1. What's the appropriate language?
2. What should I highlight?
3. How do I communicate value?
4. What should I deemphasize?

👇
7⃣ Reflection

This is the time I use to think about the work I finished during the iteration.

1. How did it go?
2. What did I learn?
3. Is there anything I'd like to improve?
4. How did the team receive the work?
5. What's the temperature of the project?

👇
This process has helped me focus tremendously, so I've been using it for years and years.

I have it tuned in a way that maximizes "delivered value" and trust from those around me (managers, clients, teammates.)

👇
Here is a diagram capturing the entire workflow.

Hopefully, you find this process useful to improve your own approach.

👇
You can follow @svpino.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: