Status update, new ViEmu 2.5 and Codekana 1.5 prereleases

April 22nd, 2010

It’s shaping up as an exciting spring for ViEmu and Codekana. A lot of things for which work began a long time ago are reaching their conclusion. First point is the new ViEmu and Codekana pre-releases available today, featuring exciting new functionality and the new licensing system:

Pre-release announcement and download links at symnum.com
ViEmu 2.5 announcement
Codekana 1.5 announcement

You see I’m starting to use the new http://www.symnum.com website, for Symnum Systems which the new incorporated name of the old NGEDIT Software. Expect a progressive phase out of the old name and roll-in of the new name everywhere. The customer-area where new-style license keys can be downloaded is already at the symnum.com site.

The next step is releasing the VS2010 versions of ViEmu and Codekana. They are oft-requested, so here is some information about the outlook for them.

ViEmu/VS2010 is starting to work, and we’ll probably have a fully functional beta in a few weeks. The first release will be basic but solid. It’s taken a lot of work to move everything from native C++ and COM to managed C++/CLI and .NET, but this will allow us to take advantage of all new functionality in VS2010, which is a lot, and provide a much greater ViEmu in future versions. The license for ViEmu/VS2010 and for ViEmu/VS2002-VS2008 will be the same. For those who bought ViEmu/VS less than one year before the new version, it will be free. For those who bought before, it will carry a small support-extension fee, which will also entitle you to 1 more year of free upgrades for both ViEmu/VS “Classic” and ViEmu/VS2010. I think it will be great value for everyone, and it will ensure most people will choose upgrade.

Codekana/VS2010 is a different beast. The new editor in VS2010 is so much more flexible than the one in previous VS versions that we will be able to provide functionality that has never been seen. We have also decided to do a reboot of the product, and we are bringing in a lot more to the table in parsing technology. It will still take us 2-3 months to have something to show for this, but I think it will be a release that will make many developers have a serious look at our product and our technology. I still have to think on the details of the license, but it’s clear that the license will be the same for Codekana “Classic” and Codekana/VS2010, and that it will probably carry a really small support-extension fee.

For any news, you can follow me on Twitter, or you can get in touch with me via email or using any of the support form.

New Codekana web site, preview of the J1CK Twitter client, and next steps

September 24th, 2009

Just yesterday I published the new Codekana web site. You can have a look at it here:



http://www.codekana.com

For comparison, here is a capture of the old main page (click for a full size version):



The goal with the redesign was to better communicate the benefits (hence the animated GIF and the key-features extract), communicate better the fact that it is fairly used and liked around the globe (hence the customer map and testimonials page and link), and to better show the many things available via the Codekana web page (hence the sidebar with the links).

I will be happy to hear your feedback on the redesign!

J1CK Twitter mobile client
On other front, the J1CK project is advancing nicely, and we are about to release our first public app: a Twitter client for Java mobile phones. I have posted a few screenshots to whet people’s appetite before the first public release at the blog over there: http://j1ck.com/blog/2009/09/17/j1ck-twitter-client-for-java-phones. If you’d like to get early access to the beta, just email me via the email link on the sidebar, post a comment to this blog post or the one on j1ck.com, or use any of the contact forms on either page.



I will be posting both about J1CK news and about general usability topics over at the J1CK blog, so you may find it interesting to subscribe. Usability is in such a poor shape everywhere that the sources to draw interesting topics from is endless.

Next steps on all fronts
This is going to be a very, very active Autumn. I really want to push all products forward and get to the next stage.

For ViEmu, my immediate next stages are the new Symnum/NGEDIT customer portal, which is half-done (done in Python using MySQL, web.py via FastCGI on Apache for the web front-end), a ViEmu 2.5 with a few very interesting new improvements (which will be the first paid upgrade for those who bought over a year ago, and the first paid ViEmu upgrade ever), and then ViEmu for VS2010 [EDIT (some people asked about these): the same upgrade fee will include ViEmu 2.5 for VS <= 2008 and VEmu 2.5 for VS2010. And if you buy ViEmu now, both the 2.5 version and the VS2010 version will be included in the standard one year of free upgrades, so there’s no need to wait].

