Posted on

The THX 1138 Rule

In the 1971 movie THX 1138, George Lucas’ first feature film, the title character gets in trouble with the law when he gets his girlfriend, LUH 3417, pregnant. In the highly regimented society in which they live, relationships like theirs are illegal. The authorities throw him in jail and redesignate LUH 3417 so he can’t find her again.

THX 1138, along with a couple of other escapees from jail, look for a way out of the subterranean complex where their society lives. Ultimately, THX 1138 is the last of the escapees still at large. The robot cops try to convince him to return with them, but he refuses. When the pursuit exceeds 6% of the budget allocation for chasing escapees, they let him go and he reaches the surface.

The question you may be asking is, “What does that have to do with anything?”

Continue reading The THX 1138 Rule

Posted on

Where to Find Prominent Voices in Software Other Than Twitter

Where to Find Prominent Voices in Software Other Than Twitter

Updated 6 Nov 22

Thousands of thoughtful and experienced software professionals use Twitter to share information and interact with one another. We’ve come to depend on Twitter as a source of information and interaction with colleagues.

With the recent changes at Twitter, many users are looking for alternative social media platforms. But many of us hesitate to “leave” Twitter because that’s where we find industry leaders in the software field, and we don’t want to miss out on what they have to teach us.

The most well-known of these typically use Twitter mainly as a publishing platform and for “reach” rather than for socializing. Therefore, our experience with them consists of reading whatever they post and following links to other Internet sites to read their articles and blog posts; listen to their podcasts; and watch their videos, conference talks, and interviews.

In other words, it isn’t a social relationship, but rather a producer-consumer relationship. For example, some industry leaders write article-length pieces in the form of tweet threads. This is a poor user experience for the consumer. True, there are some ways to improve the experience – through third-party services like ThreadReaderApp, for instance – but still, a social media platform isn’t optimized for that use case.

We can get the same value by visiting people’s sites directly, with no dependency on Twitter. If some of us happen to know some of these individuals, we can connect on other social media platforms. We need not depend on Twitter as the primary contact point. It has been convenient, so we have developed the habit of using Twitter.

If we change our habits in this way, what might we lose? It occurs to me that Twitter functions as a kind of notification system. When someone has a conference talk, training class, or event coming up, or they have just published a new article, book, podcast, or video, they announce it on Twitter. We don’t have to remember to go and visit their sites to find out what’s on their calendars, or what new information they have published. I suspect this notification function will be the hardest thing to replace.

People also tweet when they are looking for work, or looking for employees. There are other sites whose main mission is work-related connections, and they may provide better support for those needs.

This post offers a woefully incomplete list of leaders in the software field whom you may have been following on Twitter, and whom you don’t want to lose track of as things change. Please let me know if I’ve overlooked someone who should be listed.

Adkins, Lyssa (@lyssaadkins)

Bache, Emily (@emilybache)

Beck, Kent (@KentBeck)

Belshee, Arlo (@arlobelshee)

Benson, Jim (@ourfounder)

Booch, Grady (@Grady_Booch)

Brown, Simon (@simonbrown)

Burrows, Mike (@asplake)

Cockburn, Alistair (@TotherAlistair)

Dinwiddie, George (@gdinwiddie)

Falco, Llewellyn (@LlewellynFalco)

Farley, Dave (@davefarley77)

Feathers, Michael (@mfeathers)

Fowler, Martin (@martinfowler)

Gee, Trisha (@trisha_gee)

Glazer, Hillel (@hi11e1)

Gottesdiener, Ellen (@ellengott)

Gregory, Janet (@janetgregoryca)

Grenning, James

Hammant, Paul (@paul_hammant)

Hendrickson, Chet (@chethendrickson)

Henney, Kevlin (@KevlinHenney)

Hightower, Kelsey (@kelseyhightower)

Hill, Michael “GeePaw” (@GeePawHill)

Jeffries, Ron (@RonJeffries)

Jones, Angie (@techgirl1908)

Kerievsky, Joshua (@JoshuaKerievsky)

Kern, Jon (@JonKernPA)

Kua, Pat (@patkua)

Langr, Jeff (@jlangr)

Marick, Brian (@marick)

Morgan, Jeff “Cheezy” (@chzy)

Ottinger, Tim “Agile Otter” (@tottinge)

Patton, Jeff (@jeffpatton)

Perri, Melissa (@lissijean)

Rainsberger, J.B. (@jbrains)

Rothman, Johanna (@johannarothman)

Schwaber, Ken (@kschwaber)

Shah, Binni (@binitamshah)

Shore, James (@jamesshore)

Sutherland, Jeff (@jeffsutherland)

Wake, Bill (@wwake)

…and…

Posted on

Key Skills for Software Development

If you understand how these things relate to software development work, then you require no training or coaching.

Self-discipline

Handling stress and working with others requires self-awareness and emotional control. All the skills listed here also require self-awareness and emotional control.

Learning How to Learn

