GridPulse

as stimulating as black coffee and just as hard to sleep after.

Archive for the ‘Working smart’ Category

TLDSP: Inception, or what you do before you begin

one comment

Noun
S: (n) origin, origination, inception (an event that is a beginning; a first part or stage of subsequent events)

Inception, the first article in my The lore of delivering software products series presents one of the key phases of a software project, a phase so important and sensitive that it alone may decide the final outcome of the project: success or failure.

This is a phase of discovery, acquaintance and assurance both for you, as a provider and for your customer, which so anxiously awaits the day when he can reap the fruits of his financial and social investment in this new project.

This phase is the one that lets you see if the customer is fully involved in the project and is really ready to go the extra mile with you to see the project delivered; this is the phase that tells you if the customer really cares about the project, the product and the benefits that it will bring to the general end-user population, or if this project is only done just because it should, because the budget is there and because people really need something to do and a project is a good thing to do, over and over again.

All or nothing

As we all know, there’s a mythical ratio that everybody avoids mentioning in project meetings or project briefs, namely “two thirds of all software(system) projects fail”. It’s true, they do, but I’ll let somebody else write the series on project failure.

Inception

Photo by conray

Now, as we know, failure is a very relative term in the software development and integration world. A project can be successfully implemented and used on a nation-wide level while being a huge failure for the company that implemented it, because the costs were 200% more than the contract value. Eh, they’ll be able to use the good references and maybe, in the future, they’ll learn from their mistakes.

Most software projects fail in this phase, which is a good thing, if you want to fail, this is the best phase to fail in, and there’s a good reason for that.

In this phase, your investment, as a provider, will be minimal and – wait, let me rephrase that – your investment in this phase should be minimized, always. Under no circumstance will you start developing the product or purchasing

Your senses must be alert at all times, during all meetings with the customer and your partners, ready to sense any problems, even before any of them can cause them, because they will. If you feel that, even from the first meetings, the engagement of the customer is not up to the challenge, address this issue. If addressing this issue does not work, prepare a contingency plan… an exit strategy. Who knows, maybe you’ll need it.

If the engagement of your customer and your partners reaches your expectations, the project seems to be on track or it’s steadily getting there, you have a moral responsibility to take this project to delivery… and success, because quitting the project once you have completed this phase you cost you not only financially, but it will also hurt your image.

The real stuff

Enough with the chit-chat, and down to the quick and dirty business. This article is actually about what you should do to ensure that the project has a smooth start and that everything is on track.

What you do, as a service provider, is the most important part of this phase. You are responsible for planning and executing most of the activities of this phase. Most importantly, you are responsible with the engagement of the customer and partners in these activities. If you are not the prime contractor and you see that they’re holding back, your main task is to engage them and to make them realize the importance of this phase.

- Be professional, be polite, never over-commit and under-achieve
- Just as you can, the customer can prepare and execute an exit strategy and find another supplier

The activities and outcomes you must target

In this phase there are some things that must be accomplished just for the sake of it and there are other things that are really important and can decide the fate of the project. Just like in life, the ones that really matter seem to avoid the eye.

Activities and deliverables for this phase are split up into two categories:

1. Important to your customer (will actually make their day happy):
- Interim project plan, or working with them on the project plan. A third of the project should be enough. Remember, we’re talking macro planning, a WBS 3 levels deep. Details spoil the whole thing. You know that you’ll have to deliver the final plan sometimes soon, so why not involve the customer in the process.
- Quality assurance, the magical term stating the fact that the project will be guided by quality and that quality assurance procedures will be part of every activity. You know, like testing, standardized work, proof reading, that sort of thing. Yes – you got that right – proofreading documents. Don’t put it in the plan. Just do it!
- Promotion (dissemination) plan. If it’s a big project they’ll want to show it off. You’ll have to create a visual identity, advertise it on TV, have press conferences and go to international fairs and summits. Who knows, maybe it will increase your business in the vertical, it usually does.
- Knowledge transfer, or how the French would put it “transfert de savoir-faire”. You have to do it. I know that vendor lock-in is really sweet, but transferring the know-how to your customer will save you a whole lot on maintenance, technical support, upgrades and it will give them the sense of independence and self determination that they desire internally. This is a real gem, and I’ll talk about it in detail in the future.

