Making software in a client-contractor way is new to me, and it poses all sorts of problems.

I'm used to working in a product organisation, where each scrum team costs x amount of money per sprint, and they keep building on/iterating on a product. The product is the money maker for said companies, or a marketing machine that indirectly makes money.

🧵 1/8. Looking for: tips! Read first, then comment.

Now, I'm working at a company that thinks they aren't an IT company.

They use low-code platforms in the GIS space to create automated workflow solutions for their clients.

All work is "projects" and done for clients (contracts). The budget is mostly set up front by the clients.

A colleague and I started working on a project the last 2 weeks, and we ran into lots of questions.

I know: this is normal in software development. Low-code or not, creating software solutions = learning, understanding is emerging.

"just implement the requirements" is a meme.

But yeah, the client has a set budget for this project, and they find our questions disturbing.

They pushed back in an e-mail:
'why was this not known?'
'why are you burning hours on this?'
'WE decide what goes into this project, not you'

This is hurting the morale that this colleague and I felt. Our intentions were actually to help this client to the best of our ability. We want to create VALUE.

But yeah: this takes time.

And time is money!

As long as such a client doesn't want to truly work on software in an iterative way, I don't see how this set-up can work, as in: how it can yield software that actually satisfies this clients' needs?

If we do what this client wants: stop asking questions, and implement requirements, assumptions be damned, I predict the following will happen:

We will finish within budget, but the feedbackloop will have been ignored (as in: testing has been postponed)

We will throw our software over the proverbial fence to them, they start testing it and find out it is not up to par at all.

And they'll blow over the budget anyway to then improve it!

This is such a waste!

We have a solution for this:

iterative development.

Embrace the power of emerging knowledge and PIVOT based on what you learn. How is this so hard?

But yeah: that makes the budget more unknown, and the time of completion more unknown.

I don't see how this can work with a fixed budget AND a fixed scope from the client side.

@maaikees I know @hwschuur has a lot of experience and knowledge in this area. I think there are recordings of his talks.