Succesful transitions within a software project
A business-value-driven, end-user-friendly application is not a given. For quality software to be created, at least the following transitions must succeed during the project:
- Idea → Business Need
- Business Need → Concept
- Concept → Design + Architecture
- Walking Skeleton → MVP
The challenge with these transitions lies in the fact that often they require very different approaches. While methods like Design Thinking, UCD, and Service Design work well for ideation, conceptualization, and general exploration, software development methodologies are distinct and more focused on the details. Building a multidisciplinary team to support each of these phases and ensure smooth transitions is an art in itself.
The lifecycle of an idea
A customer representative might propose an idea during an initial workshop, which gets documented in a high-level diagram of the overall process. The idea gains support and makes its way into the final user interface designs on a designer’s desk. However, during implementation, it becomes clear that some part of the plan doesn’t work as expected due to architectural challenges. The UI designer adjusts the designs so that they can be implemented, and the development team follows through accordingly. Blueprints or similar diagrams created in early workshops can still be valuable later on. High-level diagrams, if well-crafted, don’t become obsolete easily. Even a few years later, such diagrams can be useful for onboarding.
Successful transitions in software projects
What do successful (knowledge) transitions in software projects have in common?
- Iteration and consensus: Early ideas should be explored further, and other people’s solutions to the same problem should be considered. Ideas, concepts, and thoughts are easier to refine at an early stage, rather than risk building the wrong software.
- Communication: It’s the glue that holds everything together. Communication can take many forms, such as meetings, documentation, whiteboard sketches, discussions, video recordings, or diagrams.
- A multidisciplinary team: A team that understands each other’s working styles is crucial. Agreeing on preferred workflows and practices within each team is beneficial. It’s helpful when the team commits to shared terminology and practices. This process needs to happen anew each time a team is formed unless it’s a small team that has done several similar projects together.
- Understanding complexities: Given the wide variety of methodologies and expertise areas in software development, it can sometimes be difficult to understand what another person is working on. However, in such situations, it’s okay to ask for clarification, even in layman’s terms, to grasp at least the general idea. The overlapping expertise areas of two team members can be interesting, as they allow new knowledge to be incorporated into one’s own semantic framework.
- Different perspectives and needs: When working on even the smallest details, it’s important to keep in mind the high-level customer-centric need that is being addressed.
- Personal reflection: Team dynamics are often discussed, but the individual can be forgotten. It’s essential to reflect on your own role within the team and the consequences of your actions. Knowing how you operate within projects helps you proactively avoid your own “blind spots.”
In conclusion, developing high-quality software is a continuous balancing act between different methods, team skills, and business needs. Successfully managing transitions and fostering collaboration across diverse working styles are key factors that distinguish successful projects from failed ones. Every team member’s contribution, iteration, clear communication, and ability to reflect on their own work ensure that the development process stays on track, ultimately delivering a business-driven, user-friendly final product.



