Improve your time management abilities with this simple realization

There are just too many things that are competing for your available attention. As a consequence, they cannot all win. That's why someone must be in charge to deal with who wins and who doesn't. It'd better be you if you want some sense of control against the ever mounting army.

Applying this to the swarm of objects coming down

Junk Did you ever had a solid and heated argument with your significant other or whoever you share a space with? Like in "Rhhaaa, there is your stuff invading the space again!" "Can't you just stop that?!" yada yada... Well, today's society is pushing stuff down to you all the time. So, instead of pushing all of the issues against other people, just realize that they are also in the same boat. Instead of complaining about someone else, just notice that the enemy is not the other person, but rather that you are both battling against "the stuff." There is just not enough time, don't spend it in unproductive battles. The true battle is against the ever mounting stuff.

Applying this to the task list

Headache Are you fond of task lists? I truly hate tasks lists. I used to do a ton of task lists. I even had software helping me put "scores" on things I had completed. But you know what? It never worked. No matter how hard I tried. Why so? Because tasks lists can just become endless. Ever heard of GTD? A lot of people using this are just shuffling lists like mad, and never get anything done anyway. That's the pinnacle of procrastination: being sucked in the tools that are meant to help you be productive. So what? Get rid of the tasks lists altogether. Use something much simpler: the  3 tasks that matter a day principle.

How does that work?

First of all, stop focusing on tasks and switch to goals. Focus on the goals, forget the tasks. You need to be clear on your goals. They give meaning, and meaning usually translates into energy. Energy that can get you out of the procrastination trap. Completing tasks is of course still important to do but there are many ways to reach a given goal, and keeping the goal first helps in being adaptable to circumstances. If you insists on tasks being done your way in a stubborn manner, well, forget about things going well for long, especially if you have to deal with other people.

Yeah, goals... what goals?

Don't overstretch yourself on this. Otherwise, you'll recreate the same problem. Just work along the lines of what usually matters and needs to be balanced to keep you alive and well. Get a task that matter for each of the following generic lines of goals:
  • Personal
  • Interpersonal
  • Business

Do that daily and plan at the end of the day

At the end of the day, just sit down at your desk and write down a task for each of the three lines of goals. Stick to one for each in order to keep a balance. Not taking care of personal tasks will make you a dull person very fast.

Do that on paper

Yes, do that on paper. It is much easier to redo, scratch over, and throw into the bin if you aren't satisfied. Computers and smartphones just lead you to do that much too neatly, to the point that you end up being afraid to trash it and restart. Paper and Coffee

Write down the time investment you are ready to commit to for each task

For each of the three entries, write down the time investment (use hours and half-hours as the maximum granularity). Like: Personal: get a haircut, 1 hour. Interpersonal: talk about holidays with significant other, 2 hours. Business: get proposal written down and sent to prospect: 2.5 hours. This all amounts to 5.5 hours. Given all the usual interruptions and chores to fit into the remaining time, you'll be happy to achieve such stuff, especially if you repeat it day after day.

Cross off tasks when done

Don't underestimate the power of slashing a task with your pen. Physically.  There. Done. Works for me, may work for you!

What to do with all the other tasks? I don't want to forget them!

Depends on what they are. For business related tasks that are related to each other, I would recommend that they belong to some project or recurring thing to do. But what matters is not the tasks, but rather what you want to achieve. Check out my sorting out the mess with a PBS video on YouTube for a view on things. So, I am using tools to deal with the projects. Things like Mantis for bug and new features on projects, Project Pier for following up projects and milestones. But there is really close to nothing on tasks. I am interested in bugs, and solve them. So, I'll plan a business "bug kill session" for a given day. Or I'll plan something like progress towards milestone "X": release candidate done. Milestones are a great thing since they are really geared towards results, outputs, and not focused on inputs and tasks. This gives a feeling of moving towards a goal instead of being overwhelmed under a sea of tasks you can only drown into.

Get into action

