Tuesday, December 6, 2016

Living by Rule?

From Conference 1, Chapter 5 of the Conferences of John Cassian,

As those, whose business it is to use weapons of war, whenever they want to show their skill in their art before a king of this world, try to shoot their arrows or darts into certain small targets which have the prizes painted on them; for they know that they cannot in any other way than by the line of their aim secure the end and the prize they hope for, which they will only then enjoy when they have been able to hit the mark set before them; but if it happens to be withdrawn from their sight, however much in their want of skill their aim may vainly deviate from the straight path, yet they cannot perceive that they have strayed from the direction of the intended straight line because they have no distinct mark to prove the skillfulness of their aim, or to show up its badness: and therefore while they shoot their missiles idly into space, they cannot see how they have gone wrong or how utterly at fault they are, since no mark is their accuser, showing how far they have gone astray from the right direction; nor can an unsteady look help them to correct and restore the straight line enjoined on them.
I think this fairly well summarizes the core challenge of every human endeavor, although it is a bit of a run-on sentence in modern English. In whatever we do, we have to have an ultimate goal and we have to have some idea of how to go about achieving that ultimate goal otherwise we're just boxing with shadows. In monasticism, the primary tool for living this sort of disciplined life is called a Rule, like the Rule of St. Benedict quoted last week. Actual monastic rules and the equivalents for software developers are far too detailed to cover in a single post, but hopefully you can see some connections between this and project management tools and frameworks like Scrum. However, for now let's focus on sketching out what sort of rule software developers require .

As software developers, what is our ultimate aim?


The reality is that there isn't one thing that motivates all software developers. Some of us want to be world famous, or at least "world famous" in our own part of the industry. Others are just interested in making cool things, or even cool things that make other peoples' lives easier. Some of us want to make the world a better, happier place even if we're not building the sexiest piece of technology. A great many of us are in it at least partially for the money, sometimes to become rich (often in addition to becoming famous). For most of us each of these reasons probably plays a role at different times. None of these are especially good or bad on their own, although the impulse to help others is probably one of the most noble reasons to do anything, but they also don't have much, if anything, to unify them so let's take them one at a time and look at how we might best achieve each one.

Want to be a wealthy, "World-Famous" developer like Mark Zuckerberg or at least John Sonmez?


The immediate aim in this case is actually very clear. You need to market and sell yourself constantly, tirelessly, and persistently to everyone you meet. It helps if you have something to sell, but expertise isn't actually required as long as you're clear that you're not selling a level of expertise you don't have. If you want fame as a software developer but don't know much of anything yet, you can always start out small and super focused. You could be the Android ListBox guy or the iOS TreeView lady and start getting known while you increase the depth of your knowledge. John can help you out here much more than me since he's done a really good job of marketing himself and his brand (no really, I get a remarkable amount of email from his site), while I'm far more willing live a life hidden in the heart of Jesus. Anyway, your actual rule in this case should probably focus on how often you post blogs/videos/podcasts, what your content focuses on, what you do about getting that content in front of others, and a bit about your study plans so you don't look like an idiot in front of everyone who encounters you.

Want to push back the theoretically or practically limits of what is computationally possible?

If you're more interested in the theoretical side, aim for a PhD and take as much advice as you can get from academic CS folks. If you're more interested in the practical side you probably still want at least some sort of advanced degree in CS, although you might be able to do as well by targeting a company that has the sort of hard problems you want to solve, like Netflix, Groupon, Google, or Microsoft. The odds are extremely good that you will need to both engage in extensive academic study and do a lot of networking to land where you can actually achieve your dream of doing cutting-edge work. In this case skills are of paramount importance closely followed by whatever networking you need to do to get access to the groups that are already working on whatever hard problem interests you most.

Want to do good and make the world a better place with software?


Focus! What does making the world a better place mean to you? On one end of the spectrum there are charitable organizations you could work for. Humanitarian Toolbox is the only one I know of that is specifically focused on developers using their software development skills for charity, but I expect other charitable organizations hire a few developers. On the other end of the spectrum you could make the world a better place by making an online shopping experience smoother and more enjoyable. If you work for Amazon this could even improve the lives of millions of people every year just a little bit. When you know how you want to make the world a better place you should be able to see what sort of rule will help you get there. In the meantime, practicing your skills will probably make it easier to contribute when you finally do decide on a destination.

Want to have an economically solid, reasonably happy life funded by writing software?


Congratulations, you will almost certainly find what you're looking for since software development is fairly hot at the moment with lots of opportunity, although more experienced developers frequently seem to find ways to stop being active developers. Just remember, it's better to place your sense of security in your ability to find your next job than in whoever happens to be paying you now. Businesses come and go, but there are always problems that folks need solved. With that in mind, achieving security requires maintaining adequate skills in the languages, tools, and frameworks folks want to use (ie. both old and new tech) and solid networking. Marketing is helpful, too, but as a rule of thumb even developers that don't do much professionally outside of work make a reasonably good living.

While following a Rule of Life can take you further than you could ever imagine faster than you could ever believe, the practice is quite demanding and has significant risks. Consider what the Customary of the Order for the Order of Julian of Norwich has to say about the customs that make up the lived reality of their Rule.

Customs themselves do not have to prove their value before they are practiced, nor do they presume to have a universal, binding truth for [everyone]. While the meaning of most customs can be explained through their relation to the core charism of the community, the deepest understanding can only be achieved through giving ourselves to their practice wholeheartedly. This demands trust in the community and trust of the customs themselves, and yields a great store of wisdom as we learn their value from within. Living a life together that is customary produces a stable community and builds a habit of trust. It creates an atmosphere which fosters prayer and the total conversion of self. In the discernment of a vocation, great inability to practice, or continual conflict with, the customs of the community is a likely sign that one is not called to live in this community.

In short, it is often easier to feel that one has failed the rule than see the rule as having failed, especially if one has embraced the rule as thoroughly as required to get maximum benefit. Embracing a rule wholeheartedly also means that a genuinely bad rule will hurt you very badly, very quickly. This is why it is often best to use an existing rule and make sure you take time to reflect and consult others about what they're seeing as you adopt and practice a rule.

It is critical to confirm that your disciplines are helping you come closer to hitting your mark, and to change them if they're not working after a reasonable amount of time. You can't tell if things are getting better without looking to see where your arrows are landing.

The quotation from the Conferences of John Cassian is from A Select Library of Nicene and Post-Nicene Fathers of the Christian Church from 1894, translation and notes by Edgar C.S. Gibson. Full copies of this particular work can be found at Christian Classics Ethereal Library since it is no longer covered by copyright. The quotation from the Customary of the Order of Julian of Norwich is from the edition promulgated on the Feast of St. Francis de Sales, 2011.

No comments:

Post a Comment