Showing posts with label project. Show all posts
Showing posts with label project. Show all posts

Friday, February 27, 2009

Threads are evil

Having a child is an exercise in chaos. If you're a software developer you will probably not even notice any change in your daily routine. It's basically all that's wrong with project management at your workplace. Late night refactorings, ever changing specs, volatile project scope, improbable deadlines and virtually no chance of success. Still you probably end up finishing every project no mater how mismanaged. Somehow things get done and the jumbled mess of incomprehensible code produces the desired output. On strings, prayer sand a roll of duck tape, you get through it and you live to fight another project.

That’s until you encounter concurrency computing.



If you’re a competent developer you know that threads are evil. But they pale in comparison with daily challenges of multi-offspring household. Having n > 1 children is a like developing a multithreaded application – with a few twists. In this case you’re the CPU processing the requests (this is where being married dual core pays off!), there’s no logging, exceptions are constant and unrelenting. Fixing a bug just means you’ve neglected to take care of something else. Being used to chaos you persevere – but invariably you burn out and fail.

It’s amazing how simple the problems you face at work seem to the veterans of n > 1 children families. Everything else is dead simple. Also you learn to appreciate your spouse. At the end of the day – she puts on her cape and turns into a superhero that saves the day. Barely being able to keep your eyes opened you gaze at the better half of your dynamic duo – she looks out of this world. You can finally close your eyes and take a nap. Her multitasking superpowers defeat the chaos. Your final thought before you daze into the never-land is: “She’d be an amazing programmer…”

Monday, January 12, 2009

Project Flowchart

This is pretty much every project I've worked on:

And it accurately describes what having kids is all about. Whenever you think you've worked something out the landscape changes. You're back in the wild, it's getting dark and a low roar of the beast is heard in the distance...

Saturday, September 06, 2008

Dad 2.0

As I'm sure you are blissfully unaware of - project Ivy is now called Ema. The last internal build was on Monday and we shipped Tuesday. There was no party, no confetti, no champagne (just some prescribed medication for mom). I might be biased but the final product turned out great. We missed the deadline by 4 days which I'm sure you'll agree is practically on schedule but we are feature complete (we've got voice recognition and emission tested, waste management system on-line, food intake running...) so I'm congratulating myself on a job well done!
Also we've changed our url, but that's a topic for the next post with the working title: My life is a box, (Boxing Goran?).
Also I'm internetless! For the first time in 8 years I'm offline. Well not completely off line as I got my mobile phone and this UMTS card for my laptop. But I feel as if I'm all alone and naked in the dark... OK. That was waaay off topic.
So no pictures till I get my computer running again, which is incredibly low on mom's priority list. So as soon as I set up the kitchen, build that rack, fix the sink and move that TV - you'll be the first to know.

Sunday, August 31, 2008

Index is out of bounds


Our countdown to project ivy has just returned an unhandled exception. We have passed zero and we're counting upwards.
On a side note we're also (4 days) late on moving-to-a-new-house project. I'm sure you'll notice that neither of these is my fault!
But being a bit late in a project is nothing new to us software developers. Now why is that? I'm sure we've all read books on project estimations, multiplied our estimates by pi, threatened to quit if project scope gets out of hands again. Still none of this makes a difference. The problem is that projects get late by the actions (or lack of actions) of people who have no vested interest in meeting the deadline. The guys that pour concrete don't care about me moving in. My boss keeps forgetting I have a life. And I guess "ivy" will come out whenever she's ready and isn't aiming for the due date.

Monday, June 02, 2008

Project Ivy Private Beta

Project Ivy has gone from concept phase to private beta. Still the wonders of modern technology make it possible to take a snapshot of the development build. And here's the exclusive!

How great is that? It's quite hard to believe we're able to create things like that - even though it's the second time around. And it's quite emotional for me to even look at that picture. I guess evolution wired us to feel like that, so that we might take better care of our offspring. But the other part of me thinks that this just might be on of the two cutest faces on the planet.
I'm off to view the rest of the video again (yes, that's why they call it the 4d ultrasound - don't get me started!) and give the Subversion server (mom) a big hug :)

Sunday, March 02, 2008

A new project

