  As computer systems become more and more complex, software and tools lag more
and more behind. This is especially true for scientific software that often
demands high performance, and thus needs to take advantage of parallelisms,
memory hierarchies and other software and systems. How do we help bridge this
ever-increasing gap?
  This paper describes some of my experiences and thoughts regarding licensing,
code sharing, code maintenance, open access publishing, and educations and
training. Details include my recent experiences with getting industrial funding
for GPL licensed software, BSD issues, sharing code on GitHub, and how I
inspire students to take my 4th year Parallel Computing elective which this
semester has over 50 students enrolled. Some thoughts and comments regarding
why both optimization and data locality are such a central issue for scientific
software is also included.
