and now a lot of things suck No images? Click here No assistants, no craft, only profitApologies, this newsletter is late. It was written but apparently I somehow failed to send it, operator error most likely. Thanks to a friend for letting me know. The CMS work keeps rolling. I got some storage API mostly implemented, for storing your entity types. I've poked an Elixir community member I respect to see if they can set me straight on typespecs, Ecto Changesets and Norm and what combination I might benefit from in this. Because that stuff has never been my strength and I find the idea of spec:ing types three times over absurd. Sometimes it is very powerful to actually ask someone that enjoys thinking about problems you dislike to make something more enjoyable. Jason showed us some UI work around creating and altering entity fields yesterday, very cool to see that move forward and Charles is digging into how we should be doing migrations. So things are moving. Publishing since last newsletter I did a livestream last friday on building a web crawler. I really enjoyed it and I plan to keep hacking on that today. That one is available on YouTube. It will show up on the site but I've had a busy week. There was no Teaching Elixir this week due to my friend feeling under the weather, he is feeling better now though. We've released episode 3 of Regular Programming and it focuses on communication. Please send me any feedback on that show and how you like it. Early days and we enjoy any reponse signal we get. Livestream today Today's livestream will be way early at 13.30 CEST on the YouTube channel. I am aiming at making the crawler much more well-behaved so that it won't do too much duplicate work, limit concurrency per domain and if time allows, respect robots.txt. Once that is better I'll feel more okay about unleashing it on the web. The Business Things are good. Contracts are signed and I'm presently accelerating up to cruising speed on my main chunk of client work for the coming months. I'm thrilled to see this will include some work for my Assistant Developer during one summer month when she is off of school and can/wants to work more. I've also had someone interning that will likely also help out on this project. This means two arguably junior devs landing professional experience which is a big win in my book. And with another client I'm getting another junior techie (QA/Tester) on board. I want to encourage anyone who has the trust of clients or a role with technical influence to look for opportunities where you can effectively utilize less experienced talent. Getting your first chance in this industry is hard and arduous and it shouldn't be. And that's up to us that are already established to fix. As I'm about to get into, the incentives aren't there for leadership and markets but we have a fair bit of sway in this case. Anyway, feels good to get rolling on some new ground. Margin is a necessity for good creationWhat a skeletal wreck of man this is, I know I'm stretching myself thin whenever I don't have space to lie down on a couch and think about things for a bit. Currently I'm suffering a bit of that. My first year of life as a parent and working has been quite tightly scheduled. Sometimes I schedule space but not really often enough. Something I did which creates margin is bringing on an Assistant Developer, it allows things to happen without me doing them. Another thing is that my wife is getting more involved in the business (she already does the books, trained accountant that she is) and will start picking up some more assorted work. That should create some margin. I've never seen an assistant developer role before I decided to make one and I think it would be unexpectedly powerful if more companies did that. I know I do better work when I have the space to sit with a problem. Time and space to think through a solution. The mandate to say no and throw out a solution when we realize it isn't good enough. But we're agile, lean and all that right? We cut out everything unnecessary for the benefit of shipping. MVP, PoC, IoT, mostly PoS. We do UX now which apparently means we just remove things or don't build them at all. Can you imagine what Microsoft Office would be if it was conceived of now? It would have less capabilities than Google Docs and Apple Pages intersected. You essentially can't build Excel today. So most organizations started to get email and other neat conveniences of the digital age and started trying to save cost off of that. Or I imagine this is where that must have started. I've never worked in a company where there were multiple assistants or secretaries. With any luck we had the person who kept the physical office from collapsing by stocking the coffee, contacting the landlord and all the fun practicalities. But there was no one to assist with .. anything. No one to facilitate, no one to filter, no one to trust and delegate to. Also coincidentally very few entry-level positions. So almost everyone that isn't management has to multi-task, self-manage and can't delegate to anyone else. And doing that effectively is a skillset that not everyone is particularly practiced or proficient at. And we pretend that this is more efficient and has no cost. How much is a senior developer's hourly rate again? And then we needed to move faster. The startup craze has probably pushed this more than anything. Prove your thing and iterate. Don't build all of it. Minimum. Viable. Product. And I get why that can be important. But it absolutely screws the long-term. We get applications that do one thing well (UNIX philosophy, yay?) and integrates with absolutely nothing (oh, so that's a nay). And after a while they integrate with Jira if they are enterprise or they integrate with something else that is highly specific. Because we don't have file formats anymore, we have SaaS and highly varied APIs. They don't offer settings, keep it simple, or rather cut the scope to the bone. They don't generalize well. They build for a niche or an opinionated workflow. Because they know they can't beat Excel. So we removed the people that provided buffers and were good sinks for the busy-work and practicalities from all org charts, especially in tech. Then we cut the ambition and scope to bone to make sure can still get anything shipped. And then we charge very little money for the product but we charge it forever. And if our product fails our customers are left with nothing. Turns out this is profitable and much less risk for venture capital if they can keep companies from trying to do a good job and instead execute a minimal but viable enterprise until they know whether it works out or if they should kill the venture. These are not generally very ambitious plays. They are not ways to building something truly magnificent. You can iterate yourself to something good and I think SaaS and keeping things tight make a lot of sense for building small and sustainable business for some types of products. But I'm also thoroughly unimpressed by the overall climate of tech product right now. Very few SaaS are doing the hard work of making it easy to use in a general way. Even with the growing no-code movement it isn't like anything really talks to anything else without custom integration work. The closest thing is Zapier I guess and they certainly do some really hard work. I don't use them because I'm a bit too dumb and try to DIY things but I respect how they are clearly managing what must be a hellscape of integrations. I guess my point is that when we cut the margins and we cut down the scope, whether we call it simplifying or focusing, we also cut down on the chances of building something really great or exceedingly useful. Other organizations with other incentives sometimes produces very atypical products. Take OBS Studio, the open source streaming application. It has settings, knobs, options, properties, filters and complex features. Because it does something extremely powerful in a flexible way using a mix of standard tools and a lot of hard work. The profit-driven startup that tried to buld that streaming tool would lock it to mobile apps, or tie in with a SaaS cloud service, it would be a simple one-click to start thing and it would be rubbish to any advanced use-case. So many of our tools are getting dumber and less flexible. And the market pressure that pushes for this remains, the industry trends behind it remain. It will keep happening. But there is plenty of space and even money outside of that. If you want something different you very much have to create that difference and go meet the others that are different. You might have to embrace whatever pain that comes with it. Open source/Free software have other incentives and tends to be different, more powerful but also sometimes less convenient. Some professional grade software and some small shop software (especially on the Mac) tends to be different as well. At some point we hit an inflection point and worse just became better and that rather frustrates me. We build organizations with no white-space and apps that have too much of it. Do you achieve margin? Do you slow down and work things through? Are you allowed to build things well? Curious to hear your thoughts at lars@underjord.io or you can start a conversation on Twitter where I'm @lawik. Thank you for reading, I appreciate your attention. - Lars Wikman |