Take Action Easy enough right? Start today. This evening, write according to the 3 tasks that matter a day principle. You'll come a long way in no time. And as an added benefit, sticking to three will force you to work on them. No excuses. And once you become great at this, you can always make the tasks more challenging, or add more to each line of objectives. But first, prove to yourself that you can do the simple thing. Simple things are quite powerful: you cannot hide and must do.        

Images courtesy of FreeDigitalPhotos.net

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

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!

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

Lessons from Captain America

I was watching Captain America last evening and tought it would be interesting to make a list of some takeaways in the movie. Here we go: * Appreciating strength requires to have experienced weakness. * You can't grow strong, fast, and skilled unless you have it in you to start with in the form of values. * Being able to stand up, again and again, will get remarked. * Good weapons make a difference. * Red skulled guys are usually not your best friends. * It is awesome how great one can become provided the right context. * One looks like better with a bit of physical training indeed. * Leading a wonder team may look like herding cats. But they may well follow you down to inferno, and back. * A shield can sometimes come in handy. Watch your back. * Don't embark friends you can't afford to lose along the way. * Don't expect to pick up the smart babe if you aren't up to the required standard. * Crazy ideas actually may work. * 300-1 odds are only in movies. Live to fight another day. * Given enough means and brainpower, the future can be now. * Don't forget to kiss your loved one before embarking on your risky journey. Even if this was not the best movie ever, I had a good time watching it. Lots of actors from MIB and The Matrix mixed in with a hefty dose of freaking technology and weaponry. Typical American style of course 🙂

Fireworks instead of a rocket

Yet another article coming back from the grave. This was 2001. Still, the same issue applies today!   Starting with some VC-backed capital, a couple of guys started a small company and hired a group of above average developers. The domain was defined but there was no defined product specification. So, all developers started developing ideas in code instead of exploring designs on paper or on inexpensive mockups to market test them. No arrangements with distributors were investigated, no marketing plan devised, no product sheet made. Instead of having a clear goal of where to end up and align people, cash and energy where spent going in all directions.
Fig 1
Fireworks and Rocket
  The figure on the left shows that from the starting point, efforts where going in all directions without coordination. This has several effects: The cash burn rate was higher that it would have been if the target was kept Given the fact that cash was going down to dangerous levels for the survival of the business, branches which were the furthest from the real target got cut, meaning a net loss The branch which was the closest to the target was retargeted but  there was not enough money to end up with something as big as the initial target As such the final product was smaller than expected and was not aligned with anything. The point is that in this case, there were already competitors in the field and the final product could not compete with the other products on the features and usability level. A lesson that may be taken out of this rather sad story is that having a vision and a plan to work it out and, most of all, find a way to sell it properly are key in finding success on the software marketplace.

Required blocks for development checklist

I wrote this list in 2002. Things have improved but a lot of places could still use it! (Sadly...). And that despite all the nice improvement and agile/kanban/scrum/you name it...
  • Coordination meetings with issues, risks, recurring tasks and organizational problems
  • Understanding of the customer expectations and their management including Service Level Agreements
  • Change requests list
  • Incident Reports list
  • Configuration management with proper support document (for local configuration and delivery site)
  • Data sources available
  • Proper Tooling (editors, compilers, deployment, parameters, scripts, including test tools)
  • Service Fault Investigation and Diagnostic procedure
  • Tests sheets
  • Weekly build properly packaged (read complete and burned on archive media, along with release document)
  • Weekly release performed on user acceptance system (from above build)
  • Samples for testing
  • Nomenclature for documents, basic templates
  • Calendar overview (weeks, months) with holidays and release dates for every person involved in the project
  • Contact list for every person involved in the project
  • Source control (SCM along with agreed procedure and training given to people + tools installed properly with documented parameters)
  • Connectivity works
  • Escalation procedure
  • Project web
  • Good understanding of existing infrastructure and deployed systems (at our location and at the premises of the customer)
  • Code reviews
  • Shielding people carrying work