Skip navigation

software projects

warning: Creating default object from empty value in /var/www/vhosts/ on line 33.

We've all seen (and most of us have written) plenty of poorly written code. But why? What makes us adopt poor practices rather than good ones?

Answer: Be An Agent of Change (3 Votes)

Uncle Bob. replies:

If you want to be a change agent, your task is to demonstrate that someone's perception of the bottom line is flawed. You need to show that the best practice really is best. That the benefits are immediate and significant. You need to show that the learning curve is small enough to endure and that at least some of the benefits begin immediately.

Read 36 remaining paragraphs | Comments

Your rating: None

An IBM Global CEO Study conducted in 2010 concluded that complexity was the primary challenge emerging out of its conversations with 1,500 CEOs and senior government officials.  “CEOs told us they operate in a world that is substantially more volatile, uncertain and complex.  Many shared the view that incremental changes are no longer sufficient in a world that is operating in fundamentally different ways.”

These same CEOs cited creativity as the most important leadership quality they look for over the next five years.  “CEOs now realize that creativity trumps other leadership characteristics.  Creative leaders are comfortable with ambiguity and experimentation.  To connect with and inspire a new generation, they lead and interact in entirely new ways.”

Over the past several years, we have seen a rising emphasis on design, creativity and holistic thinking in business to help us deal with an increasingly volatile, unpredictable complex world.  This is reflected not just in studies and articles, but in the growing number of design consulting firms like IDEO, as well as of design centers in universities, such as MIT’s Media Lab and the in Stanford.

Business is supposed to be all about applying hard, that is, quantitative, analytical approaches to management.  What then do we mean by bringing seemingly soft topics like design and creativity to business and why is it so important in today’s world?

Analytical approaches work well when you have a pretty good understanding of the product you are developing or when you are dealing with a well defined problem.  But, they do not work so well when dealing with highly complex systems with fast changing, interacting components, where it is much less clear what is going on in the present, let alone how things will evolve into the future.  We need different principles and processes to address this class of highly complex problems, many based on disruptive innovations which we have not encountered before.  This is where we need to turn to holistic thinking to pull together everything we know about the problem, and to creativity to try to make sense of what is going on and come up with a working, satisfying solution.  This is where we enter the world of design.

Design principles are particularly applicable to problems that are socio-technical in nature, that is, they involve people and technology, having to deal both with complex technical, business and societal infrastructures and human behaviors.  They are critical for dealing with the Grand Challenge problems we are facing in the 21st century, including health care, urbanization, education, energy, finance, and job creation.

What do we mean by applying design principles to complex, unpredictable, people oriented systems and problems?  Let me discuss three such principles based on my personal experiences.  The first is flexibility and adaptability.  If you look at complex systems as a kind of spectrum, with natural biological systems–e.g., living organisms, ecosystems and evolution-at one end and physically engineered systems–e.g., bridges, airplanes and microprocessors–at the other, socio-technical systems fall someplace in between.

While such systems,–e.g., the World Wide Web; a city’s congestion management system; an infrastructure for mobile, digital payments; a health portal for treating people with diabetes–are clearly engineered, that is, designed, built and managed by people, they share many characteristics with biological systems, in particular, the need to be flexible and adaptable so they can evolve into the future as technology and market requirements change.

This is easier said than done.  There is a continuing struggle between complexity and robustness in both evolution and human design.  A kind of survival imperative, whether in biology or engineering, requires that simple, fragile systems become more robust, that is, be able to continue operating under lots of different conditions, including the failures of individual components.  But the mechanisms to increase robustness will in turn make the system considerably more complex.  Furthermore, that additional complexity brings with it its own unanticipated failure modes, which are corrected over time with additional robust mechanisms, which then further add to the complexity of the system, and so on.  This balancing act between complexity and robustness is never done.

Critical to designing flexible, adaptable complex systems is the use of platforms based on open standards, as well as an extensive industry ecosystem to generate complementary products and services.  This results in a much greater potential for innovation, growth and robustness than could be generated by a single product from a single company.

Quality of experience is the second major design principle I’d like to discuss.  The industrial sector of the economy is oriented toward the production of physical goods.  Product excellence and competitive costs are its key design objectives.  Much of industrial oriented R&D is thus focused on innovations in development, testing and manufacturing that will result in products with increased performance, efficiency and quality.

But socio-technical systems are oriented toward people and services.  While product excellence and competitive costs are also important to services, they are not enough.  The service sector is oriented toward consumption, that is, toward people, who are the consumers of services.  Therefore, an overriding design objective for good socio-technical, service oriented systems has to be a positive user experience.  Ease of use, intuitive interfaces and good overall customer service must be key objectives for a well designed system.

While advances in technology are now enabling us to bring major innovations to services, most of the really hard issues are not technical at all.  They are human.  A well designed, well engineered, and well managed service system must be primarily centered and optimized around people, whether we are talking about a patient in a healthcare system, a customer of a business, or a citizen dealing with the government.

Most industrial R&D takes place in labs and factories, but that does not work for services.  The bulk of research and innovation in services has to take place in the marketplace, where the people who consume the services are.  The marketplace is truly the research lab for innovation in services, the place where new service ideas have to be developed, prototyped and tested.

Finally, let me talk about the central role of marketing and communications as a design principle, arguably the least understood such principle.  To succeed in the marketplace, it is not enough to have a flexible, adaptable system along with offering a high quality user experience.  These are necessary, but not sufficient.  You must also have a well formulated market strategy–that is, a strategy for succeeding in the marketplace–that explains what you are after in the most compelling way possible, as well as an effective communications strategy to get your messages out to all key stakeholders.

This is particularly important when trying to communicate something new, complex and potentially disruptive, which your audience–including clients, employees, partners, press,  and analysts–has not seen before, which they don’t understand, and whose value will take a while to fully play out.  An example I was personally involved with the formulation of IBM’s e-business strategy in the mid 1990s, while the Internet and World Wide Web where still in their relatively shaky early years.

You have to engage your audience in a conversation about the future you are after.  You have to gain their trust by clearly telling them what’s in your mind, your aspirations, your questions, your doubts, your frustrations, what you know and what you don’t know.  You need them to come along with you for the ride and essentially help you deploy your strategy in the marketplace by becoming early adopters, partners and evangelists.  The more powerful, important and complex the messages you are trying to convey, the more important it is to do so by telling a compelling but simple story that resonates emotionally with your audience.

Advances in technology–faster, more powerful, less expensive–are concrete and visible.  Design is subtle, more subjective, more open to human interpretation.  But, as our increasingly advanced technologies enable us to build larger, more capable, more complex systems, the role of design becomes ever more important.  It is the only way to ensure that our technologies will help us deal with our increasingly hectic lives.

Your rating: None