Learning to Stop. And Start Again

Three weeks ago I started coursera’s “Introduction to Systematic Program Design” course. The name seems compelling – someone has found a way to develop software in a systematic way! Finally!!!

But after three weeks in the course, learning the “Beginning Student” programming language (something similar to Lisp), I am disappointed. Not only is the course shallow (for now), while it teaches how to systematically create software elements, I still can’t see the point in spending my time in the course. I asked a  question in the forums, regarding the validity of the methodology proposed by the professor of the course (empirical evidence, anectotal evidence, something!)… but sadly I didn’t get an answer.

It is hard for me to stop doing something I started without finishing (this is the only reason I finished reading this book). But in this case I think the time has come to close the book and simply leave it where it stands. Not only because I don’t think it is worth my time – but because I have better things to do – this week is the first week of the Startup Engineering course! So bye bye systematic program design. I won’t say I’ll miss you. But I have a Startup to build :-)

Enhanced by Zemanta

Getting Back on Track – Eclipse Tools to Create Context

It has been a while since the last time I did some coding in my OPP project, and today I am returning. One thing that is always problematic for developer is creating the context in which they are developing. Experiments have shown that an uninterrupted task takes twice as long and has twice as many errors as an uninterrupted task, and that it takes about 10-15 minutes for a programmer to start “working” after an interruption. And an interruption of more than 2 weeks? sometimes it takes me a lot more than 10-20 minutes to pick things up from where I left them.

Thankfully, the Eclipse ecosystem has created a great tool to create context when we are developing, so it is easier and faster to get back to work: the Eclipse Mylyn project.

Mylyn creates a “task-focused” interface which monitors your programming activity. The main focus of the interface is a task, the unit of work that you are currently executing. This is the first step in creating context, since it already focuses on what you were doing the last time you left the workbench. The second thing that this Mylyn gives is a filter for your project view. When you activate the task focused interface, Mylyn filters the project view and leaves only the elements that are “interesting” for your current task. Going one step further, it can also create focus in the java editor by folding all code that it is not “interesting”. The third you get (when you are using github, like I am) is that the task is automatically connected to your github commit, so you can see which commits were done when the task was active.

Another great tool, for a great platform. Happy coding.

Enhanced by Zemanta

Is Culture Everything? Beware of the Survivor Bias

Survivor bias is defined (by wikipedia) as “the logical error of concentrating on the people or things that survived some process and inadvertently overlooking those that didn’t because of their lack of visibility“. This subject came to my mind after a long talk with a friend that works in one of the “cool” companies around here (at least for those not in those companies). A company that has Culture. But he is somewhat tired of working there, even if the company has Culture. Like me, he is subscribed to many tweet feeds and RSS feeds, and we both noticed that there is lately a lot of talk about Culture and how this makes or breaks a company. But I think that we have here a very good case of survivor bias playing on us. How many start-ups are there that have great culture but still fall and burn? Probably most of them. And there are very big companies that “don’t have a great culture” but are still making a lot of money, paying a lot of money to developers, and growing every day.

So beware of investing too much on your culture, and not enough on your product. Culture may help you keep great developers, and makes people happy, and that is VERY important. But don’t think that if you have a great culture, you will succeed.

I’m repeating myself, so I guess I will stop here. Have a great culture :-)

 

Enhanced by Zemanta