0

Developers Not Trained to Be Creative but Need to Create Unique Software

 2 years ago
source link: https://javascript.plainenglish.io/recipe-for-disaster-developers-not-trained-to-be-creative-but-required-to-create-unique-software-66ba50b4d4a6
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Developers Not Trained to Be Creative but Need to Create Unique Software

Development focuses on technology but needs to focus on creativity

Photo by Pixabay from Pexels

“If you want creative workers, give them enough time to play.” — John Cleese

Creating software is about people, business and creativity, but the focus is all on technology. Software development is not training developers to be creative and this causes them to struggle with unique requirements and unique software required by businesses.

We train developers to master technical skills, assuming this will be enough to create software.

The approach to training developers doesn’t give them the right tools or mindset to create the unique software businesses need. Software development is more than writing code, creating software, it first needs developers to understand the unique approach, structure and processes of each business.

Standard software isn’t what business needs for software to support their business processes. Companies need unique software and development teams to be creative, to collaborate, and discover the right software.

Technical skills and are not enough to build unique software that is aligned with a company's process and people. Developers need to work closely with business SMEs discovering the software needed and how it should work.

When developers are on a project, they find their generic, standard development approach hits a brick wall and they need to create a bespoke solution.

Software Development is Creative

A truth that is known but ignored is software development is a creative process. Despite knowing creating software is creative, it’s treated like a factory and developers a commodity.

Management/leadership thinks of software development as a factory that takes requirements on one side and the software pops out the other side to a fixed timeline. The complexity of software is underestimated and plans are regularly wrong by months or years (based on size and complexity of software).

If the software was standard, it would be possible for companies in the same sector to use the same software or automate the software. Instead, companies are unique and creating software cannot be automated.

Software Development Can’t Be Automated — It’s a Creative Process With an Unknown End Goal

Understanding software is creative, changes how you approach it

  • Creative view — Plans and estimates need a margin of safety because it's probable the software is underestimated. Commodity view- estimates are commitments and plans are guaranteed.
  • Creative view — Creativity will involve mistakes, and we could create the wrong software. We are creating software without knowing what the end software will look like. It’s not a factory creating standard software, it’s a creative process of creating unique software for a specific company.
  • Creative view — We will need to discover the right software and knowledge about the business and solution will build. What happens is requirements change during the process.
  • Creative view — Project deadlines will be missed and replanning will extend the project deadlines — How Much Money Has Been Lost on Software Projects That Keep Replanning and Missing Deadlines
  • Commodity view— Developers are all the same, you can swap them easily. Creative view —developers are not a commodity and they vary, as does their output — The Difference Between Junior Developers and Senior Developers

Understand the business and their problems

You cannot create the right solution unless you understand the problem. You cannot create the right software unless you understand the business, people, and requirements.

Functional consultants/business analysts get requirements, but its vital developers understand the purpose of the business to model the data and design the software.

Every company is unique. Their processes, people, and goals are individual to them.

Agile

Software development is under pressure to start quick and deliver fast. The focus is on creating software quickly, but not on creating the right software or quality software.

Software isn’t made up of standalone features that work independently. Software is a complex system with interrelated features working together to create a system. A business isn’t a separate business unit, it comprises interconnected business units and teams.

The development team must understand how the company works, its purpose, how it wins and then create software to help the users do their jobs.

If you get this wrong, you create the wrong software which doesn’t help users, instead, they end up battling with the software to do what they need it to do.

Commodity thinking

If you forget, creating software is creative and think it's like a factory, where you feed in requirements one end and software pops out the other end.

You fall into the trap of believing developers are a commodity and all developers are equal, the only difference being the price. This is how we view items on the shelf at the supermarket. The jams are similar, so I buy the cheaper supermarket brand.

Commodity thinking ends up with people choosing the cheaper options of project bids and cheaper developers. The Cheaper Option in Software Development Costs More?. The explanation for the choice is Gresham’s Law — Why Bad Developers Push out Good Developer and Developers Create Low Quality Code.

When people make the cheaper choice on a long-term investment, it rarely ends well. If you think the expensive development team costs a lot, see what the cheaper development team will end up costing you.

Software development needs good people who are creative. Quality developers cost more, but they are better at creating bespoke software, quality software and solving problems. The development team works with business experts with lots of interaction/collaboration to create the right software.

Interacting with people is not straightforward, needs listening, learning and creativity. The cheaper developers who have had less training struggle.

What it means

Creativity is a big part of software development as is working with people and collaboration. We do not train developers in these skills and this contributes to the difficulties with software projects.

The focus is on the technical skills, hoping the developers will be told exactly what to build.

Collaboration is a big part of creating software with business experts (users) and technical experts (developers) working together to discover how the software needs to work.

The end software will be unique to the business. The requirements will need to be explored, and it needs feedback and a deep understanding of the requirements/problems.

Problem before solution

Being a Software Developer Is Way of Thinking and Problems Don’t Change, Developers’ Understanding Does

The problem/requirements need to be understood before you can design software. You can take parts of generic patterns and solutions, but they need to be put together in a unique way.

We need to equip and train software developers to have more than technical skills because that isn’t enough to create the software that businesses require.

More content at plainenglish.io. Sign up for our free weekly newsletter. Get exclusive access to writing opportunities and advice in our community Discord.


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK