Outsourcing Journal

Independent ICT service business insights since 2010

Home Business Managing Creativity For Software Developers

By Andrzej Novosiolov, Lead Business Analyst and Project Manager at SoftElegance – The term “creativity” is not strictly defined. In general, it is a capability to produce something innovative, original and worthwhile. It involves becoming sensitive to problems, deficiencies, gaps in knowledge, missing elements, disharmonies, and identifying the difficulty.

Searching for solutions, making guesses, or formulating hypotheses about the deficiencies: testing and retesting these hypotheses and possibly modifying and retesting them. Also getting to a solution that was not available before, that usually involves an insight at some point, and finally communicating the results.

“There is no single widely accepted theory of the creativity except for the phenomenological descriptions so far.”

The software development in its essence is a creative work. It is closely related to such areas as real-world language translation, knowledge and meanings mapping, art and engineering. Therefore, software development could not be completely reduced to formal processes, rules and patterns. Each non-trivial software development project (taking approx. 0.5–1 man/years and more) involves sentient understanding of the problem area and producing innovative solutions that are more than simple parts assembling.

 

Creativity levels and sources during the development process

While creativity is a necessary part of software projects, it could emerge on different levels of the development process. The software customers and stakeholders could think over all the fine details of the product, resolve all conceptual difficulties and provide deeply elaborated software requirements that cover all problems.

The dedicated team members (software architect, designer, project manager and team lead) execute their duties on clarifying the (vague and incomplete) customers’ requests, interpreting and translating them to the final development specifications and guidelines. The developers and testers are qualified to detect the problems, gaps and inconsistencies, invent new solutions and communicate the concerns and results to the rest of the team.

The lower goes the creativity level, the more intelligent and flexible the whole team becomes. The burden of deep thinking, foresight and insights, as well as accompanying responsibility, is taken from the customers and leveraged on the team management. Problems are detected just in time they become actual, original solutions and innovative features are proposed in cases that could not be thought beforehand. The software development process becomes faster, the product quality better.

Targeting for a creative team is not a silver bullet, though, and without respective management could cause more issues than resolve them. The downsides of a high low-level creativity are the risks of the developers and designers going deep into interesting problems while neglecting boring or intimidating, i.e. non-creative tasks (that are still required to meet the project requirements, though), shifting the focus of the developers’ creativity into technical planes, where they are the experts, from the usability this is the only value for the end users.

Too intelligent and flexible teams might spoil the customers, encouraging a sloppy try-and-miss requirements change approach, when a lot of team resources are wasted on feature requests that are subsequently rejected or changed significantly, that leads to the team demotivation.

The art of team creativity management is balancing strong points of the creativity processes while avoiding the downsides. There are several major guidelines in managing creativity for software developers.

Encouraging (and requiring) deep non-formal understanding of both of the problem area and all the software development technologies by all the team members, thus providing the basis for the problems and gaps detection at any team level. Allocating enough time in the development iterations for the problems elaboration, tests, trials and failed attempts that will not produce any tangible results by themselves but are the basis for finding creative solutions.

Creating the supporting, unperturbed, motivating working environment and atmosphere for the team, that includes the room conditions, supporting services and facilities, convenient development hardware and software, good relations within the team, adequate incentive payments, clear and fair company policies, confidence etc. Creative solutions require prolonged concentrated immersion into the problem, therefore, any disturbing events distract the team members and break the creativity process.

Encouraging clear communication between the team members, management, customers etc. Defining the communication rules and protocols that are both unobtrusive and help delivering the information precisely to the interested parties. Encouraging the communication skills improvement, facilitating the early notifications of the problems, impediments, mistakes etc.

Establishing a good team structure, borders and responsibilities, that both grants the team members’ confidence and allows for enforcing important development priorities and directions while retaining enough room for the personal creativity.

 

Conclusion

Creativity is an inherent trait of every healthy, developed, untroubled person. The software developers usually are self-motivated people with skills most suitable for producing creative solutions.

The first creativity management rule is simply “do not block creativity”. That means:

  • ensuring confidence, providing reliable and well-structured environment;
  • encouraging good relations and clear communications between the team members;
  • motivating team members to go above formal instructions execution, making the project goals the personal, emotionally involving ones, turning the project success into feeling of personal achievement and recognition.

Mature creativity is one of the key features that differs a good software development team from a common one. Falling into any extremity from that golden mean produces either a pack of ordinary coders that  implement anything that formally matches the requirements, not providing real value, or a wildly artistic company so excited by newest technologies and innovative designs that the business requirements and user experience are considered insignificant to them.

You don’t have to be a big company to introduce the creativity support – the rules outlined above are simple and fitting into a team of any size. Actually, the most creative startups are quite small, and the tricky part is to do not lose those creativity spirit principles when the company grows and therefore must establish a more formal structure and policies.

 

The Author: Andrzej Novosiolov got Master’s degree in Applied Mathematics and System Analysis in 1994, however made the first steps in software development around 1984. Since 2001 works in SoftElegance, gradually switched from development to project management in 2003. Has a profound experience in managing various successful Business Automation and SaaS solutions development that took up to 40 man/years of work, participated in some of them as Software Architect as well. His second area of professional knowledge is Psychology and Psychotherapy (Bachelor’s degree in 2014, practitioner’s certification in 2015), that provides him with a wider understanding of the intra- and inter-team communications, motives and collaboration trends.

 

This article was published in the Outsourcing Journal Special Edition “Nearshoring Europe Edition” in Q4/2015. You can download this edition (150 pages, PDF) free of charge here (membership with German OutsourcingA association required (free, personal membership available) > https://outsourcing-journal.org Special-Editions/outsourcing-journal—nearshoring-europe-edition.html

248 views