For Codekana, I want to release a Codekana 1.5 with a few improvements, and then go straight to Codekana for VS2010. The new editor technology in VS2010 will alow incredibly powerful new features for Codekana. After this, I have already planned the route to move Codekana forward to the next level, and I think I can turn it into a much more useful and poweful tool in the following months. I have been talking to a very good programmer who is a good friend of mine too to try and get him to work with me part-time, and he would be helping realize this vision. If this happens, it will really help get there much faster, and the business will surely improve as a result.

I have made great advances lately in my technology research for my up-and-coming text-editor kodumi. It’s been a very theoretical research since 2005 when I started, but I have finally made enough advances to start implementing a first prototype. I’m working in Python, as it’s just a prototype, and it should help work with less overhead than C++. Hopefully, it’s just a matter of several months before I have something of practical use. After this, I plan to start using the technology in Codekana first, and in the stand-alone editor later.

Finally, J1CK advances very well thanks to the great team we have, and we hope to do great advances by the end of the year: Blackberry and iPhone support, and many more exciting offerings.

Conclusion
As you can see, my hands are really full with work in all fronts. I feel I have the energy to make everything get to the next level, and I do hope that there will be some qualitative advances in all products over the next few months!

New name: “NGEDIT Software” is now “Symnum Systems”. And more.

July 10th, 2009

“NGEDIT Software” has a new name: “Symnum Systems S.L.”. Properly incorporated this week (NGEDIT Software was a DBA). “S.L.” is the Spanish equivalent for the US LLC or the UK “Ltd.”, a limited liability entity. My always-in-the-works-text-editor won’t be called NGEDIT anymore, and I didn’t really like it as the company name, so I’m happy to have changed to this new name. I’m also happy to have the business incorporated now, being able to separate personal and business affairs better.

The new name comes from the frontier of the symbolic and the numeric. The numeric is that which exists, but you cannot see. The symbolic is that which you can see, but it really doesn’t exist. This has had me fascinated for years.

Apart from the new name, and the new legal entity, everything else remains the same. I am the sole owner, and plan to remain so, so nothing of material relevance to customers changes.

I’ll now move to the new name gradually. It’s quite a bit of work: mail addresses, references in different places, keeping old URLs working somehow, etc… I’ll probably keep this blog with its current name (while all other uses will disappear). NGEDIT is a software entrepreneurial project, for over 4 years now, and this blog is where I’m sharing all the information and all the stages. I think it’s fitting to keep the name: “The growing pains of NGEDIT”. The name change is one of the many growing pains.

On other fronts: the new licensing system is fully done (key generation on the server, integration with Plimus, key checking in the app, UI to enter the key, etc…). I only have to apply it to all the 4 products, and then, the other “biggy”, I have to transition all existing users to the new system. I’m doing this with a new customer area that is half-done. This is the part that will still take some effort. But I’m hopeful it will be useful for many other things: special offers, better customer support, extra customer benefits, etc…

Also, all my sites were down for many hours yesterday. It was a problem with A Small Orange web hosting, which was hacked. I’ve stopped other things, and I’m implementing a long-due auto-web-deployment system to allow moving easily. It will also allow me to update the web more frequently, by reducing friction. It should be ready quickly.

Feel free to comment on the new name, I’ll be happy to hear your feedback.

First baby steps of ViEmu in Visual Studio 2010

June 15th, 2009

Today, I’ve gotten to the point where basic navigation keys work in ViEmu under VS 2010: ‘w’ to move to the next word, ‘0’ and ‘$’ for start and end of line, etc… it’s all very basic, but it’s a “proof of concept” and it hasn’t been easy.

This means I got to compile the vi/vim core in managed C++, a superset of regular C++ that targets Microsoft’s CLR (the .NET runtime). I am not compiling anything in “native mode”, all the code is now .NET managed code. I wasn’t sure this flavor of C++ would support all the things I do with templates, etc…

