In building organizations two of the toughest activities are raising capital and user acquisition. Since this is not a fun activity I have often tried to delegate it (up or down or left or right) but this usually does not work for me. In some cases I have found successful partnerships like working with CTNewsJunkie to build my voter guide app. Nobody would care about my voter guide if I just put it on my own site, but with a news organization behind it the voter guide gets much more use and it provides a useful tool for readers. The partnership works because in the end both sides win.
In my years of working in politics and non-profits raising money has been one of the most avoided activities. Raising money is a grind and I think most people do not wish to do it. It is especially hard to do with cold contacts. The rejection rate is high. So to effectively fundraise you need to get to know people with money and tell your story to them. So you go to lots of social events to get to better know people. Then you are able to ask folks for money when the time is right. It especially helps if you can show your traction or impact. People want to support things that are making a difference.
The result of this is that people who are good at these activities are worth a lot to organizations. I have found it especially challenging to find and recruit people who are good at these things. Even people who seem to have a bit of a knack for it, often prefer to do other work. I can empathize because I often feel the same way. When I have to choose between raising funds and building things, I would prefer to build things. But sometimes other activities have a bigger impact, especially when an organization is starved for talent in those areas.
Over the weekend I continued updating vote.ctnewsjunkie.com which is the voter information site that I launched it with CTNewsJunkie two years ago. The site began with the idea that we wanted to provide a utility for people to find the candidates running for office and then read surveys that these candidates would fill out. No other media outlet has attempted to compile information about all the candidates running for office in the state, nor interview them all. We have learned a lot from doing this over two years.
The first is that getting candidates to fill out surveys is challenging. Our main tool is an email list we have of all the candidates. We send them information including a login and links to the surveys. From their feedback we learned our login flow was a bit confusing. So over the weekend in addition to providing links to the candidate profile we added a link to the survey itself. Now as long as a candidate manages to login (whether from our email or a password reset email) they will be able to access the resources we need. We also removed some confusing elements of the login page that were causing people to try and sign up for a new account.
The second is that there is a lot of back end work in making an app flexible for future elections before one time use. Our two years of experience uncovered abstractions that we did not see when we first started. However I do not regret waiting this long to implement them. While it was a bunch of work, we learned so much more from implementing the basic case and putting it out there than we would have from over-engineering the first version.
Yesterday I went for my last long practice run before the B.A.A. Half Marathon. It was an entirely different experience from the first practice run a week before then. The difference in that experience translated into a material improvement in my pace. I went from an 8’34” pace feeling miserable to an 8’04” pace ending feeling comfortable. I learned an important lesson: fuel matters.
Before the first practice run I consumed waffles which did not at all sit well in my stomach. I ran the whole run feeling as if I wanted to vomit. I was in pain and it weighed me down. The second practice run I scrambled some eggs, ate some nuts, and had a Clif gel before and then during the run. My stomach was fine. I think the magnesium in the nuts aided in warding off cramping. It was an entirely different and enjoyable experience.
Fuel matters off the race course as well. As I have scaled back my caffeine consumption I learned how different my energy level can be throughout the day. My mornings are highly productive. Late afternoon is low energy so I try to sequence my work to match it. I like to dig into big programming problems of writing tasks during my morning hours and then reserve meetings and testing for afternoons. The less energy I feel the more important it is to have things clearly enumerated in our issue tracker, so if things are not enumerated in there then I will spend time re-syncing it. Sticking with activities that align with my mental state makes me more effective.
One of the biggest challenges I have seen in the development of technical projects is finding good product management talent. Product managers can have different roles and responsibilities depending on the organization. However they are generally responsible for helping the team build the right product. They typically do the translation of user needs into tasks for software developers. They often also serve as product owner and manage the work of the development team as well. Good product managers have technical and people skills, which is why they are hard to find.
Many product managers come into it in the crucible of projects. A software developer with people skills is nudged by management into becoming a product manager. Developers are product manager adjacent and work with them almost daily so it makes sense that at least some would acquire these skills. In an organization without product managers a general manager often discovers they are a product manager but have not been given training in this discipline. These are both imperfect paths.
The challenge is that many organizations lack junior or entry level product management roles. In an ideal world an organization would hire people with expertise in product management and then have them teach other people how to do it so that those people can take the lessons and best practices into other projects. There is clear demand for this sort of role. At Code for Boston I have seen an increase in the number of non-developers that have expressed interest in being a product manager but a strong aversion to being thrown into the crucible to do it.
Solving this problem is important because product managers play an important role in the development of digital products. Forcing developers to be product managers leads to its own pile of problems and sending folks without product manager experience into the crucible is an expensive way to train people in this discipline. The tech industry needs to cut a better path.
As a software developer one of the things I have noticed that my peers are passionate about are their tools. There are always new tools. Fancier tools. Different tools. Sometimes the tools are generic. Sometimes the tool is a new package manager or programming language to use. While I have a set of tools I use and I love them, I am not nearly as passionate about my tools as I am about building software for non-software people. Some people are passionate about making guitars, and others are passionate about making music.
One consequence of this is that I generally do not find learning a new software language or tooling to be an exciting activity. Many of my peers find the tiny changes and differences in software languages and tools to be interesting. They love learning a new language or tool for the sake of exploring it. I know this feeling because I used to have it. However now that I have a toolset that I love and use I tend to view new or other tool sets as a barrier to me making my products. My barrier for feeling like a new technology is worth it is now much higher. Unless the project is integrating with a legacy application, a new technology better bring something compelling to the table.