Another thing I don't like in Scrum is how it forces all projects/features into a 2-week framework.
Some features are small and take just a few days. Others are enormous and take longer than 2 weeks.
Not all types of effort fit well into such a fixed framework.
For me, it makes more sense to develop software in a goal-oriented way.
"Goal" meaning: A clear business case that supports *Why* such feature needs to be built.
Eg: "We need HIPAA compliance to sell to clients in the Healthcare sector"
Between idea and shipping, there are many activities, such as:
- Create business case
- Collect requirements
- Assess feasibility and tradeoffs
- Plan/architect the solution
- Implement
- Test
- Launch
- Retrospect on results
So I break them into these 5 important questions:
1. Why -> The clear business case.
2. What -> The feature that will address the business case.
3. How -> The technical approach to implement that solution.
4. Who -> The team and resources needed for that effort.
5. When -> The delivery timeline, for expectation alignment.
Now, I don't bring my whole team into a "brainstorm" meeting to address these questions.
Each depends on different stakeholders, and they can be tackled sequentially for the most part.
In my teams, all these 5 questions live in the same collaborative document.
I have these 5 questions as sections of a Notion template.
Some rules are:
1. We can only define the "What" after we understand the "Why".
2. We can only plan the "How" after the "What" is clear.
3. Defining the "How" implies discussing tradeoffs that affect "Who" and "When".
Usually the document is started by a business stakeholder, or a Product Manager. They define the "Why".
Eg of "Why": We need comply with regulations in the Healthcare sector, so we can expand our sales in that vertical.
From this "Why", a Product Manager usually crafts the What. It needs to be clear enough so that Engineers understand it, but flexible enough to take input around feasibility and implementation tradeoffs.
Eg of "What": Our data needs to be stored in HIPAA compliant servers.
The "How", "Who" and "When" are usually collaborative, and led by technical stakeholders, eg: an EM.
Resources or time constraints, force to cut scope. Trade offs are to be discussed collaboratively.
Eg of "How": Move database and file system to HIPAA compliant AWS services.
The "How" discussion should clarify the tasks to be done and the assignee for each of them, the "Who".
Trade offs regarding timeline should have been clarified, and shared expectations about "When" should have been aligned.
It ends with ownership + accountability to deliver!
In my teams, we can do this without meetings for most tasks.
For tasks with denser trade off considerations, we jump on a meeting to discuss those live and commit to an approach.
Long iterations over async comms can create very long lead times, so I opt for meeting on those.
This is how I shifted from a heavy meeting culture (led by Scrum), to an Async-first workflow.
I can tell it was one of the key contributions to this acute before & after effect in my career.
I'm more productive, my teams are more efficient, and none of us is burned out.
Software Engineer salaries have wild variations around the world.
One thing is clear though:
- Regardless of where you live, working remotely for a US company will increase your salary. Probably by a lot!
See Pakistan at the end of the list, the highest salary reported there is ~$16k/year.
So, if the highest paid Software Engineer in Pakistan lands a remote job earning a "low" US salary of $110k/year, that means an almost 7x salary increase.
Mind blowing stuff!
The specific math is different for each country, but the rationale applies everywhere.
Take a look into Germany or France, prominent EU economies, with highest SWE salaries of $90k and $70k/year.
SWEs there can still gain a 50% salary bump by working remote to the US. Nice!