Ok, it’s time to come clean. I’ve been absent for a while as we (my significant other and I) were starting a new project. You see David has been going so well lately we somehow got the idea we’re actually good at this. Like - we could launch another startup while not breaking a step at the current one.
We’re overly optimistic I know!
If that wasn’t enough, we decided to move. Yep, when turning your life upside down it’s best to do it thoroughly. Paying obscene attention to detail, we’ve planed the moving date to coincide with the due date.
I know, perfect!
For those of you obsessed with everything David (and those of you not answering your phones!), the codename for this one is Percy. Got that? It’s David’s idea and if you don’t know who Percy is (hint: think locomotives with human faces) you do not have kids, are not around kids, do not like kids and shouldn’t be reading this blog anyway. Now the only officially stable aspect of my life is my job.
Don’t worry – it’s under consideration!

Monday, November 12, 2007

Two point oh and still in beta


Yes, we did it! We shipped! You should have been there. I’ve seen things you people wouldn’t believe. Parties, beaming with kids dancing to loud music… I watched confetti glitter in the disco light near the plasma TV. All those moments have been captured on digital discs as zeros and ones, to live forever in that which is web. Time to upload…

So what’s new in version 2.0?

  1. Upgraded to Verbal Communication Foundation (with sl-si language support and reliable messaging services)
  2. Waste Disposal Adapter (potty)
  3. Auto navigation (not slamming into walls so much)
  4. Auto recharging (self cleaning module missing!)
  5. Voice Directed Action Control™ (stop, don’t, wait, OMG)
  6. Innumerable bug fixes and corrections

But the most important thing isn’t visible in the fact sheets and comparison charts. There’s been a fundamental shift in the way this project is developed. Throughout the 1.0 phase it’s been mostly about mom and dad. Everything revolved around us. We controlled the vertical and the horizontal. As we approached the new milestone, we began detecting small foreign inputs, bits and pieces that didn’t fit in our neatly structured curriculum. A paradigm shift not unlike that which happened on the web had begun.

David’s progress and development had slipped out of our control. We’re no longer the editors. User generated content now replaces all we tried to teach. With so many information providers out there, you can’t really compete. It’s the kindergarten teacher, it’s his peers, it’s the tubes and the series of tubes, it’s the passerbys and bystanders. Mom and dad still matter, but matter less each day. I know that now and I’ll accept that one day. Till then I’ll take comfort in my zeros and ones captured on digital discs, that live forever in that which is web. Time to download…

Saturday, October 13, 2007

Mom vs. Dad

Sometimes life gets overwhelming and bloging falls of the daily routine. I know I have lots of catching up to do (there are a couple of posts that are missing parts) but this one takes priority.
Mom had to leave on a business trip today. As always, packing was done two weeks in advance. Mom is a waterfall model proponent. Me? I’m agile of course. I pack on (JIT) my way to the door. Luckily the bathroom is right next to the front door so I rarely forget my toothbrush.
Anyways, mom took a week planning the trip, mentally packing the suitcase, integrating various articles of clothes and testing for stylistic mismatch. With no automated regression testing (this is the specification phase of the project!) the only recourse is to mentally construct the model of a finished outfit and check for faux pas. This was followed by a week of separating, washing and rewashing of selected garments and actual packing. My agile approach would consist of grabbing any clean (not necessarily recently washed!) clothes spread out from the bedroom to the bathroom.
Special items such as gloves, umbrellas, second and third pair of shoes and other just-in-case objects would be purchased on a need-to-have basis at the airport at my place of destination. I probably need to buy them anyway so I might as well save myself an unnecessary trip to the shoe store. Not to mention the fact that thinking of things you'll bring along, talking them over with your spouse, then writing them down and finally putting them in your suitcase clearly violates the DRY principle!
With packing phase concluded it was time to find a lock for the suitcase. Security is the most overlooked part of any project. This is what mom’s idea of a suitcase padlock looks like:

A puny, tiny padlock hardly worthy of it’s name and clearly no match for the security device I selected:

Behold the Targus Defcon 1 – Ultra. All in one solution complete with 4 digit security code, status indicator and motion detection alarm. The first image shows the two in comparison. I know – as if there was any...

Monday, April 16, 2007

Qrio vs. David

Somehow I’ve missed the news about fare well of QRIO and AIBO. It’s a bit sad really. I’m a part of generation that grew up thinking we’ll be going to work in our flying cars and robots will do most of the household chores. We saw ourselves as the Jetsons and it never occurred to us that what we saw on our TV screens wasn’t (jet) real. Our future was to be the SF future we read about in stories the Futurians wrote (remember Amazing, Astounding? The titles themselves convey the optimism of the era!). Yet we lived to see year 2000 pass as by as uneventful as the year before. There was no space odysseys for us, no trips to the Mars (nor zero gravity … er you know). But no matter - with companies like Sony working on our stuff of dreams there was a chance the next generation might get there. That’s why news like this gets me down.

