The Latest


Technical Leadership: Finding Balance

As leader of a team of six software developers, I get to see a wide variety of experience levels, coding styles, and effectiveness. I also have a multi-year backlog of work for my team to do. My constant challenge is balancing quality, maintainability, and productivity. These are hard enough to juggle as an individual, and they’re incredibly difficult to manage well across a diverse team. The goal of my development team is to deliver value to our customers. This is a superbly straightforward goal, but it’s not hard to lose sight of it as we work through a miles-long list of feature requests and bug reports. We’re under constant pressure to deliver features on tight schedules, and it would be easy to give into the temptation to do the bare minimum to get the work done. There’s a popular term in the startup world for this: minimum viable product (MVP). We actually do practice this to a certain extent, but we’re careful to keep an eye on where the project is headed; if it looks like it’s going to be around for a while, we need to shift gears and start building a higher quality, more maintainable product. We are […]

0 821

Work / Life Balance

When Molly asked me if I would write something for her blog, my first thought was, “What excuse can I come up with to get out of this?!” Then, after about 30 seconds of soul-searching, I knew I had to do it. See, the problem is… I love my work! As a kid, I loved making models. I built model airplanes and hung them from the ceiling in my bedroom, complete with cotton trailing behind them like smoke. Making models was challenging and fun, and I never lost the joy of building things. My first career was as a recording engineer. I recorded music for TV and radio commercials. Again, I was building something, although it was less tangible than physical objects; I was building an audio environment. After 25 years as an engineer, I decided to make a change. I loved engineering, but I missed making something of my own. So I struck out on my own as a FileMaker developer, not even knowing if there was a market for such a thing. Now, over 20 years later, I still wake up every morning eager to work. I have a small stable of loyal clients who I have worked […]

0 645

Quality Assurance: An Overview (pt 2)

Read Part 1 first! Write User Stories You’ve likely heard of user stories or maybe you’re already writing them. Again, there are lots of flavors out there; this is the one that works for me. As a (role), I want to (some function), so that (or because)… These take some practice to write and write well. The key attributes that will make a user story excellent and allow it to serve many purposes are: The role is well-defined and specific (“bookkeeper”) The function is small, precise and its success measurable The “why” clause is correct Technology-agnostic where possible (we’re solving a business problem) So for example, an effective user story might be: As a bookkeeper, I want to easily find invoices open longer than 30 days, so I can avoid incurring late fees. Notice there is nothing technical in the user story, and we know why the bookkeeper is asking for the feature. Knowing why will likely inform your design choices–or you might even scrap this feature once you know why she’s asking (for example, maybe you’ll add in automation so invoices are never late, to begin with). Let’s look all the things this user story does for the project: Documents […]

0 709

Quality Assurance: An Overview (pt 1)

Oops! If you’re like me, it’s likely you’ve made some mistakes that you wish you could correct with the benefit of hindsight. In the world of professional software development, these mistakes can be, at the least, minor irritations, or at their most severe, major disasters for your customer and for you. Anywhere on that spectrum, all mistakes waste time and money, leading to the derailment of projects, which translates to increased costs and frustration for all involved. Wouldn’t be it great to implement some tools or processes that helped you reduce mistakes, making your customers happier? That’s Quality Assurance. Really though, doing quality work is a frame of mind, an attitude. Just like the arts of playing piano or sitting in meditation, quality is something you practice. Measure In order to get better at what you do, you need to first measure how you’re doing today. A simple way to start is to learn to recognize a mistake, or defect, when it occurs. Defects can be technical (a code bug) or process-based (like a misunderstanding). Usually, there are more of the latter type, and these can be harder to spot, but process defects that affect your relationship with the customer […]

0 658
Ask Molly, Doing

Ask Molly: Should I trade security for cash?

Dear Molly, One of my clients has offered me a full-time position. I’ve been happily working on my own for over 6 years now, and the offer is significantly less than what I make on my own. That said, the promise of security and not chasing invoices is appealing. How would you weigh the opportunity? Debating a “real” job Dear Debating, Assuming you’ve already weighed the cost of benefits like paid time off and health care, you know the dollars to dollars comparison, and you’re telling me you’re looking at a job that will pay significantly less you less than you make now? Especially in this day and age, it’s funny to me that when companies try to hire entrepreneurs they appeal to the desire for job security and a steady paycheck. If you’ve succeeded on your own for 6 years you probably have a decent portfolio and ways to drum up sales when needed. I would argue your ability to work with multiple clients gives you more job security than working for a company. I also have a hard time believing there is some supreme value knowing exactly the dollar amount you will receive every two weeks, especially if it […]

1 565

Working with Old Code: Tips from the Trenches

