Understand at least 85% of the problem before you begin your work.
That was drilled into technical leads at Microsoft back in the 1990s, and for good reason. Establishing a baseline of knowledge means that you're forced to think through problems ahead of time, understanding that what you're really doing is traversing a knowledge graph where paths from each node can lead to a variety of choices and challenges.
The 85% benchmark is a bit of a dodge, of course. You can never know when you reach it, and in fact you likely can't, given that the knowledge space is unbounded. Instead, it's meant as an intuitive marker, where that intuition is enhanced over time with experience. It's meant as a philosophical guideline to imagine and study the possibilities and pitfalls ahead, be confident but plan fallbacks, and understand how to incrementally test and adjust your decisions as you go. Whether you're following a waterfall or agile approach, the philosophy applies: do your research and plan ahead.
Creators need to know the tools, the competition, what's been tried, what works and what doesn't, and understand the technical maturity of the field. For every positive expectation, it's wise to understand the possible risks involved. The act of investigation and research also brings serendipitous insights that can be exploited to improve plans or adjust marketing strategies. Strategic research and guidance doesn't only address technical directions; it's a holistic approach to the business opportunity as a whole.
It's important to note, however, that experience shouldn't lead to applying the same solutions to a problem previously seen, but to identifying larger patterns and applying higher order principles to solve problems and exploit opportunities. It's possible to see these principles applied to an array of technology areas.
In the space of data management and analysis, it's not enough to understand the differences, for example, between SQL and NoSQL systems, but architects should also be aware that these have evolved and continue to evolve even since the rapid rise of leaders like MongoDB. Where you might have learned to build unstructured database back-ends given the need for massive data ingestion, sacrificing consistency for scale, you might find that recent offerings combine massively scalable data warehousing with SQL-based structures. In fact, you will find new opportunities for mixing unstructured data with structured data in ways that weren't previously architected into application systems. A deep-dive experience into a technology isn't necessarily transferable to a new project unless you've forced yourself to keep up to date with the evolving technology.
Similarly, front-end web development offers a growing range of techniques and tools to address the transition to a mobile-first web. Applying the old adage of separating style from structure (CSS from HTML) is almost comical in its naivety these days when you consider the potential for progressive web apps to replace native mobile apps with all the performance, code structure, cross-browser, and framework issues and choices that you confront. Making decisions involves a recognition not that there's a right choice, but a broad understanding of team coding philosophy, code reuse/componentization issues, browser support of new technologies, application delivery and maintenance plans, and, well, a very long list of other decision points.
The areas of user experience and design go far beyond how pixels are laid on the screen and the manner in which a user interacts with an application. They tie into your systems integration strategy by virtue of how well your tools and technology choices support your internal mechanisms, and they represent your user experience values which are expressed in all the facets of your company or products that you present to your customer. Understanding this is a necessary part of good business planning that defines your overall technical business strategy.
As new technology trends emerge, it's becoming ever clearer that past experience is no guarantee of future performance. Machine learning and AI techniques extend what is possible from a data analysis starting point, but the current dearth in experienced practitioners means a need for in-house learning and experimenting in order to adopt the new technologies. This requires an understanding of focused research and strategic, agile application. The alternatives include simply ignoring new opportunities or reaching a state of analysis paralysis.
Agile approaches to product planning and development don't negate the 85% knowledge rule. The time you spend scouting and understanding the technological and business terrain of your business deliverables pays off in implementation time and the robustness of your well-planned fallback or defensive strategies.
« Blog home