Anyways – let’s get back to the topic! You might want to take a look at the Aibo / David comparison table. However, David received some major upgrades in the last year so an updated comparison table between David and Qrio was inevitable (due to lack of technical data for Qrio, this one focuses on the features).

Qrio vs. David (Comparison table)



QrioDavid
Development time2.5 years1.5 years
Power consumption1 hour – fully charged7.5 hours – fully fed
Height0.6 m0.85 m
Weight7.3 kg13 kg
Top speed23 cm/s40 cm/s
Transportation modeISA powered - independent and stable bipedalQuadpedal / Bipedal modes
FeaturesWireless networkUses wireless network
Precision mechanismAmbiguous mechanism
Pinch detection sensorsPinch avoidance sensors
Quiet constructionLifelike construction
Safety coverSafety covers optional
Shock resistantSelf healing
Obstacle detection sensorsObstacle removal operators
Internal mapping of locationsExternal mapping of locations (mostly with crayons)
Face recognitionFace and food recognition
Own vocabularyShared vocabulary
Autonomous behaviorIndependent behavior
Expressing emotionEmotional being
ExtrasCan dance to choreographyCan spin (to the right)

All in all - I have to say David rulez!

Sunday, April 08, 2007

Four phases of development

An interesting article (just follow on through tynerblain) articulating UX we all must have had being part of software development projects. And my current project is no different. The four phases of development are the following:
Oh it’s a Boy!
Great news! Lots of e-mails, SMS texts, quick phone calls, telegrams, oh joy, oh boy… - nothing gets done for weeks.
Oh Crap!
Baby and Mom get back from the hospital. Reality kicks in. Lots of “you get up”, “shut up”, “OMG”, “what is this coming out of his”… - nothing gets done for months.
Oh Ok!
Your baby finally breaks you. Lots of changing, bathing, cleaning… - that’s all that gets done for months.
Oh Cool!
Your baby gives you a hug. You faint… - you don’t feel like doing anything for a year.

Since Scott has put on such nice visuals I thought I should do as well.

Oh Boy!
Oh Shoot!
Oh Well!
Oh Wow!

Tuesday, January 30, 2007

Meta

As a project lead of a 14 month old toddler you get to answer a lot of questions. While most of them start with “What is …” and end up with a little finger pointing at the red fire truck – they are in no way superfluous. Your consistent answers will let your child know that red items are frequently called red something. He will start to understand what a fire truck is. Fire trucks come in many shapes and sizes but they are still called fire trucks (and toddlers have an uncanny ability to grasp the Aristotelian model of fire trucks!).
Yet there’s another important piece of information hidden within your answers. It’s a tiny little common sense rule that object rarely change their names. If something is called a fire truck it will probably still be called a fire truck tomorrow. Now you may think that is obvious but it really isn’t. It’s a common sense rule you picked up in your formative years. And that is what common sense is. A collection of tiny rules you never think about but use everyday. You might call them meta rules, as they are frequently used as rules about rules. They are kinda like David asking a “What is …” question while pointing at his pointing finger. What is this thing I use to find out about things?
It is your first meta question David and I’m glad I was there to answer it.

Wednesday, August 30, 2006

Who's driving this project?


I’ve been noticing subtle shifts in project David’s scope and direction. While I’ve been trying to steer things in a more intellectual direction, a tranquil state, making things cool, something was pulling the project the other way. The activities were getting physical, more kinetic. We stopped looking at stuff – stuff was being thrown now. We stopped pointing at stuff and twaddle – we crawled, walked, climbed and grabbed.
Somehow David took over. I guess this is how all things come to pass – you turn around and it’s there. Yesterday you were in control, today you’re just along for the ride.
Still I am the current project manager. I am responsible for delivering deliverables on time, meeting project goals and staying within the budget. I ain’t giving up just yet! Not while you’re under my roof…

… and that’s how you turn into “dad”.

Friday, July 14, 2006

Aibo vs. David

I won’t even pretend I have time to blog anymore. David finaly implemented the ICrawl interface! This means a sharp decrease in time I have available to blog (or do anything!)...

