Process
How I run projects
The sequence I follow from idea to release, and the rules I keep on every production change. Working software every two weeks is the best defence against a plan quietly slipping.
From idea to release
The 90-day plan
- Weeks 1 to 2
Discovery
Pin down the one core loop that has to work for the product to exist, plus the target user and the single metric that proves it.
- End of week 2
Scope cut
Every idea goes into one of two lists: needed for the core loop, or parked for version two. If it does not serve the loop, it does not ship first.
- Weeks 2 to 3
Architecture
Project structure, data model, API contract, auth, environments and CI/CD in the first sprint, not the last. A few days now save months later.
- Weeks 3 to 11
Build in sprints
Four two-week sprints, each shipping a working, testable slice of the core loop, with a demo at the end of every one.
- Weeks 11 to 13
Launch and harden
Store submission, analytics and crash reporting, a real onboarding flow and load tests on the busiest paths. Then, and only then, the version-two list.
On every release
My production rules
I learned these by running my own SaaS, where a bad deploy is my problem at 2am.
Back up first
No production write happens without a backup taken minutes before it.
Keep a way back
Every deploy has a tested rollback. If I cannot undo it, I do not ship it that way.
One change at a time
Small releases mean that when something moves, you know exactly why.
Run the database first
Schema changes go in by hand, are checked, and only then does the code that needs them deploy.
Verify on live
A real request and a real screenshot on the live system. A green pipeline is not proof.
Keep secrets secret
Credentials stay out of code, logs and chat.
Measure, then claim
Numbers before opinions
Before and after
I measure first, change one thing, and measure again the same way. If the number did not move, the fix did not work.
This website is an example
I rebuilt it after measuring a real problem: at a slow moment on a Karachi connection, the old pages froze their video for up to 1.9 seconds. I found the cause, fixed it properly and proved it with frame-time measurements on the live site.
Want your project run this way?
Tell me where things stand and I will tell you what I would do first.
