Hacker News new | ask | show | jobs
by phkahler 3267 days ago
Favorite line "... the software development process is exploratory by nature."

I always say the customer/client does not have requirements, they have problems. You will not discover all the requirements until you start solving some of the problems and providing solutions. Only then will they say "oh but...." and drop more requirements on you that they didn't think of up front.

Back to that quote. It's not that software development is exploratory in itself. It's that the development is intertwined with an exploration of the problem being solved.

3 comments

> and drop more requirements on you that they didn't think of up front

I think one of the important qualities of an architect is to anticipate what these requirements are going to be and define solutions to them ahead of time.

I have this conversation all the time with our client-facing team.

Me: "What is supposed to happen if this data changes?"

Colleague: "Well the customer didn't give us a requirement for that so we don't have to worry about it"

Me: Screams inside

Great points from OP and above comments ..

> the software development process is exploratory by nature

>> customer/client does not have requirements, they have PROBLEMS. You will NOT DISCOVER all the requirements until you start SOLVING SOME of the problems and providing solutions.

> "The most valuable asset in the software industry is the synthesis of programming skill and deep context in the business problem domain, in one skull."

> But If Someone Else Knows the Business, Why Can't They Can’t They Just Give Me a Spec?

> The Unmapped Road

>Miles and miles of a software project are spent roving this vast territory that is not exactly computer related, nor exactly business related. Rather, it is a new and emergent problem space that explodes into existence while bridging the middle distance between the business problem and the technology.

> In reality, this vast field of micro-problems was there all along. But the only way to discover them was to encounter them one at a time, like boulders in the path of a road-laying crew

> What is Deep Context?

> Deep context is the state of having achieved a kind of mental fluency in some large percentage of this immense field of micro-problems that appears in the space between technology and a business domain.

> I always say the customer/client does not have requirements, they have problems.

And those problems change as the business adapts to changing market forces.