Knowledge Decay and Accumulation

Ben Northrop wrote about Reflections of an “Old” Programmer which isn’t really about ageism, but rather how a long term programming career seems different than other professional careers. The message is how to stay relevant in a programming career over a long period of time. He sees it as a balance between knowledge decay and knowledge accumulation rate.

It reminds me of Sarah Bray’s concept that you can measure progress by growing faster than you shrink. Ben’s grow is knowledge accumulation rate. The shrink is knowledge decay. He suggests taking a long view on career choices in order to accumulate the right kinds of knowledge to give your career legs.

I’ve seen quite a few colleagues take the bigger pay check at an employer where there’ll be little opportunity to work with new things and learn. In 5 years, they realize that much of their valuable knowledge has evaporated and their pay is way out of whack with their actual worth.

That title of Sr. Developer or Manager means you will spend more time becoming a leader, helping junior devs, reviewing code, attending meetings, etc. So much in fact, that Ben warns:

All of this is eminently reasonable, but it comes, subtly, at the expense of our knowledge accumulation rate.

This is a topic also explored by Cal Newton: Shallow work stops you from getting fired, but deep work is what gets you hired.

Northrop reminds us to invest our limited time learning durable knowledge; concepts like algorithms, security and performance optimization that have a longer half-life than say, an unproven JS framework.

There are some relevant frameworks for how to think about relevant, future knowledge.

  • Uncle Bob’s Type Wars post looks at motivations of past programming languages in order to predict future winners.
  • Thoughtwork’s Technology Radar is a detailed identification of promising tech trends. There are also several opinions on building personal technology radars.
  • As you would expect, there are so many resources about how to choose a JS framework.


  1. Take a long view and consider sacrificing short term salary gains for long term career stability by investing in durable knowledge and skills.
  2. Use a technology radar to focus on and discover durable knowledge.
  3. Grow faster than you shrink. 😉

Aspect Services

If your mobile agency is still billing by hour instead of by value, then one way to begin that transition is to offer aspect services as proposal options to your clients.

Aspect services are discrete, packaged work items that your firm specializes in or has a reputation for doing exceedingly well. By offering your premium capabilities as value priced proposal options, you can increase profitability by:

  • Higher pricing for specialized expertise
  • Exploiting internal productivity gains
  • Increasing trust and therefore the probability of return work and referrals

Specialized Expertise

If your agency has a specialized niche, then look for well known, repeatable tasks. For example, many clients don’t have API endpoints that are optimized for mobile applications. They may not understand the performance issues that can occur in a mobile app as the result of a poorly designed endpoint. If the client values performance in a tangible way; for example, knowing that a poorly performing checkout API results in abandoned carts, then analyzing their backend API is a high value service. When a team has experience wrapping legacy systems with REST APIs, then an endpoint analysis service could be offered to find RESTful alternatives to legacy systems.

Another approach is to create services based on extensive knowledge of external tools. For example, if your team uses fastlane, then you might define an aspect service for beta and production launch automation.

Harvest specialized expertise using this action plan:

  • Identify recurring themes (billing, analytics, etc)
  • Identify specializations
  • Identify tool expertise
  • Extract and systematize aspect services
  • Generalize and understand costs and effort
  • Price according to service value, not cost + percentage

Some examples:

  • Security Audit
  • API Performance Analysis
  • Billing Flow Analysis
  • Motion Study
  • Release Management

Productivity Gains

Hourly pricing reduces an agency’s motivation to improve their efficiency. There is no financial incentive for finishing a project early. In many cases, it is a disincentive to finish a project early if you’re equating the budget with expected revenue.

It’s different for aspect services. Since the pricing is fixed (based on value), every optimization implemented to make delivery more efficient results in increased profitability.

Increase Trust

You will always be punished for hourly estimates. If you go over budget, the client will be upset that the project was underestimated. If you come in under budget, they question your original estimate and think you are sandbagging. In either case, hourly pricing trust can only be enhanced by coming in right on schedule and that just doesn’t happen often enough.

Aspect service pricing gives you a tool to mitigate trust issues. The additional profit from services provides a buffer that you can draw on as needed to compensate for hourly estimate risk. This might take the form of discounts or credits that can be offered to the client.

In value pricing, trust is established by transferring budget risk from the client to the agency at a premium cost. For hourly billing, the client takes all of the risk that the project will be completed within the proposed budget. Value pricing puts the risk on the agency, but at a cost to the client.

Aspect services are a transition step to value pricing. Aspect services don’t solve the client risk problem, but the increased margins allow some financial breathing room to keep a client happy when the budgeted hours fall short.

Proposal Options

Your sales qualification process seeks to understand what is important to the client. A simple checklist is sufficient to identify a client’s interests and priorities. Those checklist items should be tied to the aspect services that you have identified with your team. For each priority that a client highly values, offer a service to deliver a project with those aspects highlighted and prioritized.

Aspect services are priced for their intrinsic value. This allows the firm to get familiar with having value conversations with clients before full transition for value pricing. For aspect services, the conversation is about something that the client values (and needs) without expressing that value of the business domain.

You proposal should include your traditional hourly pricing (based on your estimates) as the base option. In addition, offer the aspect services that align most closely with your clients’ concerns as incremental add-ons.

A few things to avoid:

  • Don’t offer services that your customer doesn’t value.
  • Don’t try to offer aspect services that are poor fit for the project scope. If the project is a design sprint and motion study, then don’t offer a user analytics option.
  • Don’t offer more than two or three service options. Focus on the client’s top priorities.

Clients may ask why these services are not part of the base hourly proposal. To avoid this, describe the service fully in the proposal and make it clear what the value is to the success of the project. Describe deliverables in the context of the value they provide.

Aspect services are a great way to handle pricing pressure and requests for discounts. Make clients earn their discounts. Basing discounts on the number of aspect services a client has purchased is a great way to approach that.


When you implement and deliver aspect services, track the implementation time separately from the project’s base hourly tasks. You won’t report that time to customers, but it will help analyze efficiency gains and the financial effect on your agency. It’s a good metric to plan future efficiency efforts.

Aspect services are an excellent, feasible transition step from hourly to value based pricing. Your development organization is full of talent and latent capabilities that can be packaged in a way to align with your customers priorities.