Showing posts with label organizing. Show all posts
Showing posts with label organizing. Show all posts

17 January 2019

Command The Computer

After hearing hype around machine learning eating up tech jobs, I've wondered if I just have my head in the ground about what kind of work I'm doing.  So far, I haven't seen a straightforward way to apply machine learning to my work goals.

However, today I realized I can start a mind shift toward my work that will be both more healthy for me personally, and will allow me to see opportunities for machine learning that I've been missing.

There are 4 main levels of work I can see:
  1. Initiative
  2. Project
  3. Task
  4. Micro-task
As an individual contributor or team lead, the aspects of the work are scoped down to levels 2-4.  Most of the opportunities I've seen for applying machine learning have been at the Initiative level, where statistical methods can be applied to solve novel problems or automate whole classes of new/existing work.

Now, imagine you already work at levels 2-4.  Imagine you have a computer with infinite intelligence.  Imagine that if you describe a piece of work that needs to be done down to the 80% level of precision, that this intelligent computer could get it done and take care of the details.  This is what I've found impossible to imagine in advance.

The best way I've found to imagine this is as follows:
  • do a Task the way I've always done it (level 3)
  • break the task up into atomic pieces by creating self-standing git commits as I go (one commit per level 4 Micro-task)
  • when I write each git commit, imagine that I had asked a computer to do what I just did
  • write the git commit in imperative form, as if I had commanded the computer to accomplish the work at the 80% level of precision
  • imagine that I had spent the last 30-60min doing something other than solving the problem, and ask myself, "What else would I have been able to do while the computer was spending 15-30min on this?"
This helps me wire up the neurons in my own brain to start thinking about the computer as an intelligent agent that can assist me.  And it helps me to imagine how I can use my attention and energy more effectively, rather than just solving micro-tasks all day.

It appears to me that applying machine learning effectively requires stepping back at least to the Project or Initiative level and delegating more work to an "intelligent" computer.  And if such an agent doesn't exist, perhaps it can be built.

In a weird sort of way, I'm starting to use the Tell, Don't Ask principle in my own thinking to enhance my ability to imagine solutions coming together more quickly.  I know that's taking the Law of Demeter way outside of its traditional scope.  But I'm trying to break out of the box here. ;)

If 2018 was a year I didn't write any blog posts, it was certainly a year of great personal growth.  I look forward to writing here more during 2019.

03 May 2017

HELP: Happy, Evolving, Learning, Productive - Journaling template

Sometimes I go to write in my journal after lots has happened, and I find myself at a loss.  Too much has happened, I don't know what's important to record, it's all a jumble.  So I end up staring out the window and attempting a half-baked job of mentally processing things.

Here is a set of headings in an attempt to provide a skeleton for my journaling:
  • H: Happenings
  • E: Evolutions / Progress
  • L: Learnings
  • P: Plans
Or described more fully:
  • H: just neutral reporting on what random stuff has been going on
  • E: progress reports on things that have moved forward in some significant way in the last while
  • L: what you've recently learned that sticks out to you
  • P: what's coming up that has your attention
In an attempt at finding a mnemonic for HELP, I came up with the following:
  • H: Happy
  • E: Evolving
  • L: Learning
  • P: Productive
And here are some more detailed descriptions of the emotional states in the mnemonic:
  • H: just starting to write can keep you happier than not, see this post
  • E: highlighting progress, however small, turns into a sense of gratitude for me
  • L: seeing that I'm still learning is encouraging to me
  • P: putting rough plans on paper has a reassuring effect, and helps me move forward
Those adjectives have enough affinity to the headings that it might help me to remember them, and enough positive energy to help them to stick in my mind.

17 April 2013

Dystopia - Fallacies Conquered

Dystopia - from NetflixOSS's Adrian Cockcroft:
We have spent years striving to build perfect apps running on perfect kernels on perfect CPUs connected by perfect networks, but this utopia hasn't really arrived.
Instead we live in a dystopian world of buggy apps changing several times a day running on JVMs running on an old version of Linux running on Xen running on something I can't see, that only exists for a few hours, connected by a network of unknown topology and operated by many layers of automation.
Reminds me of Fallacies of Distributed Computing, but from the perspective of people who have actually vanquished the beast with weapons that are usable by others.

03 January 2012

Wish TwitterFeed supported auto-hashtags

