Disengaging is a key step when switching gears

Time has come

Credits FreedigitalPhotos.net
I am currently finishing an engagement. There, I helped the client in deploying a new way of working, namely a SDLC (Software Development Lifecycle) that was internally defined, with a special focus on system requirements specifications. I have been busy with that for about two years, obviously not full time. Truth be told, I am pretty happy with the results as a number of key analysts are now able to be exemplars of the wanted behavior and will for sure maintain some traction. It is not the same group, they really are now up to something great. We went through an assessment of their capabilities. It was interesting to experience. From both sides. From what I could see, they have a decent mastery of the trade. This needs to solidify somewhat over time, but the basics are in place. Today I discussed the results with the management. So, now comes the time to disengage. That's a great time, filled with a feeling for accomplishment, and a sad time, since it amounts to leaving a group of great people with a little pinch in the heart. Maybe we'll meet again in the future, this would be great.


When we switch gears, there is this in-between moment. A moment that is a great opportunity. The opportunity to switch to another speed, to another world. It is a time where one can escape the "success trap." The "success trap" being that place where you know that you can do it, and are recognized for your ability, and paid accordingly in the process. But it is like golden handcuffs. One day, the floor may well evaporate, or the context change, and you'll end up naked and cold. Better keep moving.


That's a moment where it is important to reflect back on your top 3 outcomes. And get a sense of direction for the next moves. Some questions to get just that:
  • Where do I want to go from here?
  • How can I leverage this without ending up doing the same old again?
  • With which successful people and organizations do I want to hang out?
  • How can I satisfy my key values in the upcoming time frame?
  • What kind of new skills do I want to develop and add to my bank of talents?
Simple questions. Getting answers is harder. Well, there are always the easy, knee-jerk style reactions, like, search for cover, duck, and make no waves in safe nest in a well known place. This is not the answers you are after here. So, "where" may mean going global, "how" can mean how in a fearless way, "with which successful people" may mean insanely successful people. And with a close to perfect match for my values and in a super fast way. And in a way that will make my head spin due to the overload of talent addition. Oh yeah, now there is some drive! Of course, you'd better have some things in progress to avoid the feast and famine syndrome. I always have 2 or 3 projects running in parallel, for clients of for myself, client projects funding my own for the research and development part, until they can fly on their own. Waiting for things to go mainstream is a sure way to miss the train. While we are on the targeting, it is always better to a tad higher that you feel comfortable doing since it will stretch your skills. Remember, one's worst enemy is one's ego. And the ego doesn't like those stretches. The hell with that: stopping getting out of my own way is one of the best lessons I got in life. We are always better than we think. Go for it, don't be afraid to fail, and learn as fast as you can in the process. Staying put will only guarantee immobility!

Going forward

Time to go forward then. Full speed ahead. We are now entering turbulent times, be it economically or socially. But that's a great time since that's when the ones who will survive and prosper are those who will be able to harness talent, skill, and leading technologies to take an edge. That's what is so exciting about life: the future is no written on the wall. And if you are in great company with an insanely great project, I want to hear from you! Until next time, happy switching! Philippe

Is your business side of the equation right?

When talking about a business, it is important to leave the underpinning tech on the side (however great and innovative it is/will be) and switch to the business side of the equation.
If you are talking to me about your black magic, I want to have several things clarified and lined up in front of me:

A clear view of what you have in stock

First, I need to have a clear view on what you guys have in stock in terms of capabilties when it comes to your business offering.
What is/are the problems you do solve? Like in a problem statement "The problem of ... affects ... and results in ... The benefits of the solution are ...".
Then, what are the services I can count on you for?
Products are all nice and fine but a product isn't solving anything by itself.
But the market/channel doesn't latches on those things when it comes to improvement and software.
We need professional services, support etc. What are yours?

Tell me about the money

Next in line is: what is the typical budget you are looking for/need to have to perform an engagement?

What are the rules of engagement?

How can a business call upon you for help? Are there various levels? Like, just act as a soundboard, get involved in advising, sort the whole mess, etc...
Is there a process we can embark the clients on? I hate "selling events", I do love "taking clients to a journey through a definite process". Il allows for a lot of upsell, cross-sell, long term relationship etc. And a ton of added value for the client. Experiencing an event is like taking a shower. The next day, you are as dirty as before. We need to have a cleaning process/solution, not a shower event!
Based upon the answers, I can look to arrange meetings with decision makers on my side. So that you can either visit them, have me do a presales thing, or we can do an event to catch some fish.

Times are good

