5 ms·
Yep, this times a ten thousand. It took me years to unlearn all of the "marketing is all bullshit" attitudes I grew up with. Whole different set of skills to
by Frondo 10y ago
Yep, this times a ten thousand. It took me years to unlearn all of the "marketing is all bullshit" attitudes I grew up with. Whole different set of skills to learn, and not like, say, imperative->FP. Much harder.
- throwaway58182 10y agolol - yes, me too. Used to really dislike the marketing guys. Once you're running a company though, you discover marketing is what counts, more than code quality in most cases. Though I'll say keeping technical debt low has allowed this product to grow for many years.
- daveguy 10y agoKeeping technical debt low... does that mean you are regularly refactoring or changing your technology stack? Just less debt due to a simple desktop design? Good unit tests from the beginning for easy refactoring? Any pointers on how you kept tech debt low and what that means to you?
- pdimitar 10y agoYour question deserves a whole thread for itself, but I hope I can clear some fog around it. Low technical debt mostly revolves around: (1) Keeping your code maintainable. Example: the framework you're using (like one for making a website, or JSON API, or accepting emails and triggering actions, etc.) gets a new version. You stop what you're doing and you go and upgrade. Why? Because the older version of a framework/library you use, the less chances you have to get a bugfix from the maintainers when you inevitably stubmle upon a blocker bug one day. Being able to [almost] always switch to the newest version means: (1.1) Keep a good collection of unit / integration tests. They don't have to cover 100% of the project. If you have a good integration test suite covering most of the customer scenarios, you're already in a much better shape than most projects on the planet. (1.2) Keep an eye out of the changelogs and version releases of all frameworks and important libraries your project depends on. You must have a good idea what's changing in there. It might help you remove WTF code pieces that were working around a defect in the framework/library which suddenly is fixed in the newer version as well. (2) Keeping your code evolvable -- if at certain point of development you conclude Ruby on Rails isn't cutting it, you must be brave and decisively and quickly replace it with something else. There's a huge price to pay when you're hesitant. Don't be hesitant! If your code has separation of concerns, the various pieces have single responsibilities, if it minimizes state sharing and is regularly tested -- that's a project you won't be scared to migrate to a much newer version of your framework, or switch the framework (or even the language) entirely. (3) Keep a huge internal documentation of what you want improved. When you're in a hurry to deliver a working product customers can use easily, you inevitably make compromises. Document them. Be ruthless and never make exceptions. No "I am too tired to write this down right now". NO! Scribble it on a napkin if you have to. Dictate it to your smartphone. Do whatever it takes. Eventually you'll return to your computer and write it down. I use a private Trello board for that, works very well for me. It has ~60 points in there but you know what? 3 months ago it had 150. ;) So keep your code tested and documented. Be real with yourself and document (internally, for your eyes only) all of its warts. Realize its limitations. Find the value it brings to the paying customers. Maintain that. Get ideas on how it can attract more paying customers. Implement them. Bottom line: BE ON TOP OF YOUR CODE, always. Realize that the code itself doesn't change if you don't change it (not like GitHub will maliciously modify your source files) but if you don't change it, then the business value of your code rots over time. It's really not any different compared to any other revenue-bringing asset. It needs maintenance and support (and evolution/expansion when you want to grow).
- daveguy 10y agoThank you for this detailed and informative reply. I have bookmarked it and next time I see a discussion about technical debt on HN I will link to it. If my question needed its own thread, your answer needs its own stackoverflow page. Cheers.
- pdimitar 10y agoYou are very welcome. ^_^ Let me just point out that what I commented is a generalization and simply an excerpt of all the good practices I found during my [almost] 15 years of commercial experience. Understanding your place in the world (namely what business value does your code bring) and worshipping communication -- even between your current self and your future self -- are what I found to be the gods I worship during my work, and it made me much more productive and valuable for my customers/employers.
- Frondo 10y agoOh yes, I sold the prototype version of my platform for a year before I had a chance to replace it. The prototype was custom pages on a Wordpress site (pretty slow to load, especially on phones, not easily scalable, etc), the new one's a .NET-based site, loads instantly on any device, and when I watch the server load, I can see that this thing will live happily on even a low-end VPS for a long, long time to come (lot of traffic growth so far, no increase in load!). Keeping technical debt low is good, money's a higher priority. It's a business. That never really hit me before. :)
- shostack 10y agoAs a senior marketer who has to combat this myth frequently, thank you. Modern day marketing is a complex orchestration of many parts that are often highly technical. Further, the discipline as a whole has some incredibly hard unsolved problems when it comes to measurement and analytics (attribution and viewability I'm looking at you). If anyone has a product with initial traction but is unsure of where to go next, feel free to ask, happy to answer questions.
- igk 10y agoDon't have a product right now, but are there any resources you can point to which have quality marketing wisdom? Or is this something you just have to learn as an apprentice to a good marketer? I am always torn because while I can appreciate good marketing, a lot of the marketing and advertising Industry (which too me seem like different things) seems to be bullshit. I really like it when there are marketing campaigns that try to understand me and help me. Well designed product descriptions for example. Or research to understand customer needs, actually useful newsletters not only about the company itself(there is a really good startup tracker whose newsletters i read for a while)that stuff I get. I also get advertising as a separate or subfield of marketing, when it is in the case of "hey, we exist, we do this, you might be interested". Helping me find stuff which is useful basically. And usually, the good products don't need to do more(at least it seems like this?). Like rsync.net had an advertisement on resist once, that they now supported ZFS and that of you did not know why that was cool, you should not click the link. That spoke to me, conveyed information clearly and made me aware of rsync.net What I don't like is stuff like YouTube ads trying to sell me beauty products. That will get them nowhere. Or the bullshit newsletters to build "engagement" by automatically subscribing you when yiu make an account, then listing "10 freaky ways people use $product. Number 5 will surprise you!". That stuff will turn me off products, even if it is good.
- Frondo 10y agoThis is going to sound a little pat, but if that's what you like in marketing, you're probably not alone. You could probably do well to try that exact set of behaviors on other people, with the outcome in the back of your mind, "will this person pay me to solve the problem I am talking with them about?" If yes, then that's it, you're done. Take the money, give 'em the thing, and do it again. :) For books, for getting a start in marketing, I like "Guerrilla marketing in 30 days". Biggest shift, though, is just mindset; going out and talking to people again and again until you learn what matters to them. It takes a lot of time, and when you're not used to it, it feels like it takes way more time than you're actually putting into it. Eventually you do learn, this is what these people have in common (they're members of some industry, field, hobby, affinity group), this is where they go (online, offline, in-town, conferences), this is how they like to be marketed to (online ads, postcards, in-person events, etc). Just takes time and effort, more than anything. Pretend you're learning a language, and assume it'll take that long to get conversational. :)