2. Really important, even critical for the outcome of the project:
- Identify the internal apparatus of the customer. This is really important! You have to identify the organizational chart of the customer, in regard to this project, the mirror image of your own organizational structure. The most important positions to identify are: who will oversee delivery, who is the person that will give you access to the end-users (this is really important), who is the main stakeholder, the project owner on behalf of the customer, the one that really cares. Usually, the people that hold the power are not the apparent ones. The project director on behalf of the customer will only sign the delivery if one of his aids will give him the technical and business approval. Find these people, as you will really need them during the project.
- Communications plan. Who you talk to, what will you talk about, how often will the meetings happen. It’s a project buster! Having a good communication plan, accepted and executed by you and the customer will ensure that you’re on the same page, all the time.
-The kick-off.The meeting that says it all. Have your team meat with the customer’s team. Show them what you’ll be doing for them. Do it clearly and slowly. Use graphical means. Don’t scare them away. Include everything on this list, even as bullet items. Get a feeling of the customer’s team. Are they into the project?

All of the things above are coming from a pragmatic perspective – just sharing with you what works – not a project management one. Maybe a full blown project manager will have a few more plans or a few more activities up his sleeve or maybe your project has these activities set in stone, some do. The bottom line is that if you cover all aspects but always keep an eye on what your objectives are for this phase, then you’re on the right track.

Your objectives… achieved

To conclude, your minimal objectives for this phase are:

  • Get to know your customer and your partners
  • Show your customer that you are professionals and that you are at their disposal
  • Have a project plan, at least for the first third of the project
  • Identify the internal apparatus of the customer. Identify the people that matter
  • Setup a clear and concise communications plan
  • Have a kick-off, meet face to face as often as possible
  • Never over-promise and under-deliver, especially not in this phase!

If you achieve these objectives, you’ll be on the right track to a sustainable project, where all parties are engaged and willing to give their best to produce a great, usable and long lived software product.


Some of the topics expressed here will be elaborated further in my The lore of delivering software products series so stay tuned in for more information.


Written by Bogdan

March 2nd, 2010 at 11:44 pm

Posted in Projects, Working smart

Tagged with

The lore of delivering software products

one comment

The lore of delivering software products is a small series I’m writing about processes and best-practices meant to pave the road to delivering great software products.

Jamie Zawinski, as quoted in “Coders at Work”, elegantly summarizes everything that I’m trying to express:

“At the end of the day, ship the f*cking thing! It’s great to rewrite your code and make it cleaner and by the third time it’ll actually be pretty. But that’s not the point—you’re not here to write code; you’re here to ship products.”

This is not a series about programming, using a specific framework or development methodology, although it includes bits of everything.This is a series about improving the way you work, focusing on the project at hand and delivering great software on time, on scope and on budget.

This series encompasses the lessons that I’ve learned by repeatedly hitting my head against problems with projects, people, processes and occasionally, my own stubbornness.

Delivering software products

Photo by Damon Duncan



Series articles (list may change):

  1. Inception, or what you do before you begin
  2. Fraternization, or creating friends and allies
  3. Fixed scope, or the holy grail of software development
  4. Dangers, or the risks of the trade
  5. Genesis, or coming into being
  6. Shims, or the tools of the trade
  7. Construction, or getting it done
  8. Quality, or the other part of construction
  9. Spells, or handing over the knowledge
  10. Done, or how “the best is better than good”
  11. Covenant, or what happens after you’re done
  12. Phoenix, or rising from the ashes

I’ll try to publish one every week, starting with this week’s article, “Inception, or what you do before you begin“.

Feedback is welcomed, bad feedback even more.

Written by Bogdan

March 2nd, 2010 at 11:44 pm

Posted in Projects, Working smart

4 tips on how to avoid a Twitter-induced productivity loss

leave a comment

It hasn’t been a long time since I’ve been using Twitter. I’m just getting the hang of it, following the bloggers and the book authors who’s materials I enjoy, news tweetters (local and global) and some random people that make my day happier through their tweets, so I don’t consider myself an expert and you shouldn’t either.

3480073167_858a626014
Photo by Louis Abate

What I have noticed though is that Twitter is pretty addictive once you really understand what it is, and what it’s not. Once you understand that it’s not just a website where you tell the world that you are just about to take a shower or eat a peach and you really start to use Twitter you’ll notice this too.

Ever had the feeling that you really want to see what the people you follow have to say right now?

Ever pressed refresh on you browser or clicked “Update tweets now” in you Twitter client twice in a couple of minutes?

That’s called “a distraction”.

