Cookie Consent

By clicking “Accept”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.

Cookie preferences

The Basics

Our approach to software engineering revolves around several key ceremonies: Planning, Review/Demo, Retrospective and (Bi-)daily Syncs. These activities are essential, regardless of the specific methodology or approach being used. Celebrations are on our internal roadmap and we want to incorporate them – so we can acknowledge successful cycles boosts morale and fosters a positive work culture.

  1. Planning: Proper planning is essential to avoid failure. It lays the groundwork for everything else.
  2. Review/Demo: At the end of each cycle, we review our progress and demonstrate tangible outcomes.
  3. Retrospective: After completing a cycle, we discuss what went well and what could be improved.
  4. (Bi-)Daily Syncs: Regular check-ins are vital for keeping everyone aligned.

Cycle Time

Cycle time refers to the period required to release software or complete an incremental part that provides meaningful output. This duration varies based on the complexity of the task, ranging from a day for small widgets to several months for intricate machine learning pipelines.

These ceremonies operate on independent cadences. For example, we might conduct roadmapping every six months but hold bi-weekly demos due to our quick release capabilities, coupled with monthly retrospectives.

TIP: Avoid the one-size-fits-all approach. Adapt methodologies to fit your work rather than the other way around.

The Right Balance of Agility and Waterfall

While agility is important, it's beneficial to incorporate some structured planning within each delivery cycle. Committing to a deliverable requires a clear understanding and specification of what will be built. This predictability is crucial for maintaining client trust. Changes during these mini-cycles can hinder predictability and reliability.

Planning

Short-term Planning

Planning is challenging, and so are estimations. However, effective planning builds customer trust. When estimating short-term tasks, it's essential to empathize with the client’s perspective. For instance, promising a six-week delivery for a feature may seem reasonable, but being realistic about longer timelines is crucial to manage expectations effectively.

There is a three-dimensional approach to quantify tasks that we want to test with our teams:

  • Distance: Estimated hours to complete the task.
  • Friction: Potential obstacles and challenges.
  • Relativity: Uncertainty about unknown factors.

I am already sure that documenting these assessments is crucial, even if it’s just a rough estimation like T-shirt sizing of the tasks.

Long-term Planning

Long-term planning involves considering four types of work: Business and Engineering, Planned and Unplanned.

Datamole SCHEMA Busines/engeneering and planned/unplanned
Img Caption

We believe it is important to count with all of these categories to be taken into consideration. The distribution of capacity into them is individual and should be adjusted accordingly. Our initial-state suggestion? 50% for the roadmap, 25% for opportunities, 20% for maintenance and 5% for ASAPs. 

Agreeing on these constants during roadmapping with clients is essential. Allocating space for opportunities and urgent requests prevents overloading the roadmap and ensures we can address critical issues promptly. This balanced approach maintains trust with clients and keeps our software engineers motivated.

Structured Flexibility for the Best Results

Efficient software engineering requires a structured yet flexible approach to planning and executing tasks. At Datamole, we have found that a combination of regular ceremonies, customized cycle times, balanced agility, and strategic planning helps us deliver high-quality software consistently. By sharing these practices, we hope to provide valuable insights for potential clients and employees alike.

“Great software comes from great people. If you worry only about the technology side of the equation, you're missing way more than half of the picture.”

Sam Newman, technology consultant and author “Building microservices”

Author

Get to know the author of this blog post

Ondřej Stuchlík
Co-Founder and CTO at Datamole

Tom and Ondra met at CVUT FIT and founded Datamole in 2015; with a simple vision: They wanted to create a place where people can be friends and work on projects with a real impact.

Blog

Read our other recent blog articles