Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am looking for a few ideas on how to change a highly conventional work culture to be more innovated in their approached to problem solving. I've come across this article and am looking for more specific and practical ways that we as developers can help each other think outside of the box.

I've constructed a simple formula of how to energize innovation in my everyday development. (Please critique this for improvement)

Input External Data/Info -> Creates New Ideas/Concepts -> Communicates/Shares Ideas -> Trusts Others -> Risks Trials -> Innovation Happens

What are some of your attitudes, thought processes, and behaviors towards approaching a challenging problem in way that would be considered innovative?

share|improve this question

closed as not constructive by gnat, Yannis Aug 13 '12 at 7:28

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

Learn TRIZ. While this is focused on engineering, a lot of principles can be applied to software engineering as well. –  Sardathrion Aug 13 '12 at 7:07

9 Answers 9

up vote 13 down vote accepted

I found three effectives way to stimulate innovation and creativity:

Be naive

You won't be influenced by existing way of doing things.

Read a lot different things

I've noticed that the combination of ideas often create a much more bigger one.

Clear your mind

I got my best ideas while relaxing in a bath or on my ride-on mower...

Your creativity will comes naturally... now some persons are more creative than other. This is set in the very beginning of your life.

How to encourage this in an enterprise ?

One day a month, mix people accross department

Encourage people to read books not specifically related to their qualification

Periodically, organize some team building outside, mix departments. Integrate some workshops where people can listen to problems of others and make suggestions. Sort of brain storming.

After that, you must ensure that you have a follow up, so someone in your organisation will have to track all ideas, prioritize them, and ensure that they are taken in consideration.

I've seen that process in one large enterprise I worked for. That's was really effective. They also gave a sort of funding once a year to their employees to develop one of two ideas they selected.

share|improve this answer
Are you sure naive is the word you want to use? –  ChaosPandion Oct 14 '10 at 18:32
Of course yes, naive means lack of experience, understanting, ... that forces you to innovate, since you have no references. That's why "newcomers" in a industry are often more innovators than the old guys. –  user2567 Oct 14 '10 at 18:36
Naive unfortunately also has a negative connotation along the lines of "gullible, stupid". I'm having trouble coming up with an alternative, though. –  Anna Lear Oct 14 '10 at 18:41
I've heard that people are more 'set in their ways' when the get older. I've noticed that older people are less open to new ideas. Could this affect innovation if the majority of the population you work with is older? –  Adamizer Oct 14 '10 at 18:42
@Anna, yes I can understand that, I can't find another word either. Maybe "fresh" ? @Adamizer: I agree, I think it's because they are not "naive" anymore and get bored –  user2567 Oct 14 '10 at 19:15

In order to innovate, it's critical that you see the forest for the trees.

As crazy it sounds, I'll often try to mentally put myself behind the eyes of a typical user of my application. For instance, a few years ago I was designing an industrial automation tool for a large manufacturing firm. One of the goals was to allow the floor supervisors to monitor the progress (and quality) of the employees on the floor. Each employee worked at a station and there were only a handful of supervisors. I actually went and visited the facility and tried to put myself in the shoes of the supervisor. It occurred to me that integrated Andon lights would make it easy for floor supervisors to monitor the floor at a glance. I would never have thought of that unless I put myself in the supervisor's shoes.

I guess the moral of the story is to consider your end user. Frameworks, patterns, etc. are awesome, but, in the end, your user is never going to see or know about any of those things. Stepping back and getting a perspective on things really helps to add tangible (i.e., billable) value in my experience.

share|improve this answer

Often the most original and useful innovations come not from the question "how can I solve this problem?" but from "how can I solve this problem with only these tools?" That can lead you down avenues that you might never explore otherwise and often produce interesting and unexpected side-effects.

The other thing that has helped me to write more original things is laziness. I'm a horribly lazy person and I don't enjoy repetition, so after a while I start thinking "I wonder if there is a way I can make this code deploy itself so I don't have to go through that whole deployment rigmarole every time" or "hey, all these classes look similar, I wonder if I can write some code to create them for me automatically so I don't have to go through and do it myself" and so on. Then I try and design for the lazy user, so I don't just think "what is the quickest way to get this written?" instead I think "if I was using this, what would be the most amazingly great way for this software to work?" Of course, I rarely actually get as far as implementing those ideas, but it opens me up to a different way of thinking about the problem and gets me thinking about the design from a different perspective.

share|improve this answer

I am looking for a few ideas on how to change a highly conventional work culture to be more innovated in their approached to problem solving.

I'm all for innovation, but it is not clear why it is being pursued here.

Do they need to change? Are they sufficiently effective at what they do, for the problems they are paid to solve, in their conventional ways? What are the clear short-term and long-term benefits of changing the current modus operandi?

Don't attempt to change a work culture unless there are:

  1. Clear, objective observations on things that are currently detrimental and need to change, and
  2. There is a clear ROI in the cultural/process change.

Change for the sake of change is not worth pursuing, and innovative does not necessarily translate into increased efficiency. There should be a clear problem statement that is worth solving. Unfortunately, I do not see that clearly stated in the question.

A development group is first and foremost a problem solving machine that does not to run as its most efficiency. It simply needs to run optimally and predictably. Predictability is the most important quality because such a group must manage risk and uncertainty. Methodical management of risk and uncertainty are at the core of efficiency.

Furthermore, a development group is, whether we like it or not, a social group. There are social dynamics within the group and between the group and other groups in the organization. Innovation is counterproductive if it introduces friction that cannot be justified by a clear ROI or problem statement.

I think innovation is great, but introducing change for the sake of pure innovation tends to be unproductive, if not destructive.

share|improve this answer
Excellent perspective! You have a strong point here in that changing just for the sake of changing without a clear purpose is destructive. This is true because people do not like change. The reason that I am asking this question because I have been assigned to a project with the purpose of innovating a current system. –  Adamizer Oct 19 '10 at 14:02

The best single thing to do is to whenever you get an idea, write it down.

Ideas come and go, and you think you'll remember them, but the fact is that you don't. Furthermore, it seems that writing ideas down makes room for new ones, so in turn you're generating even more of them.

For ubiquitous access while keeping things in one place, I suggest using something like Catch.

share|improve this answer

Just having an idea is not enough, it must be handled in some way.

My company were doing something similar, they started by creating a website where users could enter new ideas and vote on other ideas. All ideas were looked on by mentors (senior developers, deparment managers and such) and given a "thumbs up" or "thumbs down".

Just the basic fact that someone higher up were looking at and considering an idea was encouraging.

Make sure to list idea on the company magazine/intranet that evolve to improvements and possibly give some kind of reward to the submitter.

share|improve this answer
I like this idea! I can see how this would provide immediate feedback and encourage thinking in this direction. –  Adamizer Oct 19 '10 at 14:06

If you want to encourage your team to be innovative, set impossible goals and achieve them. Also, it is OK to fail, provided that you learn from your mistakes.

The only question is if you can afford it...

share|improve this answer
In my experience, I have noticed that the more narrow the limitations or resources, the more creative responses I am able to come up with. What scenarios would this work for? –  Adamizer Oct 14 '10 at 20:01

Constantly explore what other people are doing. Relax. Grab a cup of coffee. Read a fictional book. And then think of ways to do it something totally different.

OK... I made that sound way so easy.

share|improve this answer

Don't be a follower of design patterns (be a follower of antipatterns instead).

Each time you do a thing similar to one you've done before try avoiding blind copy-paste and make the new thing better (but never make thing different just for the sake of this difference; if copy-paste would do the same, go ahead and free your time for the real challenge).

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.