It’s what makes you less productive by getting you out of your “flow”.

Humans are not multi-tasking. We just like to think that we are!
Once you are distracted and you loose your focus on the task at hand it may take a couple of minutes or even an hour for you to get back you rhythm.

So here are my four tips on how to avoid a productivity loss:

1. Don’t check Twitter updates very often
Checking what’s up on Twitter every second destroys your concentration. It isn’t really helpful either.
When you feel the urge to press refresh or to click that “Update now” button – just stop.

If you have a Twitter client go to the settings window and set the auto-update frequency to a large value, like 2 or three hours. This way you won’t see the pop-up that often and you won’t feel the need to see what everybody is saying.

In time you will get accustomed to the reality that tweets are not critical.

2. Only follow people that deserve it
If you will follow the first tip, this second one is a must!
By checking Twitter only once or twice every day you will accumulate a lot of tweets, tweets that you will have to either read or ignore.

Making sure that you only receive high quality tweets from high quality tweeters will make your time using Twitter more pleasant.

You can do this the simple way – just unfollow anybody that annoys you or that tweets things that you have no interest in (like getting rich instantly by clicking on a link)

3. Use a client that has good filtering
If you follow the first tip and check Twitter messages rarely you’ll soon have a lot of them to read. Even if you follow the second tip you’ll still have a lot of them so a good client that has good filtering will help you read what you are interested in.

Just filter by what you are interested in or by author and get the most out of the Twitter experience.

4. Only tweet if you have something valuable to share
One would say that if so many people are tweeting, a lot of interesting content is generated. Wrong!
Most of the Twitter content is noise. People announcing their third pizza for the day, people charming you into “winning a million dollars” or even automated bots auto-messaging and auto-following everybody.

You can help stop some of the noise and make yourself more useful (by not spending you whole time tweeting useless stuff) by just tweeting interesting content that adds value to your followers.

That’s it for my 4 tips on how to avoid a Twitter-induced productivity loss. Please leave your thoughts and experiences using the comment box.

Preemptive strike: If your job is monitoring Twitter for product-related complaints, if you are a marketer or publicist using Twitter as a business model or if you are a Twitter spammer you can just ignore everything that I just said.

Written by Bogdan

May 27th, 2009 at 7:58 pm

Posted in Productivity

People are reminding me that I like my job…

one comment

It’s not a 9-5 job. It’s an every moment you’re awake job because you actually enjoy the work that you’re doing.” – Jeffrey Kalmikoff

Somebody stopped me on the street this morning. I was just walking, wearing jeans, a t-shirt, my backpack on, headphones and a gray woolly hat… a coffee in one hand, a smoke in the other…
I guess I was also kind off dancing, you know when you walk shaking your head because you’re listening to something nice…

This guy just stopped me and he said “Hey, what are you listening too?“, I tell him. He says “Are you going to work?“… I’m already thinking “maybe I know him”.

He says “Dude, you must really have a nice job, and you must really like it. You look so relaxed, it’s 10 AM, you’re not in a hurry and you look happy… Anyway, have a beautiful day“. Then he just left.

He is absolutely right, although lately it’s been really crappy(cotton picking, sugar-cane cutting crappy), I still really like my job…

Written by Bogdan

February 5th, 2009 at 10:37 pm

Posted in Working smart

Let your team members be creative

leave a comment

“Where all think alike, no one thinks very much.” – Walter Lippmann (1889 – 1974)

I have always considered the induction process used in companies a joke when applied to technical employees, especially to software developers.
Getting the new guys and gals to learn and follow procedures such as purchase requests or others related to the internals of the company is OK, teaching them about technologies, code style, general programming and design principles is also OK, reshaping the way they think forcefully is just stupid.

Ligh bulb

The uniqueness of every technical resource in you team must be harnessed and used to benefit the project.
If you are coordinating a project try to nurture creativity, don’t force your idea on how to implement a certain feature, let your developers invest fresh ideas into the products they are working on.

This way you create a win-win situation, your project benefits from fresh ideas and your developers relate better to the project they are working on.
Technical people devote more of their time and passion into the things they enjoy, such as following their own plan. The most important thing about letting your team members be creative is to stop them when they are wondering off.

You can also use this in brainstorming sessions. Never let any of your team members just listen without interacting. Ask them what they think and what would be their solution to the problem at hand.

What they consider to be a dumb idea could be the best approach to your problem.

Written by Bogdan

July 24th, 2008 at 12:48 pm