I think we can get some pretty good business, especially in turbulent times like now. That's because when things go sour that you'd better get them right or else! And that the survivors will be telling the rules afterwards. Survivors and winners usually are very positive about asking for help, support, and services for improvement.
They just realize that they can't breath their own exhaust or they'll die from intoxication.
So, how can we bring in some fresh air together?

Second day at #pharoconf in Lille

A view from the back of the room

Due to a flat tire, I was unable to attend the first talks. Too bad as I was very interested in seeing Ambera bit more. Well, I tried it out in my web browser last week and it looked nice. But I still do prefer a rich client style environment and I kind of find Morphic an interesting beast. We managed to get in before noon and so, the whole morning wasn't lost. During lunch, I had the opportunity to talk with Alain Plantec (Morphic Guru, thanks for the trick about self haltOnce for tracking down the red squares with yellow crosses down, and Platypus main developer. He told me about EXPRESS and ISO 10303 p11 - I really think there is interesting stuff in there, I want to learn more) and Usman Bhatti  a team member of Synectique, a new business dealing with software metrics, automatic measurement of "things" in software. Check this PDF for a clue (in French). Basically, I see that there is a mention of ISO-9126 in there, something I have been involved with heavily in a past project with the European Commission and created tools (the hand crafted style stuff mentioned in the PDF) for SQA (Software Quality Assurance). They do trees, I did tree maps that you can drill down (which I still think is a better representation, so we may talk!). Now, I should make some business case for all that because tech is well and nice but a business needs a clear value proposition. And a clear set of use cases and supporting processes so that prospects, clients, and repeat customers can make sense of what journey they can go through with you. Doru has one thing, this looks like another. So, even if they do share the same Moose tech, I wonder if they are competing, doing different things, just trying to find out what they exactly want to do etc. Well, material for some Skype calls I think.


Talks were interesting, especially Arduino and Raspberry Pi as far as I am concerned. And Fuel is really something I find super nice.

What about a "Pharo University" + "Pharo Conference" format?

The conference formula is okay but there were people who were new to Smalltalk and Pharo in the room and for those, it is clear that they felt quite disconnected. My friend David had only had basic exposure, during lunch of day 1, I met with people who were just beginning. As they do in things like Devoxx, there are different kinds of sessions, especially the "University" day(s). I would thus suggest having a day of "University" with tracks like:
  • Track 1: Getting up and running - Get an image running on your box, understand Browser, Monticello and run basic examples to get started. Work a morphic case. Work a seaside case.
  • Track 2: Latest things to know - Metacello configurations, Fuel serializer, StartupLoader, ...
  • Track 3: VM and internals - Building a VM, basics of VM recap, state of VMs, Plugins, FFI Plugin, Alien. Interact with the external world.
  • Track 4: Bleeding edge stuff: PharoKernel, how to create one image with what we need, ...
So that when the "Conference" style days that follow do happen, attendees are somewhat more aligned. This community needs traction and "University" style days could possibly provide that.

I managed to get the iOS VM working on my iPad2!

Long story short: it runs. Performance looks decent.

Pharo runs on iOS

Just for you to know, you need to do a double touch to get the pop up menu for doIts and so on to show. It is a pain if you ask me. In fact, I am using an external bluetooth keyboard and that is much better for dealing with Pharo on iOS. It is thus possible to program directly on the iPad with that. Just need to define a set of KeyBindings that make sense (Cmd-D should be brought back for example).
Thanks to Esteban Lorenzano for helping me here! I got a copy of his own folders, and ended up with the same symptoms: StackVM starting and then closing without even opening a screen.
Key learning points here if you want to succeed:
  • Don't try to compile from cog-osx C sources right away, regenerate them from VMMaker of there will be a ton of hardcoded path values in the thing. generate the sources from Pharo.
  • Remove the app from you iPad (delete it) before new compiles. It shouldn't be this way but, in reality, it is!
  • Have the right CMake version: 2.8.7
  • Don't fret about having a message in the output of Xcode telling you that there is not enough memory or a missing controller, it just means you need to kill the app in the iPad. Well, the controller thing is normal, so don't link that message with the fact that it cannot start the image.
  • Clean the damn "Derived" date that Xcode creates (when it indexes files) to be sure that you are dealing with things you produced. (Folder lives in: /Users/philippeback/Library/Developer/Xcode/DerivedData/ for me). In fact I have put that folder into the Finder favorites bar to be sure I can get rid of its contents fast.
  • Don't forget to run the 'remove commit info' script or everything will go south. You don't need to do this more than once.