I had managed to avoid doing any .NET work at all until now. Now it’s the end of this “free ride” for me, so I’ve had to learn a few things. Also, mixing standard C++ classes with .NET-managed classes involves a few areas that are not very obvious. The help of several incredibly helpful people via Twitter has been key to addressing all of this: @tomasrestrepo, @TheColonial, @noahsmark, @richiehindle, @aaronjensen, @AaronMarten, @shanecourtrille and everyone else – thanks so much!

C++/CLI support in VS2010 is not as good as for C#. C++ is some kind of second class citizen in the .NET world. For example, there is no Intellisense support for C++/CLI in VS 2010. This is quite amazing, and a big loss when having to use an API you don’t know well, which is my case now.

Anyway, this is only the start. Any of the ViEmus is basically two parts: half of it is the vi/vim emulation core itself, which is shared between them all. It’s highly abstract C++ code, all templates, which is completely type-agnostic – it can work with any classes for character types, text views and buffers, host environment, etc… It stretches the abstraction abilities of C++ to the limit, so it can be somewhat baroque, but it has allowed me to have a first stab at a ViEmu for VS2010 in a couple of weeks, using exactly the same code as the old VS version, the Word version, etc…

But the other half is the integration code. Stuff like intercepting input, displaying the vi caret, hlsearch support, undo grouping, intellisense integration, window/view split manipulation, compatibility with other 3rd party products, etc… which is what gets you a real, high-quality user experience, and which takes as much work, if no more, than the actual core vi emulation itself. And the thing is that, for the VS2010 version, I have to reimplement all of it. It’s a huge amount of work, but I hope the result will be well worth it. I also hope this time around VS and the other 3rd party extensions will be less problematic to deal with than last time — but I may be in for some disappointment in this regards. I’m definitely implementing a few things in a different way this time, with the experience of what caused most trouble before. The input interception will definitely be different – some of its edge cases caused a lot of support issues.

This time around, as well, I’m incredibly lucky to have some quality attention from Microsoft. Last week I had a conference call of over one hour with 6 (six!) devs from the VS team. It was a great experience, I got to share my issues, doubts, and even complaints with the people behind Visual Studio. They talked me into trying some more civilized approach to input processing, rather than the “nuke” level stuff I was planning to go for first (a message hook), provided some guidance for some the issues and just made me feel they value what ViEmu brings to the VS ecosystem — it’s a niche product, but it’s very appreciated by its users, and I’m happy to see the VS team acknowledging it and helping out so much. I’m also getting a lot of help on the VSX forum, via email, and even on twitter, so this time around, the experience of hooking into an MS app is being much more enjoyable than the previous times.

If I had to sum up what VS2010 brings in terms of the editor, I’d say MS has made great advances in the display and visualization side of things, there is also a much better thought out and designed architecture for the actual text and text editing management, and it’s only the input side of things that they have still left in a quite poor state, like it was in the previous versions. The move to WPF also means that traditional Win32 tools are not valid now, which is also problematic for input handling.

I’m doing ViEmu first, but all of the knowledge and at least part of the work will apply to porting Codekana. I’m leaving Codekana second for several reasons: it’s the less popular product (but I think this will turn around at some point!), there are less users, the integration is less complex, and I think I will be able to do everything I want just using the new editor’s MEF-based APIs, without having to resort to ugly hacks like is the case with ViEmu. Also, I think I will be able to obtain much nicer results in VS 2010, with much less effort, so I’m saving the good part for later 🙂

Again, I’m finding that Twitter integrates greatly with all my daily work, not as something that removes productivity, but as a tool to share the good and the bad, to reach out for help, and to be able to communicate effectively where I am and where my products are. Writing blog posts quickly becomes a chore, as I think of things to add and try to write well. 140 characters is great to keep things to the minimum, and lower the expectation about the form, so that you don’t waste time in unnecessary effort. I might blog occasionally, but I am in twitter almost daily. It allows me to stay in touch with peers, customers, MS devs, friends, and it makes the daily work more pleasurable thanks to the social aspect. What’s not to like? I totally understand the spectacular success of Twitter.

My twitter profile is http://twitter.com/jonbho, btw, in case you want to stay up to date on my progress.

Started working on ViEmu and Codekana for VS2010

June 2nd, 2009