It is widely agreed that software development teams are either improving mindfully, or they are deteriorating in their effectiveness. There is no steady state. To make improvement possible, team members must be open to learning new things and willing to question things they already know.

Focus

To achieve anything, you must focus on it. That means uninterrupted time to think and work. It means finishing one thing before starting another. It means not getting distracted. It means keeping your eyes on the goal and not on dwelling on the difficulties.

Persistence

Overcoming challenges and meeting objectives requires persistence. Embracing change to improve our work requires persistence.

Collaboration

In almost all cases, software development work benefits from collaboration between two or more people. “The more you share, the more your bowl will be plentiful.” – James S.A. Corey, The Expanse.

Trust

Effective collaboration requires trust and the courage to be seen as vulnerable or imperfect.

Leadership

Leadership doesn’t mean giving orders. It means giving credit, giving time, giving space, giving encouragement, giving opportunity, giving trust. The more you give, the more you get.

Rhythm

A steady, predictable, consistent, and sustainable pace of work helps ensure continuous flow, maximize delivery effectiveness, and minimize team stress.

Technical Skills

The field of software is constantly changing. Software architecture, design patterns, programming paradigms, methods and schools of testing, of analysis, and other areas, design principles, development practices, automation, operations, and everything else is a moving target. To get started in this field, you need basic education/training in analysis, programming, and testing, and the non-technical skills listed above so that you will have the ability to keep yourself current with technical advances and to collaborate with and learn from your colleagues.

Without the basic training, you will have no foundation to build on. It would be like trying to run a foot race on top of loose ice floes on water. The general discussion of what skills are necessary tends to emphasize the non-technical side of things; don’t take that to mean there are short-cuts on the technical side. The reason for the emphasis is that the non-technical skills have been underappreciated in the past. On the other hand, don’t worry if you feel as if there’s too much to learn. Once you have the basics, you can build on that knowledge little by little.

Posted on

What’s our focus for improvement?

Here’s a story.

A development team was thrashing as they attempted to use Scrum to help them build a new application. They had numerous defects, some of which escaped to production and others that were caught within each Sprint. Many defects they thought they had fixed popped up again in production.

Their stakeholders had high expectations, as the team’s velocity was high. After several Sprints, it became clear they were not going to deliver all the planned features by the defined deadline. The news came as a surprise to stakeholders.

Continue reading What’s our focus for improvement?

Posted on

What if people always spoke the way they do at work?

I’ve noticed in many business meetings, and especially presentations, people use highly stilted, quasi-academic language. They may have useful things to say, and a pleasant, cultured voice to say them with, but the language leads me to wonder why people think they have to sound academic at work, and whether they would speak that way normally in any other context.

I mean, if they think it makes them sound smart at work, wouldn’t they want to sound smart all the time? Who wouldn’t, right?

Continue reading What if people always spoke the way they do at work?

Posted on

How we think about recruiting

There’s an odd situation in the software industry. Employers are adamant that they can’t find suitable talent to fill the technical jobs they have. Job candidates are adamant that they can’t find suitable work. It seems strange to me that both these things are true at the same time.

Many people have opinions and observations about this. Often, they cite academic studies, industry surveys, formal management models, psychology, and various other things that are confusing for a Bear of Very Little Brain like me. I wonder if we could go a long way toward solving this problem if we ajusted, just slightly, the way we think about what we’re aiming to accomplish, on the hiring side and on the job search side.

Continue reading How we think about recruiting

Posted on

An incentive to collaborate

Recently, I tweeted that I had presented a virtual training class in which we used remote mob programming for the lab exercises, and at the end the participants said their main take-away was not the technical content, but rather the value of direct collaboration. Colleagues who already understand and appreciate the power of collaboration were excited to hear the story.

But what about people who do not already understand and appreciate the power of collaboration? What was unique about the situation that brought collaboration to the fore, above and beyond the technical skills that were ostensibly the subject of the class? How closely does that situation align with more-typical software development realities?

Continue reading An incentive to collaborate

Posted on

Discipline

Premise 1: Self-discipline is the only meaningful form of discipline.

Premise 2: Simpler solutions are usually preferable to more-complicated solutions to the same problem.

Premise 3: Without self-discipline on the part of those using it, no process model or method or framework or tool of any kind provides the value its proponents believe it can provide.

Premise 4: A formal process that imposes strict rules tends to teach people to follow rules rather than to cultivate self-discipline.

Premise 5: The longer and more deeply a person invests in a given idea or habit, the more difficult it becomes for that person to let go of the idea or habit, or even to question it.

Premise 6: In the diffusion of any innovation, the main reason Innovators and Early Adopters achieve better results than Late Adopters and Laggards is the former are predisposed to try unfamiliar things and take risks, and not primarily because the particular innovation is intrinsically better than whatever it replaces (even if it happens to be a little better on the merits).

Premise 7: The factor that makes an innovation useful is that it comes at a time when it is needed, in a context where it is needed, and to people who are in a position to make use of it; not necessarily that the innovation itself is “best” in a general or permanent sense.

Continue reading Discipline