In fact I wrote the whole procedure down and will make a video on youtube showing the details. Stay tuned as I will do it next week.
In the evening I played a bit more with the thing and make the following:
In fact this made me think that we need two modes on such a device:
  1. A development mode, where they keyboard is fully available and the Cursor is shown. Reaching for the screen is a pain, so a lot of things should be doable with keybindings.
  2. A user/touch interaction mode, where there is no Cursor shown. This is great for interacting with Morphs for example.
I've been developing a touch-based app in another language and the app can run as a Flash thing on the desktop or as an app on iOS, Android and so on. But touch is not the same as WIMP. You can't assume you can hover over things, so the interaction is different. A long press is usual on touch, where it is not on the desktop. Same for double touch. So, development more is really another "interaction paradigm" to be supported.
I like the fact that I can use the screen in portrait mode. This makes me think of the original Alto. I love it 🙂
Back to PharoConf...

Business with Pharo presentations

This was also quite a chunk of the day, and it was interesting to see all the stuff people are doing with Pharo. It is really amazing. For me, Pharo looks like the secret weapon that can propel a team ahead of the competition. I have made the strategic choice to go that way with my business when it comes to some styles of mobile apps as well as for SQA activities. So, this is one more tool to the stable.

Ideas for some fun

My friend David Lovera took his laptop with him and demonstrated his 3D Visual Factory software running on Windows with Direct3D and DirectX 9 (I did a podcast episode in the past so that you can listen to some key features of the solution). This has nothing to do with Pharo per se, but we discussed the opportunity to integrate his engine with a Pharo package providing an API to the objects he manages in the engine. This is easy to do and would give a powerful 3D visualization possibility. We'll integrate this with a Zinc gateway so that one can play the master of several machines.Add to this that he manages Video/Music synchronization and MP3 playback and there is a hell of possibilities here, especially when coupling it with an Arduino for I/O exchanges with the real world.

An injection of motivation

I am writing this post on the sunday after the conference so, there have been some messages posted on the mailing list. One of them was an  answer by Igor Stasenko, the Ukrainian killer brain, saying that he go a massive injection of motivation from the conference. Man, are you right!!!! That is the single most important thing to take away from the conference. Let's keep on trucking!

Historical: Alan Kay: The Computer Revolution hasn’t happened yet

An 1997 keynote of Alan Kay at OOSPLA. Worth watching on all counts. I like the nanoDijkstra concept 🙂

First day of #pharoconf in Lille

Today was the first day of the Pharo Conference in Lile. The conference took place at the Inria Research Centre Lille Nord. Just for you to know, Pharo 2.0 is the current development version and works pretty well at this point in time. It sports the Nautilus browser by default. A good move if you ask me. I was able to load some 1.4 code, little adaptations were needed due to the ongoing cleanup of the image. These changes may make some people unhappy but at the end of the day, hard choices have to be made to keep progress marching forward. A perfectly understandable position. I am all for it, even if this bugs me to have to change code to match. The quality of presentations was quite variable. Even if the underlying technology is always great, some presentations are quite lame in how the material got presented. Frankly, I was happy to have some WiFi at those moments. But the best part is the socializing with such interesting, dedicated, and smart people. It just felt great. Putting names on faces and real people is always a plus. On the catering side (an always important aspect), things were good. We got fine coffee and food in the morning. And lunch was good as well, especially in fine company. We also discussed the Pharo Consortium and brainstormed ideas on how to best fund it. I wasn't able to attend the evening event and got a bad surprise when getting back to my car: a flat tire. Well, I had a spare wheel, so it was okay. But travelling back to Belgium with a speed limit of 80 km/h is fast getting on ones nerves. So, I will have to get that fixed tomorrow morning, meaning that I'll be coming late for the second day. Too bad! I hope to get there before noon.  

A month with Android and Samsung Galaxy Mini

It has been about a month that I am using a Samsung Galaxy Mini. That's a cheap EUR 99 phone. There is a hell of a lot packed in there. I am coming from a BlackBerry Bold 9000 (that wasn't repaired properly by Belgacom - but that will be for later). There is also a lot of Apple kit over here, namely iPads and an iPhone 3GS. So, how does it feel to work with such an Android phone? Pretty well it turns out. But not without glitches either. The multitasking works well and in some senses better than on iOS based devices. And I now understand why Apple didn't allowed multitasking to run wild on their own devices. Memory management is pretty much transparent on iOS and requires constant attention on Android. When memory gets short, everything slows down to a crawl. I didn't had this feeling on iOS. Touch is okay. I don't like the Swype keyboard and thank Samsung to have included their own. When it comes to push mail, it works fairly well