System Requirements Aren't Knowable In Advance
Knowing system requirements is rather like a disciple of a monastery, one who undertakes the noble task of comprehending the mysteries of the Universe.
The disciple first knows the Universe is ultimately unknowable in advance of the journey; circumstances, internal and external, will change along the way.
Eventually you can know a little or a lot as each Universal event arises, but you cannot know everything at every moment.
What you know will change. Ask. Don’t make assumptions.
Talk with others about what is known or unknown. Take what you know, self-develop in spurts to further advance your knowledge to develop more.
By this time you should know enough to drop out of the monastery and become an agile software developer.
Count to Zen and Take a Deep Breadth
So now you are a software developer. Like the disciple in the monetary, nobody knows all or even most system requirements in advance of the developmental journey.
However, the client or end user (that would be you) is the most important knower. No, you don’t have to code—you only have to know what you want or need. And those wants and needs will change during the journey. Don't be afraid; those Chosen Ones you have selected to create code fully expect that something will change.
Know that you and those Chosen are now One (ohmmmmm) and you are an integral part of the development team, the One they cannot do without.
Tell your team members what you want so they can know.
If you don’t tell, they will ask (often), so assumptions aren’t made.
All knowers involved will collaborate frequently to share what is known (or unknown).
Knowers know best in smaller teams.
When in doubt take a deep breadth; keep the bigger picture in mind.
But think smaller.
Now and Zen
Of course the known and unknowns about system requirements are interjected with coding, mysterious acronyms, best practices, impressive lingo punctuated by more collaboration, a little documentation, and super sprints of speedy development.
The one constant is that you know what you need. Be available to collaborate with the team with which you are at One, and embrace changes—and even mistakes—along the way.
The point is, things will change (a lot) from the start of development and even right up until the end. So at the beginning (and the middle) of development no one can really know all system requirements all the time—until the end when all system requirements have been fulfilled.
Working in this knowing/unknowing way will quickly result in working software.
At this point you’ll also fit right into a monastery. (A bit of side benefit which results from associating with those who use Agile methods of software development to rapidly deliver working software… and at no additional cost you.)
Or you can plunge ahead and find the best, most talented knowers to create custom software tailored to your organization’s needs by contacting the Intellection Group. Or give a call at 678-283-4283. The Intellection Group can help with all your system requirement needs.
But you knew that.