After using TwitterFeed for a while, it's really cool!  Props to betaworks for an awesome tool!

All I want now is auto-hashtag support.

Just look for the last line of a post that is only hashtags, and #dont #take #arbitrary hashtags from the #body of the #post.

Don't bother with trying to convert blog post tags into hashtags -- I want a different vocabulary of hashtags on twitter vs. tags on my blog.

#twfeed #hashtags

02 January 2012

Open Geneological Research Vision

At its core, every sustained genealogical research effort turns into a global, loosely-connected, semi-structured distributed edits problem.

Open genealogical research needs a few conditions to thrive, I think.
  • significant stable corpus of research
  • everyone publishing under compatible open data licenses (CC-BY[-SA], CC0, or others)
  • agreed-upon standard data formats
  • ability to self-publish and curate your own research, independent of anyone else
  • ability to make corrections, and publish those corrections, independent of anyone else
  • ability to follow others' self-published research/corrections and pull it into your own research if you agree
  • mechanisms that encourage convergence of separate research efforts on the same research topics
Significant advances have been made in the last decade to enable certain aspects of online genealogical research.  The contributions of Ancestry and FamilySearch to providing indexed original records should not be underestimated.

The global family tree databases of Ancestry, Geni, FamilySearch, One Great Family, and others are also very significant.  The efforts of TNG and PHPgedview are especially significant in the control and latitude that they give to individual contributors in their efforts to self-publish.

However, online is not the same as open.  Open means more than just letting the general public search or get a login, it means that the dataset is licensed under an open license, and that this open licensing is adequately encouraged for subsequent contributions.

The ability for collaborative self-publishing is a primary concern that seems only partially implemented at this point in existing tools.

I have had this picture in my head for a while, and it seems the right time to start writing about it and doing something about it.

31 December 2011

Subscribing to FamilySearch Updates

Keeping up with all that's going on at FamilySearch is harder than it needs to be, but I finally figured out how.

Most sites give you large categories of feeds to track, but FamilySearch has all of 14 different feeds, some of which overlap or not (the feeds are available by appending '/feed' to the URL).  But I couldn't find any "everything" feed URL.

Because I work for FamilySearch, and because I care about what goes on around me, I want to subscribe to everything, if only just to skim.  The most important announcements get forwarded through internal email, however the additional articles are very useful context, especially for an employee.

Unfortunately, the default "subscribe" link just subscribes you to feeds #2, #3, & #4, or Indexing, Record Search, & Indexing, respectively.  The "Subscribe" link is visible on an individual article's page, but isn't even present on the main blog page.

Here is the feed link you can put in your feed reader to subscribe to everything:


When feed/category/blog #15 gets defined, this feed URL will be invalid again.  Maybe there is a better way.  If anyone knows a better way, please let me know.

I want an "everything" subscribe link that I won't have to update in my feed reader, or maybe an "everything but trivia" link.

24 December 2011

Missed Tweets Through News.me

I've never really been a twitter nut.  There are already enough sources of distraction for me, I don't need to add another source.  It just seemed really noisy.

However, people have been saying and linking to important things on twitter for a while now.  I'm just not discerning enough and don't have enough time to filter the firehose in a useful way.

The most helpful summary of interesting news I skim regularly is the weekly LinkedIn emails.  In fact, I think it may have been through a link chain from one of those emails that I stumbled on unionfs, as reported in the last post.  If I could have the same thing for twitter, but personalized to the people I follow, that would be really helpful!

Ironically, as part of the effort to make this blog more stuble-upon-able, I was looking for a way to auto-post on twitter and facebook whenever I post on this blog, and I found twitterfeed.com, which does all of that and more.  And it's easy to set up.

After setting that up this morning, I wondered: "What is the company behind twitterfeed.com?", and found betaworks.  They run some very interesting sites/companies, some of which I knew about (bit.ly), some of which were new to me (findings.com, chartbeat.com).  The interesting one for me right now was another site called news.me.

Turns out that news.me is just the kind of thing that has the chance of making twitter useful to me.  If things go well, you'll probably hear more about it.

31 August 2011

Lazy Developer plus No Slack equals Funding Guilt

I have enough hubris to consider myself a lazy software developer. I also work in an organization where there is not a lot of slack. Overall, I consider myself very blessed to be a part of the software group in which I work. There are many intangible rewards that I receive personally by working on the projects I'm assigned to work on.

