The past couple of years has exploded with new programming frameworks, better software practices, revitalized methodologies, improved hypervisor technologies, and the list goes on. With so many options, one could be deadlocked in thought on how to engineer the next pioneering solution. Here are some questions I ask myself in no particular order:
-
What platforms will it support?
-
How extensible will it be?
-
How easy will it be to deploy?
-
Will unit testing be necessary?
-
Will acceptance testing be necessary?
-
Does continuous integration come into play?
-
What security measures must be implemented?
-
What instrumentation is necessary to support the product?
-
What new technologies could benefit this solution AND have a long shelflife of support?
-
What older technologies could still benefit this solution due to its vast supporting community?
-
How much time is available?
-
How many resources are available?
-
Oh yes! There is a need! How does any of this apply to the need?
-
Can other projects use any of the same features?
-
Is it worth standardizing the solution for other projects to use?
-
What is the data layer going to look like?
-
Where does the PASSMADE acronym come into play?
-
What kind of budget is available?
-
Who is available to get some of these answers?
-
Who is the project champion, if any?
-
Who are the stakeholders?
-
What questions did I miss?
The list goes on and on. When I was a junior programmer, I remember just programming to program. Some of those questions came about, but not as strong and loud as they do today. It's as if the questions drive the solution forward rather than the answers or the unknown. For this author, anyway. So why do I mention this? Well it's always been therapeutic for me to brainstorm in writing. It's also beneficial to hear what others have to say who are going through similar tribulations.
Currently, Deriven is working on an explosion of technology use, best practice use, virtualization, ALL of that stuff .. in a new project that may or may not ever be used. Still, it's already a two-year strong project that has opened up many challenges with the questions above. I believe the majority of time went into answering questions than to developing -- which is a good thing, right? One shall see. Thankfully this project isn't about a market share or meeting a deadline. Perhaps that lack of pressure allows development to progress.
Perhaps stress is the sole reason for so many unanswered questions and deadlocks.