Many of us work on systems which have grown over the years to become significantly complex. Most likely, in many of these systems, there are a lot of messes to clean up—inconsistent design themes, “spaghetti” code, questionable database schema elements, and so on. What do you do if you’re hired to maintain and enhance a tangled mess of code, most of which is still delivering significant value to the client, but which is rough around the edges, broken in some places, unstable in others, and so on? I spend much of my development time on one such system—used by a small company of ~20-30 users all day during the working week. What follows are some lessons learned from working with this beast. Stability is Key Every decision you make needs to be based on how it will affect active users. Make sure your basic infrastructure (servers, etc.) are more than beefy enough to handle your usual user load. When building new functionality, don’t take risks that might cause instability or system-wide crashes. If you need to build intensive routines that churn through your data, try to keep them cordoned off in an area where their intensity won’t affect the day-to-day […]

0 650

Growing Pains: Transitioning from Developer to Technical Lead

Of all the hats I have worn in my technical career (developer, technician, accountant, therapist…), “leader” is the most uncomfortable one. It is a word that is loaded with a responsibility that I do not always want, but it has also proven to be the most rewarding. I just looked up and realized that over the last few years, I have transitioned from being a solo coder to managing a team of six full-time developers. Learning how to juggle all of the responsibilities, increase productivity, and maintain sanity have been an interesting journey of growth. I started as a software developer right out of college. I was a passable developer when I started, but I was lacking in discipline. Working with experienced and patient colleagues and mentors throughout my early career helped me gain that basic discipline and learn how to communicate effectively with customers and team members. I was given the freedom to make mistakes, and I learned from those mistakes and got better. I didn’t see it at the time, but I was also learning how to lead a team by being a member of several highly productive teams. Prioritize Team Goals My team grew organically, along with […]

1 847

Cybersecurity for Small Business

Going to work for yourself can be a hugely liberating experience. When I first made the shift, I came to fully appreciate the empowering distinction between the question, “Is it OK if I take Friday off”, and the statement, “I’m not available Friday”. But for every question that boosted my confidence, there was at least one causing a new worry. As a programmer, one of the biggest was, “What if I’m the victim of a data breach?” A recent report sponsored by IBM indicates that the typical breach can cost companies as much as $4 million per incident. Even worse, they estimate that 1 out of every 4 companies worldwide is likely to experience some kind of breach in 2017. Fortunately, it doesn’t take a lot of work or money to improve your odds. At Anchor-Buoy Software, I’ve found spending a little time setting up good security practices buys a huge amount of peace-of-mind. What kind of data breaches should I worry about? There were two main types of security breaches that we were concerned with: Someone stealing data from a system and sharing or selling it. Someone stopping me from accessing my own (or a client’s) data. Although the […]

0 1277
Illustration by Sam Falconer

Learn More by Doing Less

Two years ago, my daughter was gearing up for a move across the country to enroll in the Ada Academy, a Washington-state program geared towards improving the participation of women and non-binary people who want to become software developers. She was concerned about her ability to absorb, integrate and apply the new information at the accelerated rate that the program expected. She found a method that resonated with her, and she shared it with me. She gave me a book by Professor Barbara Oakley called A Mind for Numbers: How to Excel at Math and Science (Even If You Flunked Algebra). After reading the book, we both took advantage of a companion online course at, titled Learning How to Learn. Dr. Oakley’s approach focuses on understanding the mind’s limited capacity for retaining and integrating new information. Over-learning (trying to retain too much information, over too little time) is often counterproductive. For my daughter, limiting her conscious focus to shorter bursts, she was able to retain more information, understand key concepts, and – most importantly – better understand the relationships between the concepts to know how and when they complement each other. With some adaptations, this has worked well for […]

1 1727
Adam Aronson

Expect Change, Be Prepared to Adapt

Because they’re up against similar challenges to us custom software developers, I’ve grown a soft place in my heart for general contractors. Recently we had to replace the roofs on the front and rear porches of our 1926 Sears home. My wife Rebekah and I met with a contractor to survey the work and come up with an estimate. After some measuring and requisite scratching of a pad with a pencil, he tossed out a number. Prior to his arrival, Rebekah and I had played our own numbers game. We came up with a range that we thought would be needed to get the work done. It turns out we were close! After the initial elation that we had prepared ourselves well, I asked the roofer a question that demonstrated that we – homeowners and GC – were in it together. “What kind of things might you uncover that would impact that estimate?”After some back and forth about rot and flashing and decking materials, I put a bow around our collaboration, “Surprises suck, eh?” I thought he was going to hug me. In my 25 years of consulting, I’ve never met a business owner who loved surprises, and custom software […]

0 717


Lost your password?