Audio version of 7 aspects to get control back on your projects

Here is the audio version. It applies the principle of improving by doing. Even if not so satisfied of the way it sounds, I release it anyway, it is still useful.  

Download Episode

What does it mean to be in today’s technological world?

C64 - CC by Martin Whichary

Looking back 20 years, the landscape was completely different. Even comparing 2000 with 2010 shows a significant change. Someone said that one will always overestimate technical change over a period of 2 years, but will always underestimate it over a period of 10 years. Having been active in this field for more than 20 years (I turned 40 at the end 2009, and have been busy with tech and computers since I was 14 or so),  I think that the previous sentence is quite accurate. As a kid, I remember that I was buidling fancy little boxes that looked like communicators, with a lot of buttons and functions. Well, I now have this thing in my pocket: my Blackberry Bold  smartphone. And there is also an iPhone 3GS around here, so I even have seen the future (okay, there is an iPhone 4 now as well but you'd better keep your hands off of it due some weird antenna issue).

What does today looks like?

Today, we have the following characteristics:
  1. complexity: complexity is a given. Be it the feature set, the network parts, the layers over layers, it just gets more complex. We are building on the shoulders of giants.
  2. shortening of cycles: a product is now designed with an obsolescence cycle of less than a year. Two years in mobile communications looks like forever. A framework will get dated after a month or two.
  3. competition: competition is everywhere and working in a commodity-looking like mode is a sure way to got shot in the head, in a cutthroat environment. Heck, even China talks about outsourcing too expensive people.
  4. scale: we talk thousands, or even millions of users at the same time. We talk smart metering with tons of devices calling home. We talk peer networks. We talk millions of images, or videos.  And it can be done. Google, Amazon, eBay, Facebook have shown that technology is not the limit. (Albeit funding may well be: ads are great).
  5. jump on the bandwagon syndrome only worsening: there is a lot of lemming-like mentality going on. Look at the mobile phone market. It just mushrooms like crazy, same story with the iPad and tablets. Wikis, CRMs, the framework or language of the day (did I said "Enterprise 2.0", oops): copycats and bandwagon effect is multiplicated by a huge factor. No way out, either go with the band and make your music, or see it pass and be left on the side of the road alone.
Ignoring these will only occur at your own peril. We are on a neverending learning treadmill. Do not invest in your continuing education, and you'll be made a dinosaur in less than 2 years (this is the optimistic estimate).

What is different from the past?

Comparing things with 1993 for example, where I was crafting interactive voice response systems for games and banks, there has been quite some progress. Gone are the days where you've got to program your own UART routines, or DMA Mod Player ASM code! Now we have:
  1. Zero Defect mindset: we'd better have better quality components if we want to keep up with the increase in complexity. Just considering that we can now have chains of more than 100 things connected together, just make the math: with a probability of success of 99% for a component, chaining 100 end to end will lead to a success rate of (0.99)^100 = 0.36 So, we need to have high quality tested components to keep on working, otherwise too much would break. That's why things like TDD (Test Driven Design) are quite effective. They do attack causes rather than consequences.
  2. Online stores: instead of chasing applications, we are more and more shopping online. To the point that some shops have the following issue: people come to look into the shops but do not buy there. They go back home, connect, and shop on line for a cheaper price point.
  3. Open Source as a program museum: this speeds the learning curve tremendously. Designers have the MOMA, coders have the Forges.
  4. Fragmentation is increasing: Java-Dalvik, PHP-HipHop, Android custom, OS X, WinXP, Vista, Seven, iOS4, WebOS, ... Get used to it, you'll have to pick your technology to the risk of being turned irrelevant. Expect to switch languages, platforms and paradigms several times in the course of a carrer.
  5. Mobile: the mobile is everywhere, there will be more people using mobiles than desktop and laptop machines. A smartphone with a bunch of small apps goes a long way in replacing a PC. It frees you from the desk. Social life is (somewhat) normal again.
  6. The Intertubes: The internet is a godsend. No need to hunt down mysterious documentation, no more need to travel like a migrating bird. Bandwidth is awesome, resources are plentiful. And affordable. We've got 15MBps in the house and it costs almost nothing!
  7. Globalization: the best thing. Services can be rendered remotely to all parts of the world. How cool is that? Teleconferencing, skype, outsourcing of work are a reality. I carried one of this year projet all over the web. Not even phone calls. Two meetings with the end customer: one for saying "hi" and the other one for getting a sheet of paper signed off as proof of project completion. How cool is that? The development was occuring in Bulgaria with one of my partners. Best of all, the full history of the project is on-line, fully archived and available for updates.
  8. Digital natives: Kids have always been exposed to tech that rocks and know how to manipulate it. Nevertheless, I doubt they know anything about double-linked lists and pointer dereferencing. So, in a sense they are able to use the technology, but not always grok how it works under the hood. I was surprised to see that some coders weren't able to use a command line at one customer's location! Wow.
  9. Speed: Things are getting faster. Adapt of fall into the darkness.That's why the art of letting go and moving on is of such critical importance today.
  10. Creative Commons: great licences to use content, images, resources. A culture of sharing and leverage.

How are we coping?

Pretty well actually. We have the most powerful machines of history, the faster communications, almost ubiquity. Several elements are emerging to help us.  Let's just look at some points in the software development field; - Frameworks - Convergence (e.g. Dynamic keyword in .net 4) - TDD : usage first - Practices instead of full process for adoption - Solutions: Tiki, Drupal, SugarCRM - Specialized devices (Blackberry, iPhone, iPad, .Videoplayers, Settop boxes - Making the grid/cloud the next level (eg Heroku, Rightscale, Azure, Amazon EC2/S3) -Safari On Line all of these make things much faster and of a much higher quality.

What I think the future is

I would like to share some trends I do see coming. It will be interesting to look back at them in a year or two (and it 10) to see how accurate these were.

CC image by bfishadow

- Growing divide between users and developers: developing solid innovative code will require quite complex integrated skills and the war for talent will make that worse. - Back to a proprietary model for innovation: look at Apple, they put a lof of conditions in their licences to ensure a iron clad control on their platforms. Who owns the platform own the ads revenue. And owns the ecosystem. - Commoditization of everything midrange: and midrange may well mean more than we think! - War for talent: the need for talent grows faster than the available people. Talent is what makes or break a given initiative. If talent is rare, talent will go where things are "cool", "fun to do", and "inspiring." If an organization cannot afford talent, it is going to be doomed into mediocre solutions that suck. - Social fracture: the education system that we currently have is building a social fracture between those who can have access to stellar education and the rest. This is going to grow worse. - Support communities on the web:  communities like http://www.5000bc.com for example are going to become the places where people can learn and grow. These are run by dedicated people who master their art. Success and e-reputation will make or break one's carreer. In a world of swift changes, the communities one is part of may well end up being the sole stable factor.

Parting words

We've come a long way and it is incredible how much was done in such a little time. We haven't seen nothing yet BTW. Neuroplasticiy and the ability to learn will require one to hone his best asset: his brain and its ability to grow its power, be it as a singular unit or hooked with machines and other people. The ecosystem of the future is already there.

7 aspects to get control back on your project

Projects and systems sometimes enter a state that we can quality as “unstable” and “full of black magic.” And at times, they even bite you: your career, your private life, your sleep, your sanity all can suffer from these monsters. Grabbing control back from the jaws of chaos will never happen by accident and do require a structured approach and a dedicated team. Everything unstructured and unfocused will only continue to keep the “monster” under life support with a huge number of time bombs ticking, waiting to explode at the most annoying possible times. That's Murphy's law and Murphy's law corollary: if you think that things couldn't be worse, you haven't seen nothing yet! This article outlines an approach that work for such situations.

You cannot control what you do not measure

In order to regain control, you need to be able make sense of what is in front of you. Let's be clear upfront: you may want to do things fast, and that's all nice and well. But you still have to be good. Fuzziness is not going to be your friend in this effort. Always keep in mind that taking shortcuts is what ended up creating the mess. Here are the 7 key aspects of the approach:

7 aspects to get control back

Aspect 1: Finding out what “the thing” is about.

Usually, this requires clarifying what the core concepts and constructs of “the thing” are. This will lead you to build backgrounders and whitepapers to explain them. Usually, there are studies mixed with “the meat of the thing”, these have to be segregated in their own area. Once all of this additional material is out of the way, you can get to the next step.

Aspect 2: Getting the lay of the land by slicing and dicing “the meat of the thing.”

This is to be achieved by modeling the system in order to create a solid backbone onto which to graft bones and muscles in an orderly fashion. This usually entails creating:
  1. a synthetic functional overview with a use cases model
  2. a controlled vocabulary with a rich domain model
  3. a capture of policy in business rules and business policies
  4. a view of system of systems when dealing with such things
  5. a number of key tracing relationships between the above elements
In structuring the system, clear boundaries have to be set on the subject of functional specifications, design, implementation, and operations. Mixing all of them in a huge “stream of consciousness” bundle is guaranteed not to work. It is worth noting that achieving such a feat does require motivated and competent people. Stressing the hell out of your people is the sure way to freeze them and get no real result. Research on what is called “neuroplasticity” shows that stress is in fact killing neurons in the brain. So, in the face of the challenge, and in face of the need to apply a new approach, what you need are brains that work at their full potential sorting out the mess. Not stressed brains spinning their wheels in first gear that do get dumber over time. This is where the true leader can make his mark: by being an avatar of the wanted behavior, taking a stand, and working with a time horizon that reasons based on TCO (Total Cost of Ownership) and not the release of next week.

Aspect 3: Finding out the possible skeletons in the closet and putting them back to rest

Using the backbone defined above, you will look for the skeletons hiding in the closet by listing the key risks associated with the weak parts, the fuzzy parts, the parts that do not make sense. You will succeed by putting the top risks under drastic control. Risk control must be what drives your priorities.

Aspect 4: Planning for success

Failing to plan is planning to fail. This is a very dusty saying. But it is very, repeat after me, very true. Good. But how do you plan for success? Everybody can plan “tasks”, and “activities.” But a bunch of activities doesn't make a great plan. When you are “having a plan,” it'd better mean “having a plan that holds water,” not a plan to sink to the bottom. I do recommend that you work with important concepts from two project management methods that are proved to work: the Objective Breakdown Structure (OBS) from GDPM (Goal Directed Project Management) and the Product Breakdown Structure (PBS) from PRINCE2. There are a lot of other things in these, but focusing on the essentials, risk, objectives, and products make up the key elements upon which to plan work. The key advantage of the OBS is that you can structure them into:
  1. Enabling Factors: what you need to have available. Prerequisites, education, software, resources, … The objective is to get the enabling factors ready.
  2. Core: what you are caring about: the system at hand broken down into parts. For doing this, you'll use the PBS. The objective is to have every part understood and under control.
  3. Support Functions: what you need to put in place so that the system doesn't crumbles down in dust after the act. Documentation, support procedures, … The objective is to have the support function available in the organization and supported.
So, you will create an OBS for your system based on the structure outlined above. Then, you'll have to think about how to assign people on elements so that they will be able to be working towards objectives and product elements of the OBS and PBS. To help you, it is a best practice to establish a milestone plan. You'll assign objectives and core product bits to milestones. There is much more to say on this but this would lead us to a full treatise of project management. Let's keep that for another time.

Aspect 5: Getting the ball rolling

In order to get the ball rolling, you focus on getting all enabling factors ready. The key message to pass to the team is that what you expect is commitment, not mere compliance that will lead nowhere. Double-talk and “do as I say, not as I do” must be banished. It's really of paramount importance to keep resource allocation commitments and planned times for working. Having a communication infrastructure in place is a great advantage. This will help in putting together all findings with ease. The main challenge here is to overcome inertia, entrenched habits, and behave yourself to avoid getting back to old ways (that were incomfortable, but at least, they were known). Indeed getting better and improving is hard, committed work. Still, the rewards will be much more than the investment.

Aspect 6: Keeping a finger on the pulse: Tracking progress

Once the ball is rolling, it must not stop. Since you have a new OBS>PBS structure, you have something against which you can track progress. You measure progress through a dashboard. That can range from a crude spreadsheet to an advance project tracking package. What is important to remember is that the tracking tooling must be adequate for the endeavor size: no need to create another time black hole by choosing an overkill tracker. Also, you track progress based on the objectives. Each objective has several states (e.g. Identified > Described > Under work > Achieved > Evaluated). The point is to get the state of the objectives moving forward. That's what activities are doing: moving the state forward. Remember to keep track of risks as well. New risks do popup and special care has to happen, meaning updating the OBS>PBS and other elements. Also assess the quality of the work products on an ongoing basis. This must not be an obsessive thing but as described in the Hawthorne effect, results usually improve just because people know they are watched. Last but not least, take measures to ensure the growth of the skills of personnel along the way. This reinforces motivation, something you need very badly along such an effort. Indeed such efforts may be thankless for a while. But this is linked with the fact that one's need to integrate a lot of factors before making sense of all elements at hand.

Aspect 7: Continuously Improving

To ensure the best possible outcome, you must take care of the continuous improvement aspect. Merely applying a standard recipe never makes the mess go away. Instead you focus on dealing with the “bar” (like a bar you've got to pass in sports). First of all, the bar has to be understood. To that extent, you'll establish a set of criteria to evaluate its location. When establishing that set, bear in mind that establishing a set of criteria doesn't mean that you'd have to be perfect. This requires to understand the difference between the mindset of perfection and the mindset of excellence. Someone defined perfectionism as taking care of something in a way that left other equally important things in derelict. This view usually helps as a wake up call. What you are after is excellence: doing better each day than the day before. Also, quality assurance is your friend, not a foe. Like you do not take your speedometer responsible for the way you drive, quality assurance people are there to give you tools and measurements. You call the shots when it comes to targets and commitments. So basically tou'll find the following things to do when considering the bar:
  • understanding how to locate the bar position
  • qualifying your current position vs the current bar position
  • Passing the bar
  • Raising the bar
Let's look at these in turn: Understanding how to locate the bar position: means that you can set a number of criteria helping measuring where the bar is. Qualifying your current position vs the current bar position: means that you are performing an evaluation of the current state of affairs vs the current bar as defined by the criteria. This will basically help you come up with a global quality evaluation index along the following scale:
  • Zero: In limbo
  • One: Evaluating
  • Two: Improving
  • Three: Decent
  • Four: Good
  • Five: Excellent
Passing the bar: means that you are taking action to pass the bar. Once done, it will be time to improve. You do not want to improve before even trying to do a jump. This would amount to procrastination, which is the least thing you want here. Raising the bar: means that based on your last successful pass of the bar, you will decide on what to improve to do better the next time. When raising the bar, just keep the following in mind:
  • Do not attempt to jump into the stratosphere right away. Unrealistic goals are depressing. And never met.
  • Grow confidence through learning by doing. Do not become a castle in the sky builder. Rather, apply your skills on real cases and move from the pragmatic experiences.
  • Realize that the first steps are going to be hard but that things will go much easier quickly. Persistence counts!
  • Advance one thing by a mile instead of a lot of things by a notch. Otherwise, you are diluting your energy for no visible results. That's the power of focus.
  • Learn that there is a ceiling to

Summary

Taming the messy monster is a challenging undertaking. Nevertheless the benefits for all involved parties are immense when it comes to performance, added value, organizational dynamics, and innovation. By focusing on structure, follow up, and improvement you'll get a lot of added clarity that will improve the performance of your personnel by a very significant factor (I dare to say a factor of 5-10 when factoring in yearly costs of the messy situations and the opportunity costs). The 7 aspects will come handy when facing the monster.

Taking action today

Let's tame a beast!

Instill the dynamics of quality into your coaching community with groupware

I've got a new article, titled "Instill the dynamics of quality into your coaching community with groupware" To develop a quality-first mindset inside an organization, it is of utmost importance to develop a coaching community to carry the message and walk the talk. The coaching community needs a way to manifest its presence inside the organizationto and a groupware solution forms a powerful way to do so. Check it out.

Ma théorie sur les composants réutilisables

J'ai retrouvé ce MP3 avec ma théorie sur l'organisation des composants au sein d'une entreprise qui traite de projets et d'opérations de maintenance. Ceci revient au goût du jour pour moi car le challenge se représente.  

Download Episode

Is your way of working driving you crazy?

Some insights into what works and the future in an interview with my good friend Luc Taesch.  

Download Episode