...and increases the chances of »someone« pressing the wrong button. I found that MSWord auto-recovery functionality doesn’t always get you what you wanted.

David has been developed to the point of being compared to other top products in the field of AI. Here’s the technical specification part of the Aibo vs David comparison table:

Aibo Ers-7 (mind service pack 2) vs. David (Comparison table)

AiboDavid
Development time6 years8 months
CPU64bit RISCBrain
Main Memory64MB SDRAMNeural net (unknown capacity)
Additional MemoryFlash, PSMNone
IOCCD camera, stereo microphones (2), speaker, heat sensor, infra-red range finder, acceleration detector, touch sensors, electric static sensor, pressure sensor, vibration sensor…Eyes (2), ears (2), mouth, heat sensors, pressure sensors, taste sensors, acceleration sensors, balance sensors…
Power sourceDC7.2V (Lithium ion battery)Food – any
Power consumption1.5 hours – fully charged3.5 hours – fully fed
Dimensions (l, w, h)319 x 180 x 278 mm (not including tail)120 x 170 x 750 mm (not including hair)
Weight0.3 kg10 kg
Operation temperature5-35 ºC37 ºC

Sunday, March 26, 2006

Project review

Scheduled pediatric check-ups are like the dreaded project review meeting on a project under-manned, over-sponsored and hopelessly behind schedule. So when the time comes – you just know things will not go as planned.

It starts off with a barrage of project related questions like: Is the baby breastfed? Is the baby being read to? Is the baby being exercised? And there’s no good answer to such questions.

Project sponsor: Is the baby breastfed?
You: Yes.
Project sponsor: I see. Perhaps you should consider switching to formula. Breastfeeding the baby can lead to baby becoming over-dependent…
You: ?
Project sponsor: Is the baby being exercised?
You: Why yes, we’re…
Project sponsor: I see your baby has over-developed muscle tonus. You should consider not putting your baby through so much exercise…

Next the project milestones are reviewed.
Project sponsor: Does the baby stand on its own?
You: Well no, he’s 4 months old!
Project sponsor: I see –you think your baby is developing at a satisfactory rate then?
You: I’ve done much reading on the subject and I think…
Project sponsor: I see – you thing reading a book or two on the subject makes you a specialist then?
You: I…
Project sponsor: Are you ok with your baby developing slower then his peers?
You: Wtf?
Project sponsor: “So where’s the Gantt?”

At this point you point your gun toward one of two possible directions depending on whether you are an introverted or extroverted individual…

Monday, February 27, 2006

The Gantt

Every project needs a Gantt chart. It is essential. You can’t persuade any self-respecting middle-to-upper management cone-head to sign off on your project plan unless he sees the Gantt. He’ll tell you:
”Where’s the Gantt?”
And you’ll be like:
”Wtf, I just showed you the project schedule and…”
And he’ll just go:
“Where’s the Gantt?”
And you’ll try to explain:
”Look, there is no need for a Gantt chart – all the information you could cram into that chart is right…”
“So where’s the Gantt?” comes the reply.

So here’s the Gantt.



This needs some elaboration.

Familiarization (7.11-7.12)
As noted elsewhere, you inherit your baby project (roughly) 4% of the way through. Considering the fact you’re dealing with an 18 years long project, 4% is a lot. This means you’ll need to familiarize yourself with your baby.

Research (14.11-1.1)
In about a week, you will realize you haven’t the foggiest idea. You’ll read books, Google and call-up psychics. After two weeks you’ll give up.

Learning Basics (7.11-14.11)
In order to begin with the caretaking activities you will need to learn some basics. This includes (and is not limited to) feeding the baby, taking the baby for walks, keeping the baby clean and dry and keep the baby happy.

Caretaking Activities (14.11-?)
Apart from the developing stuff, you’ll actually need to maintain your baby. Have you ever worked on a project where you needed to maintain the data while actually developing system to manage the same data? We’ll it’s just like that.

Sleep (?)
What sleep?

Playing Your Favorite Board Game
I average 12 seconds a day. Which means I’ll finish a quick game of Go in about 450 days.

Household Tasks (daily)
The Baby Project is a perfect opportunity for your spouse to off-load some of the chores to you (this is an inherently bad idea – think Microsoft product support and India). At this time you have no choice but to pencil it in.

Teaching Basics (15.10-?)
A Baby requires you to teach it some of the basic skills of living in a civilized society. This includes (and is not limited to) eating, walking, talking, taking care of nature calls and to say “I’m really, really sorry” when he does something you don’t approve of.

