Many developers in the open source, Linux and Android sectors are familiar with the term “Largeness of Mind”. It’s a term sometimes used in open source circles to remind developers to keep the big picture in mind while working on their apps and plug-ins.
In development, it’s easy to become tunnel visioned and focus too heavily on the task at hand (or the problem being troubleshooted) and lose sight of the overall build. In open source projects, this is especially problematic as keeping the big picture in view can mean saving yourself from wasted time or sloppy coding. Because the Linux-based kernels are so inclusive, forgetting that another process may be more appropriate to solving a problem or that interfering with other processes may create new problems can be devastating.
It’s not unusual for a developer or team to waste hours or even days attempting to solve a problem whose solution is, almost literally, right in front of them, but in a different part of the core or another, related app to their own.
The remedy to this is to keep an ongoing, extensive knowledge of the kernel architecture, facilities and APIs available and know how they can be applied to your specific project. Already-accepted code and APIs means saving time now in debugging and later in upstream acceptance. For this reason, developers should not only keep abreast of current updates and happenings in the community around their chosen core, but also focus their design phase development efforts on identifying current code that can be used without re-inventing the wheel.
Keeping current is an ongoing requirement and cannot be done with annual conferences or re-certifications (though these can definitely help). Staying current means spending time trolling forums, reading email threads, and participating in development communities. This is a regular thing, not an occasional once a month check in. For a good developer, regardless of platform, it is a matter of course.
Whether your chosen focus is Windows, Mac, Linux, Android or Unix, you should stay dedicated to being up-to-date and knowledgeable of the big picture. Training programs and certifications lay a good foundation, conferences and camps provide a good refresher, but only regular interaction in forums and other online discussions can keep you truly open to the big picture.
Often, the focus on current projects, deadlines, and so forth can overshadow this regular participation; and when it does, it’s often to the detriment of the project the focus is projected towards. When solving a particularly vexing problem or troubleshooting an annoying glitch, keeping an open mind and helping someone with an entirely unrelated problem or seeing a new development in coding may trigger the light bulb and solve your problem for you.
Really, being too focused is most often the problem. The solution is easy.