Since the CTP release in November’08, I had been meaning to have a deep look at Visual Studio 2010. I had had a superficial look, just enough to know that the editor is completely re-done, and that I’d have a lot of work for the new versions. A few weeks ago, Beta 1 was released, and I really had to start looking at it. I do need to have working versions on both early.

I started seriously looking at it last week. It’s been a bumpy ride:

– Seeing that the Spy++ tool hardly shows any HWND at all in the new IDE… it’s all a big messy HWND window! (what?)
– Realizing that the new editor, that uses WPF, is purely managed, so my old COM-based native-C++ approach is invalid (ugh!)
– Coming to terms with the fact that I need to do .NET coding, something I had managed to avoid until now (ahem…)
– Finding out that the new APIs to draw on the text editor window are much more powerful and will allow many nicer things (yay!)
– Getting all-very-excited about the totally cool things I can do for ViEmu, and mainly, for Codekana (wow!)
– Discovering that all the improvements in the display system are *not* accompanied by improvements in the input system, the new KeyProcessor doesn’t allow me to access needed keypresses… (bwah)
– Realizing that the old keypress interception methods are not valid, because of the WPF thing (argh!!)
– Realizing that many of the ugly compatibility issues with other 3rd party tools are coming back, in new and ugly forms (ugh…)

All in all, it will be a tough job, some things are not very nice in the new VS2010, but I think I will be able to provide very cool things in the new versions.

Sean Laberee and Noah Richards from the VS dev team are being helpful with the issues, and it will be great to have some of their help during the tough project.