Most of what I wanted to say in this article has already been said, so I'll spare you the effort if you're already well-read in this area.

However, the lazy developer / no slack combination often produces an interesting set of emotions within me. In particular, I repeatedly feel a certain ugly kind of frustration.

Here is my shot at defining this certain kind of frustration:

Funding Guilt: n. The feeling of having a sense that you could solve the problem at hand in a better way and more conveniently by inventing a solution to a more general problem, but being in a position where the investment in that more general solution is not specifically funded by the person paying for the specific assignment and might be more costly in the short term.

A lazy developer's answer to this is often to ignore the context and solve the more general problem anyway, with an eye toward paring the problem down to its core and avoiding gold-plating.

I remember working with a very smart developer who told me he kept an open critical bug as cover for getting real work done. If asked what he was spending his time on, he would point to his efforts to solve the critical bug. He would make enough progress on the bug over a period of time that people would continue to leave him alone, because they really wanted the bug fixed as soon as possible. But he devoted a significant amount of his time each day toward his real work. And when that bug got fixed, he'd pick up another serious bug that looked like it could be of use. Maybe this approach could be called "Bug Cover".

Although that approach to avoiding funding guilt is deceptive at its core, it worked for him. I'd prefer a way to avoid funding guilt that was more above board.

And perhaps funding guilt only appears in hyper-responsible people, of which I am one.

For those of us who feel it, acknowledgment of this emotion sometimes helps create a sense of understanding and perspective in ourselves and others, including possibly sponsors of our work. It is important to be able to forgive oneself for funding guilt if solving the more general problem is really the right thing to do. But this is not a resolution to the core question. How can funding guilt be avoided as a matter of course?

Maybe it's a matter of choosing very carefully which projects you work on, or at least aborting unfruitful projects very quickly.

Maybe the proper response to expressed funding guilt is at the core of the art of great software management. Perhaps great managers are those who can create the sense of slack that is needed to allow developers to get their juices flowing and create great stuff.

Even if it does involve a little cover.

P.S. FWIW, many of the ideas in this post come from having read and digested the following:

02 December 2010

Developing Organization Change Skill

When I was trying to describe what it takes to do a good rollout of something new across a larger software development organization, I came up with a chant that made a lot of sense:
Here's the old
Here's the new
Here's the difference
Here's what you can do
Yesterday, I was faced with frustration that came from feeling incapable of doing the rollout tasks that were my lot. And I wanted other people to be capable of rolling new stuff across the development organization, too.

I asked myself:
How am I going to get other people to be capable of rolling new stuff out?
That is when the idea came.

So I think that a successful rollout formula is:
  1. presenting all 4 things in sequence, and
  2. making it easy for people who are affected by the rollout to take the next step
Published with Blogger-droid v1.6.5

23 August 2010

Long Term Envisioning

What do people mean when they do:
Long Term Planning
I don't know what that means.

The following are my guesses as to what "Long Term Planning" really means:
  1. An exercise in stating some future desired state with no idea how to get there.
  2. An explicit agreement that you will diverge from reality at some near point in the future.
  3. An exercise in exploring organizational identity.
For conversation types #1 and #2, see the "Planning is guessing" chapter in Rework (p 19). OK, that takes care of 80% of the Long Term Planning situations.

I think that conversation type #3 is a very important conversation that typically gets way too little time. Devoting time to a pragmatic answer to "Why does this organization exist?" can produce a shared vision that can make everyone's work much more coordinated. See the last paragraph on page 58 of "A simpler way" (and subsequent paragraphs) for an inspiring discussion of this topic. You can search for "58" inside this book on Amazon as of Aug. 2010 and read a couple pages.

Each person's individuality can stop going in n directions and start converging on producing real stuff that satisfies the "Why?" question. If it's worthwhile to answer "Why?" with real stuff delivered to the real world, then it continues to be worthwhile to be associated with an organization.

If it becomes impossible to reasonably answer "Why?" or becomes impossible to actually deliver real answers to that question to real people, that is the departure point at which you have to start looking for some other organizational affiliation.

For me, the answer to "Why?" for FamilySearch software development is contained in Doctrine and Covenants 128:24 and continues to be a rich source of inspiration for interesting and valuable software contribution.