Building complex custom digital products | How we do IT #6
00:00 → 00:03
Building complex custom digital products requires more than
00:03 → 00:04
just coding excellence.
00:04 → 00:08
It demands advanced techniques and a specific approach in
00:08 → 00:10
every aspect of software creation,
00:10 → 00:13
from design through project management to quality assurance.
00:13 → 00:17
All these elements work together towards a common goal,
00:17 → 00:20
keeping the development process under control and delivering a
00:20 → 00:24
comprehensive product that seamlessly covers the whole process.
00:24 → 00:25
But how to achieve that?
00:25 → 00:29
Let's take a look at some tried and tested solutions.
00:32 → 00:33
Hi.
00:33 → 00:36
I'm Magda, Business Development Manager at Merixstudio,
00:36 → 00:37
and this is how we do it.
00:37 → 00:40
This series will present you with specific design and
00:40 → 00:44
development challenges and explain how we deal with them
00:44 → 00:45
at Merixstudio.
00:45 → 00:48
Every case is based on our experience and the projects
00:48 → 00:49
we've worked on so far.
00:49 → 00:53
In this episode, we'll take a closer look at the UK based
00:53 → 00:54
specialist certification company.
00:54 → 00:58
It's an independent nonprofit NGO and an industry leader
00:58 → 01:01
in the field of high stakes testing.
01:01 → 01:04
They focus on developing, administering, scoring,
01:04 → 01:08
reporting results of valid examinations that assess the
01:08 → 01:09
student's competence.
01:09 → 01:13
The company wanted to introduce a new multistage exam that
01:13 → 01:18
would assess theoretical, practical and clinical decision making skills.
01:18 → 01:20
And that's when they faced a few challenges.
01:20 → 01:24
Up until now, the client has been relying on outdated
01:24 → 01:27
software combined with off the shelf solutions to automate the
01:27 → 01:30
process of creating and conducting examinations.
01:30 → 01:34
The software is burdened with technical and UX debts.
01:34 → 01:37
While these systems roughly met the organization needs,
01:37 → 01:41
they fell short in supporting complex testing methodologies
01:41 → 01:44
and accommodating the changes related with the new exam.
01:44 → 01:48
Moreover, the utilization of multiple solutions had a
01:48 → 01:52
negative impact on the user experience and the easiness of the process.
01:52 → 01:55
That's why to maintain the highest quality of
01:55 → 01:58
examinations, the organization decided to develop a custom
01:58 → 02:00
software solution.
02:00 → 02:02
How can we cope with these challenges?
02:02 → 02:05
Maciej Stempniak, our Senior Business Analyst,
02:05 → 02:08
will share some insightful solutions based on our experience.
02:08 → 02:12
Let's begin with discussing the project
02:12 → 02:13
management aspects.
02:13 → 02:16
How will we approach the project from this side?
02:16 → 02:18
When it comes to the PM area,
02:18 → 02:20
we should primarily focus on effectively managing the
02:20 → 02:23
complexity of the product and the extensive scope of work.
02:23 → 02:25
As the software development aligns with the evolving
02:25 → 02:27
concept of the new exam,
02:27 → 02:30
we highly recommend adopting the Scrum framework.
02:30 → 02:33
This agile approach empowers us to define clear objectives for
02:33 → 02:37
each sprint and enables us to adapt to changing priorities in
02:37 → 02:38
dynamic environment.
02:38 → 02:42
Furthermore, this kind of large scale project involving numerous team
02:42 → 02:46
members requires implementing the roles of scrum master and
02:46 → 02:47
proxy product owner.
02:47 → 02:50
This will ensure high standards for both the team's performance
02:50 → 02:52
and the product's development.
02:52 → 02:56
Scrum master ensures the efficiency of processes within the team.
02:56 → 02:59
Additionally, they take care of the team motivation.
02:59 → 03:00
For the product owner,
03:00 → 03:03
the responsibility lies in optimizing the backlog in terms
03:03 → 03:07
of business value, usability, and feasibility.
03:07 → 03:10
They manage the product roadmap and address strategic needs.
03:10 → 03:13
To clearly visualize the work progress and effectively plan
03:13 → 03:15
the tasks, we need a well suited roadmap.
03:15 → 03:18
Crafting it requires leveraging advanced estimation and
03:18 → 03:20
prioritization techniques.
03:20 → 03:21
For the purpose of the first one,
03:21 → 03:23
we would use the scrum story points method.
03:23 → 03:27
It allows teams to efficiently estimate and plan their
03:27 → 03:31
projects without getting bogged down into exhaustive details.
03:31 → 03:33
Instead of attempting to precisely predict the number of
03:33 → 03:35
days or hours for each task,
03:35 → 03:38
the team focuses on comparing the relative difficulty of one
03:38 → 03:40
task against another.
03:40 → 03:42
On the other hand, for effective task prioritization,
03:42 → 03:45
we can use well regarded Moscow method.
03:45 → 03:48
It's very useful for managing backlog and requirements.
03:48 → 03:52
It allows us to assess what we would definitely accomplish in a given period.
03:52 → 03:56
Proper project management is definitely a crucial part of
03:56 → 03:58
dealing with complex products.
03:58 → 03:59
But what about the technology?
03:59 → 04:03
Tech solutions should all be about ensuring reliability,
04:03 → 04:06
scalability, and security as the system evolves and has to
04:06 → 04:10
collect analytical data as well as track record changes with
04:10 → 04:11
clear audit trail.
04:11 → 04:16
It is also key to provide high performance with zero downtime during the exam.
04:16 → 04:19
Apps that reflects such complex processes invariably call for
04:19 → 04:21
well considered architecture.
04:21 → 04:24
It needs to encompass all dependencies, remain scalable,
04:24 → 04:26
and prime for future expansion.
04:26 → 04:29
That's why Software Architect ongoing engagement in building
04:29 → 04:31
complex products is more than welcome.
04:31 → 04:35
In this case, we decide to create a modular event driven architecture.
04:35 → 04:38
We base the whole application on what's going on in the event
04:38 → 04:40
stream, not on user request.
04:40 → 04:43
We opt for this solution to achieve utmost scalability,
04:43 → 04:45
effortlessly adding new component instances to bolster
04:45 → 04:49
throughput, and an architecture bid upon event facilitates
04:49 → 04:51
parallel handling of multiple requests.
04:51 → 04:53
And what about the architecture style?
04:53 → 04:56
Does every complex digital product require microservices?
04:56 → 04:57
Well, not always.
04:57 → 05:00
While microservices are often considered the default choice
05:00 → 05:02
for comprehensive systems,
05:02 → 05:05
we intentionally deviate from using them in this specific case.
05:05 → 05:08
This decision primarily stems from the ongoing product
05:08 → 05:10
development phase on the client's end.
05:10 → 05:13
Our main emphasis revolves around crafting the domain and
05:13 → 05:16
integrating the business logic within the application.
05:16 → 05:19
Prematurely dividing the application into independent
05:19 → 05:22
microservices could potentially complicate the rectification of
05:22 → 05:23
any missteps later on.
05:23 → 05:26
It is of utmost importance for the solution to maintain the
05:26 → 05:30
required flexibility to adapt to ever evolving product needs.
05:30 → 05:33
While we do have satellite applications connected via message bus,
05:33 → 05:36
it is imperative to clarify that they do not operate as
05:36 → 05:39
independent microservices, although they may become them.
05:39 → 05:40
One day.
05:41 → 05:44
So let's move on to the design aspect of the projects.
05:44 → 05:48
How can we ensure the highest level of usability for such a
05:48 → 05:49
complex product?
05:49 → 05:52
First of all, we need to understand the product inside
05:52 → 05:56
out, considering all its dependencies, user profiling,
05:56 → 05:58
and business context to kick start our collaboration.
05:58 → 06:01
An extended discovery workshop will be essential in
06:01 → 06:04
acquainting ourselves with the fundamental requirements and
06:04 → 06:05
domain knowledge.
06:05 → 06:06
Yet, we cannot stop here.
06:06 → 06:09
Given the scale of the app and the long term perspective of
06:09 → 06:12
our work and the modular architecture we've recommended,
06:12 → 06:15
we'll need more time and special approach to delve into
06:15 → 06:16
the product details.
06:16 → 06:19
That's why we propose a gradual development process,
06:19 → 06:22
breaking down the work into specific modules and start it
06:22 → 06:24
with the dedicated discovery phase.
06:24 → 06:27
We kick off an in-depth discovery session using the
06:27 → 06:30
insights gained to generate tailor made solutions for the
06:30 → 06:32
identified requirements.
06:32 → 06:34
These proposals will then be validated with the client
06:34 → 06:37
through internal usability testing.
06:37 → 06:38
Once the details are finalized,
06:38 → 06:41
we proceed to the development phase led by our skilled
06:41 → 06:43
programmers and QA engineers.
06:43 → 06:47
Lastly, we gather feedback from end users to continually improve
06:47 → 06:48
and enhance the product.
06:48 → 06:51
From the UI perspective, in projects of this magnitude,
06:51 → 06:54
a well defined design system and style guides are essential.
06:54 → 06:56
They provide centralized, scalable,
06:56 → 06:58
and consistent approach to design,
06:58 → 07:01
facilitating seamless collaboration among teams and stakeholders.
07:01 → 07:03
So as we can see,
07:03 → 07:06
building complex custom products involves not only the
07:06 → 07:09
right technological solutions, but also proven
07:09 → 07:12
processes and specific roles within the team.
07:12 → 07:16
They enable the management of the vast scope of work and
07:16 → 07:20
effective tackling of comprehensive technical and business issues.
07:20 → 07:24
I hope this video will help you to make sure your IT
07:24 → 07:27
partner has the mature enough approach to face advanced
07:27 → 07:31
challenges that always come with complex product development.
07:31 → 07:33
Thanks for watching,
07:33 → 07:37
and don't forget to check out more content on our insights.



.avif)

.avif)
.avif)
.avif)