Any advice for creating productive software development workflows that allow for creativity and flexibility without compromising strict standards?

271 views1 Upvote2 Comments
Sort By:
Oldest
Director of Engineeringa month ago
You have to come up with a robust definition of “done” when coding. That means that you cannot simply write a line of code and declare it production-ready; the code must go through a strict process that includes adhering to coding standards, build management, security checks, and proper documentation. The quality of the code is most important; everything else is secondary.

Then you can build a productive software workflow using that strict process, keeping in mind that the steps followed need to be repetitive and consistent across all teams. There should be no exceptions; every team must follow this process to ensure quality and security in the development workflow.
1
lock icon

Please join or sign in to view more content.

By joining the Peer Community, you'll get:

  • Peer Discussions and Polls
  • One-Minute Insights
  • Connect with like-minded individuals
CTPO in Software20 days ago
While Gaurav's previous answer rightly emphasises the importance of a robust "definition of done" and strict quality processes, three are some additional perspectives to consider since the definition of "strict standards" greatly influences how we approach this challenge. Are we dealing with regulatory requirements, internal tooling standards, architectural limitations, or something else?

One effective approach is to implement a continuous product discovery process, as advocated by Teresa Torres in her book "Continuous Discovery Habits." Torres emphasises the importance of ongoing, collaborative discovery work that involves cross-functional product teams engaging directly with customers on a weekly basis. This approach helps teams consistently uncover customer needs, pain points, and opportunities for innovation.

Key aspects of continuous discovery include:
- Regular customer interviews to understand evolving needs
- Rapid prototyping and experimentation to test ideas quickly
- Collaborative decision-making involving product managers, designers, and engineers
- Focusing on outcomes rather than outputs
- Using tools like opportunity solution trees to visualise and prioritise work

By integrating these practices, teams can maintain creativity and flexibility in their problem-solving approach while still working within necessary constraints. This method allows for constant innovation in product conceptualisation, while the delivery phase can more strictly adhere to technical and quality standards.

Effective Platform Engineering can further support this balance. By providing a well-designed support structure and abstraction layer, we can create an environment where product development teams can focus on creatively solving customer problems while still operating within necessary constraints.

However, it's crucial to prevent processes from becoming overly dominant. As Jeff Bezos wisely cautions:
"As companies get larger and more complex, there's a tendency to manage to proxies... A common example is process as proxy. Good process serves you so you can serve customers. But if you're not watchful, the process can become the thing... The process is not the thing. It's always worth asking, do we own the process or does the process own us?"

In essence, the goal should be to establish workflows that provide necessary guardrails without stifling innovation. Regular evaluation of processes to ensure they're serving their intended purpose – and not becoming an end in themselves – is key to maintaining this balance between creativity and standards.

Content you might like

Exclusively17%

Pervasively49%

Occassionally20%

Infrequently6%

Not at all6%

View Results
1.3k views
Senior Director, Technology Solutions and Analytics in Telecommunication3 years ago
Palantir Foundry
3
Read More Comments
11.7k views13 Upvotes49 Comments

Ionic32%

React Native59%

Xamarin7%

View Results
4.2k views2 Upvotes2 Comments
CIO in Manufacturing16 days ago
There are so many questions here. What type of data are you talking about?
Transactional, master or all data?
1k views1 Upvote1 Comment