I will be lurking in the new VSX forum (http://social.msdn.microsoft.com/Forums/en-US/vsxprerelease/threads), given there is little documentation, and that even with complete documentation, it’s never enough.

BTW, I find twitter more and more useful every day (http://twitter.com/jonbho).

Codekana and early-20th-century physics are related

April 2nd, 2009

I have just posted an interesting article on the Codekana blog:

“On the Speed of Light, Innovation, and the Future of Parsing”

If you like it, votes on Reddit and Hacker News are welcome:

http://www.reddit.com/r/programming/comments/89hg3/on_the_speed_of_light_innovation_and_the_future/

http://news.ycombinator.org/item?id=543457

It will hopefully bring some traffic over to codekana.com. It should also provide some insight into innovation, whatever your field is. And it details some of the parsing magic behind Codekana, which is interesting in its own right.

I’m on Twitter

March 6th, 2009

I searched for “viemu” and there were something like 15 mentions just today. I just had to join. Here is my profile there:

http://twitter.com/jonbho

Wish me luck.

February ’09 Status Update

February 16th, 2009

So, as promised, here’s a short summary the current status of my projects & where they’re heading.

Just to have them conveniently listed, my current projects are: ViEmu, Codekana, J1CK, and NGEDIT/Kodumi. ViEmu and Codekana are already working products, which I have been selling for almost 4 and almost 2 years, respectively. You can see each one’s website for more details. J1CK (previously known as “Kimua“) is a project with its focus around cell-phone web browsing, which we’ve been working on for a year now, and which is now starting to become a working prototype. Finally, NGEDIT is the original project I started with, the text-editor-to-rule-them-all, and which gives name to this blog and my company.

ViEmu and Codekana

First to ViEmu and Codekana: the short version is that the financial crisis seems to be hitting hard, and sales are lower than they used to be in early to mid 2008. I say the financial crisis, and the general bad state of the economy, because this is the only explanation I have for the slow sales.

Since this is my main source of income, I do have to take measures to reverse this trend somehow, or supplement these sales with other revenue. So that you will have an idea of the current sales profile, I’ll tell you that ViEmu sells much more than Codekana, and that among the ViEmus, the Visual Studio version is the main seller by a long shot.

I don’t expect sales of the other ViEmus to grow much in the future. On the other hand, when I find the resources to implement many new features, I do expect Codekana will grow a lot, and that it will outgrow ViEmu. The potential audience is much larger — it’s just a less mature product.

J1CK

The J1CK project is shaping up greatly. The whole system is already working, and we already have several demos. You can get a sneak peek of one of its early (still in beta) applications at http://j1ck.com, where an animation shows our specialized Wikipedia browser.

For a change, I’m not doing this project alone. I’m doing it with a great team of other people, and I’m not coding anything at all myself, I’m doing product design & business tasks. We’ve had a lot of interest from several presentations, and we’ll be doing a pilot installation shortly with a local carrier. Also, in order to pursue all open leads, we are planning to get some external investment soon.

This project is hugely promising, it’s advancing well, and we do expect to start getting great advances and some sales during 2009.

NGEDIT

NGEDIT, the text editor, is still in a long research and development process — it’s not frozen, though. I didn’t want to do “yet another text editor”, so it is involving a major research effort. I’m designing a new programming language, or more than that, a new programming paradigm. The base is not imperative, object-oriented, or functional. I’m not totally sure yet, but I think that it’s not even Turing-complete.

Basic research as a discipline is very difficult. It requires inspiration, and you can’t force advances just by putting in more hours. This is always on the back of my mind though (and sometimes in the front), and I achieve small advances every so often. It will still take a long time. It will exist, anyway, unless I get run over by a beer truck – I’m close enough to the goal that I can see that. The idea is that the tech that results will make its first appearance in Codekana, and then in Kodumi, the actual planned name for the text editor.

The bad news is that, for those that have been waiting, there is still a long way to go. The good news is that the result will hopefully be well worth the multi-year wait.

About the last few months

I’ve been working in J1CK part-time. This is a completely separate venture, a separate company, etc… we have an office, and I like being able to context-switch in order to freshen my mind. The rest of the time, I work at home in my other projects.

Supporting and improving ViEmu is like a gas filling a container: it can simply take as much as I can give. On one hand, support issues can be tricky – interactions with other 3rd party add-ins, problems with the host application, etc… this is especially true for Word & Outlook, the internal architecture of which is closer to a Frankenstein than to any proper design.

Maintenance and support of the current products can take a full-time professional career, but it doesn’t provide growth. The current ViEmu is already very good and very complete. Of course, providing a constant stream of improvements helps make current customers happy, and that is important to reach more people, but it has to be done sensibly. I doubt many people abstain from buying ViEmu because of a lack of features. On the other hand, if I spend 100% of my time in improving ViEmu, the business can’t grow. ViEmu sales sustain a full-time developer, but if I am that full-time dev, there will be no growth. And the business needs to grow: Codekana, Kodumi, my other projects… plus a business needs a “buffer” zone for stability. You can’t be just making ends meet (of course, you can, but it’s not wise), or some day, a storm will take you down. As an entrepreneur friend of mine likes to say, if you’re not growing, you’re dying.

So the idea is to take current sales to a level where it can provide some growth, and I’ve been thinking about the best way to do this.

Possible Next Steps

There are always different ways you can try to attain the goal of making revenue grow:

  • Doing other products — which is just out of scope right now.
  • Doing consulting work — which I’d rather avoid. I prefer to invest in product development, one-off work is something I will only consider if absolutely necessary (or if it is very, very well paid, but these opportunities don’t usually come up unless you actively look for them, which I don’t plan to do).
  • One area I still haven’t worked on, and which makes the whole product business a bit absurd, is that I haven’t started to charge for upgrades. Absurd because, as described above, support & improvements cost real time and money, so they need to generate revenue, or things are not working correctly. Since my first release in 2005, the purchase price always offered one year of free upgrades, with the idea to charge an upgrade fee for new versions after that. The thruth is that I actually have yet to charge for an upgrade. To get this working as originally planned, I have to set up the whole online store infrastructure for that, and of course, provide enticing enough improvements so that current users will want to upgrade. It’s quite a bit of work, but it will help with the business of ViEmu, Codekana, and other products for a long time to come.
  • One other option I have is improving Codekana to try to make it more attractive. Both the product and the website could use some improvements, and this could improve sales. I have a couple features planned that can really improve the usefulness of the product.
  • And apart of these options, there is one extra option of another nature: just further marketing the current products. Investing time and effort in publicizing the products can really pay off. When you are the author of something, sometimes, you feel it’s too imperfect, and it’s a common developer mistake to invest more in improving the product than in marketing it. I have received some feedback about Codekana recently, mentioning that (1) users like it more the longer they use it, and (2) that it seems to be undermarketed. The current Codekana is much too simple compared to the one I envision, but I shouldn’t make the mistake of underestimating its value.

    Thus, I could attempt some marketing activity to try to get many visitors to the Codekana website. The main way I know how to do this is to write an interesting article, and try to make it to the top of the programming reddit. I’ve managed to achieve this two or three times for ViEmu, so I know it can easily bring a lot of visitors to your website. The tech behind Codekana provides enough material that I think I can write a potentially very interesting article, mainly about innovative parsing technology and multi-threaded code. If I manage to get the inspiration flowing, I should be able get several tens of thousands of visitors from the programming reddit, which will ensure at least some exposure to Codekana. That may or may not translate in sales in the short term, but it’s an experiment I have to do at some point.

What now?

So, I’ve described three options above: (1) try to start getting more revenue with ViEmu upgrades, (2) try improving Codekana to see if I can sell more, and (3) try to promote the current Codekana to improve sales.

The least risky option out of these ones, and one which will make everything better in the mid- to long-term, is to set up the system to charge for upgrades. This will make support work on ViEmu more profitable, the system will also allow the same thing for Codekana, and should help grow revenue to hire extra help. It can easily take me two or three months to set this all up, and then the time to actually implement new features to make upgrading worthwhile for existing customers, so it’s not a small effort — but I think it’s almost guaranteed that I will get some extra sales over the months.

Improving Codekana with new features can take quite a bit of time (it always takes longer than expected), and the return is not guaranteed at all. Of course, if I improve the product a lot, it will help, but I’m talking about short- to mid-term revenue increases.

Finally, even if it’s not sure it will have a valuable effect, I think I should consider the pure marketing operations for Codekana. I think I can attempt to do something in a few days or a couple of weeks, and if it works, it could really help a lot. It will also be a valuable experiment to see how much pure marketing (without new features) can help sales by just bringing targeted visitors over to the site.

So, basically, what I’ll do is the following: first, take a stab at promoting Codekana. Invest a bit of time in this. And once I’ve done that, the next milestone will be setting up the whole system to charge for upgrades. This involves reissuing keys, which as a nice secondary effect will invalidate the keygens out there. And then I will start pumping valuable upgrades to the products. I’m thiking about a very affordable pricepoint (probably $29), which should be able to ensure a bit of growth from upgrades.

What to expect

So what to expect in the short- to mid-term:

  1. A hopefully interesting article (or two) about Codekana
  2. A sytem to charge for upgrades to ViEmu & Codekana
  3. And finally, meaningful updates to entice current users to upgrade

There will also be public betas of some J1CK products in the near future, I’ll post here when there is something new to look at.

I also want to write more and blog more, I have to find the best way to do so. Some of these new articles may appear on the Codekana blog, even if they’re not specifically about Codekana, to try to promote the site. I’ll post about the interesting ones here anyway.

And, of course, I’ll be happy to hear your thoughts about any or all the above points!

About my blogging customs

February 3rd, 2009

They suck.

Ok, I was going to post something more elaborate than this.

My previous post was the first in a long time, and as such, it required some special treatment. It took me several days to write it: I wrote three versions, the first one of which was long and confusing; the second one was four pages long, mainly due to some spice and anecdotes here and there, which I didn’t like; and the third one being the one I posted. I chose to just write the points, in a more terse style. Of course I then edited a bit. Among other things, I wanted to test whether a terser style could work, as it takes much less effort to write and get right, and it’s less risky, too. This surely has to do with having recently read the novel “Silk” by Alessandro Baricco (which I heartily recommend to you) — which is proof that austerity and terseness in writing can be incredibly strong.

In the end, I liked the style, and there were a couple of strong stylistic points (at least to my taste). It was also a nice departure from my usual style, and the usual style on tech blogs. I thought I should probably try to write things in different styles, to learn how they result, and be able to apply them consciously when I want to. Like when learning to play an instrument, or any other discipline for that matter, your best bet at mastering it is to do everything in all possible ways until you can control all the subtleties.

I received quite some feedback in the form of comments and emails, plus having it linked to from a few different places (not too many). Some of the feedback has been positive, as it resonated with some people. Other people, like Gavin Bowman, rightly pointed out some of the absurdity behind it (“I’ve made it through almost 10 years (1 month to go) trying to do absolutely everything every single day… why should I change now? Oh yeah… more successful, and happier… good point… Tomorrow, I shall aim to achieve NOTHING!!!”).

All in all, I was left with the feeling that something was left to be desired with the post. It’s not as when you post an article you end up totally satisfied about. I had to think through what the reason was. You see, when I write about topics I really know about, like many aspects of programming, I’m drawing from solid experience and knowledge. On the other hand, if I write about personal productivity, or about how I feel, or about my “journey”, then I’m not an expert at all, but I’m sharing my experiences, reflections, and decisions. It’s completely different. Now I know better where the point in my previous post fits: it was my reflection adequate to my current circumstance. It can be useful in certain situations, and other situations require different treatment. That should have been part of the “staging” and the point itself if I was to have a more solid post.

I could decide to write only about areas I really know about, like programming, and the part of selling software I’ve already got some experience on. I would save some of the embarrassment, but I don’t really want to go that way now. I like posting about more personal issues, and I think it can be helpful to others out there, even if it’s not the ultimate insight on the treated subjects. I also get to learn from the posting act myself — there’s something in airing out your doubts and reflections.

For the past few months, apart from being busy with the various projects, I’ve often ended up not posting because I felt I had to write “the Great American Blog Post”. It’s not good to post every minor thing, which will end up alienating readers, but it’s no good to have such a high threshold that you don’t post in months. I’m trying to lower the threshold a bit, while keeping in mind that blog posts should be at least worth their time and attention to readers.

(This makes me think again about the concept “Everything takes incredibly longer than it seems it will take”, which I’ve taken so seriously lately — a blog with only great posts is just a fulltime endeavor by itself — it’s good to realize this early before I start investing time in something I can’t afford!)

The next thing I post about will very likely be an update on the status of all my projects, which are in a very interesting point right now, and which will be more on-topic to the blog, too.

Good luck with your own projects too!

Laser-like focus!

January 28th, 2009

Some things are so obvious that they sound stupid. But I forget them so often, and see so many people forget them so often, that I prefer to say something seemingly stupid than to shut up.

When working alone, the actual amount of work you can accomplish is tiny, and the time it takes to complete anything is enormous. Putting it roughly, compared to what you’d like to think, and to a first approximation:

you can do nothing today

and

it will take you forever to do anything

When carried by a lot of energy, desire or ambition, you will try to accomplish huge goals without realizing how actually enormous they are. Sooner or later, one of these three things happens: (1) you redefine your goals, (2) you redefine your timeframe, or (3) you become depressed.

If you start noticing you’re advancing slowly, you will lose motivation. If you lose motivation, your advance will become slower. It’s not easy to break this cycle, but you’d better try.

For each task you tackle, ask yourself exactly what its goal is. After you know that, ask yourself if the goal is necessary, or whether there is a simpler way to achieve the goal. Reduce the task to the bare minimum required for the stated goal. Assume it’s going to take much longer than it seems it will.

I call this “laser-like focus”: you need to focus your very limited productivity in a tiny target area for it to have any effect. Only do the things that are strictly necessary, and do them one by one. Only expect to achieve the minimum each day, expect to be in the current stage for a long time, and learn to be happy that way.

When you have a list of things to do, before you do anything, trim, and trim, and then trim some more. Ask about each item: is it strictly required? Can it be postponed? Remove items, simplify them, substitute them by cheaper alternatives, offload them, try to remove everything. There’s always time to attempt the extras once the core is complete.

This is not only workforce management, but motivation management too – by simplifying the goals you pursue, you will be rewarding yourself with the satisfaction of results more often. That is a tremendously important goal by itself.

I recommend you to try to do less, and slower, rather than more, and faster.

You will almost certainly be more successful.

And happier.

Some things are so obvious that they sound stupid. I think I only said that one should check before doing, and then do it with calm. I feel today is the kind of day this was worth saying.