Blogging (whenever)
This will fall under work-time (in case your boss is a cone-head, you will need to work at it at 1 am).

Monday, January 30, 2006

Mismanaging project(s) (part III)

Subtitled: Time management

There is no time management because a prerequisite to time management is – time. You see, it’s kinda difficult to manage something you have so little of. Just look at this blog. This was supposed to be a daily blog. See anything new for the past week?

But that’s beside the point. The point is your baby needs to learn time management. You need to teach him what daytime is, what lunchtime means and what nighttime brings. This is a serious matter. How serious, you ask? Of the utmost seriousness. Sounds serious, doesn’t it? Well, it is. You see - you and your baby need sleep. Continuous, 6 hour, non of that pre-R.E.M. stuff sleep. It’s a vicious circle. If you or your baby do not get enough sleep, you get cranky (a no-no) or the baby gets cranky (a bigger no-no), then you’ll both get even less sleep during the day. This will result in an even higher level of crankiness, which may potentially result in heightened levels of crankiness in your spouse (the biggest no-no of them all!). If this escalates… We’ll it’s probably best not to go there.

And yet there’s something even more important. After all that crankiness and petulance you’ll take a long look at your baby, you’ll take him into your arms and he’ll reach out with his little hands and grab you by your face and your ear and smile and say “Ga!”. And you’ll forget all the bad stuff that happened during your day, all the crankiness will leave your body, nothing else will matter and everything will be just fine. And you know what that is? That’s daddy management.

Something your baby doesn’t need to be taught.

Thursday, January 12, 2006

Mismanaging project(s) (part II)

Subtitled: Organization, structure and control

The first thing you must realize is this - you are not developing your baby from scratch. What you are doing is taking over a project nine months into its progress. It was a hostile takeover and mum (though sedated at this point) is not liking it. Naturally, the documentation is lacking and it is up to you to bring the project back on track.

So most of us turn to user manuals, operating instructions and best practices. As soon as you start delving into the available online resource on the subject you'll get the feeling 95% of the people in the biz range from different to nutz.

In short you have a half-baked product with heaps of undocumented features. The only thing you can do is try to figure it out yourself. This means testing. And I have some bad news on the way error handling is implemented in babies.

Wednesday, January 11, 2006

Mismanaging project(s)

Subtitled: Planning

As previously stated, project “having a child” has no planning stage. Well there may have been some informal discussions beforehand and certainly a decision (conscious or not) has been made at some point not to use birth control. But that’s as far as it goes I mean really – have you ever met someone planning their parenthood? Anyone out there estimating costs? Setting deadlines? Estimating resources? I thought not! There are exceptions but then again – too few to mention.

Speaking of resource estimation, this is yet another overlooked planning phase of our mismanaged project. Estimating resources seems just too easy. There’s a mum, usually a dad, a couple of grandparents, an uncle somewhere out there and your next door teenaged girl. She’ll end up under expenses later on – but for now let’s count her in. Well there’s just one thing wrong with it, it has nothing to do with reality!

First of mum will be out of commission for the first week or two. She just went through a last minute solution build and deliver process, you can’t count on her. Grandparents will just make things worse. It’s been ages since they last worked at a project like this. They’re retired remember? And you can forget about the uncle or the babysitter till the project is in the later stage of development. It’s just you - dad

Tuesday, January 10, 2006

Why the late start?

So why the late start? David was born on 7th of November 2005 which theoretically gave me ample time to blog his development so far. That’s what I thought – well up to the second day David left the production line and became an in-house application. Since then I’ve been averaging about 5h sleep time / day (most of it in fragments of 20 mins). So much for theory…

So anyone telling you kids are easy is either lying to you or is at best someone’s uncle (or an aunt). Kids are !easy. And with good reason. Try to look at a child as a software application. Look at it from a viewpoint of a project manager. Do you see what’s wrong with this picture?

First of all there’s no project plan. Kids happen (well, you know what I mean). There’s no planning stage. No parents have sat down and sketched how the baby should turn out. It’s a classic cowboy programming approach. “Let’s have kids!” Well this is the aftermath…

I’m not saying having a child is bad. I’m not saying I don’t enjoy every microsecond of sharing this planet with my son. I’m just saying there’s more to this then you’ve heard. People with kids will rarely let you in on it. It’s preprogrammed in us by evolution. Species without this have since went extinct. See Dodo.