Does software development process resemble construction site?
It’s been some time now since the software development company The Software House moved into the historic, yet freshly renovated headquarters. It took them almost a year to complete the building’s transformation but it brought not only dozens of architectonic awards but also some insights into the IT industry itself as well.
How to build an office/app?
working crews with 11 supervisors who arranged and renovated 1600 m2 of the
office space was not only a demanding task for but also a valuable lesson.
Normally in a relationship between a developer (builder) and a client, The
Software House stands on the side of creators. During the construction process
though, they found themselves on the other end.
Thanks to this
experience, the company understood how non-technical clients might feel like
when they come and ask about the software they need but don’t understand the
process of creating it. The construction analogy makes it easier to explain
complicated technical issues. For example, you can compare a framework to a
solid basement. Or backend to the “invisible” foundations of the office which
are extremely important for the final building (frontend). So what are other
Time and money
Just like in software
development, initial questions in construction are: “how much is it?” and “when
can I expect the results?”. And of course, it’s next to impossible to estimate
the overall expenses.
Questions will pop up
When you need to
develop an app, there are many possible solutions – exactly as when you build
an office. Also, even if you have an exact specification (which is even more
precise in the construction industry), there is still a lot potentially
problematic issues which appear during the course of development.
Quality is no.1
You should never ever
save on quality – doesn’t matter if you’re building an office or develop an app
– the highest quality is the key. The truth is that low costs always equal poor
quality, and in the future might result in omissions, corrections and
dissatisfaction with the final product.
Order and procedures
In both industries,
there are some specific, internal processes. In construction, there are design,
ventilation, sewage system, plasters, paintings and finishing – you name it.
These processes need to have the right order, which must be followed. One thing
comes after another but also mesh with each other and sometimes need to be
repeated. Doesn’t it sound exactly like the iterative model in IT?
Not everybody knows
what you’re talking about
Both in IT and in
construction, there’s a strong division into two groups: technical and
non-technical people. The first ones use complicated jargon and look down on
the second ones who don’t understand a single word. Like, do you know what
veneering is? Apparently, it’s arranging two surfaces in one line – but you’d
never know that if you hadn’t spent months on a construction site! Developers’
IT jargon is exactly the same thing for non-technical people who need an app
but don’t know how to make it.
For any technical
person (in both construction and software development industries) it is in the
background. For example, one of “green walls” is covered with reindeer lichen
(very nice-looking and quite useful moss) and during the construction work, it turned
out that the same wall needs ventilation grills right in the middle. Obviously
that would destroy the whole visual effect, however, the workers only thought
about functionality, not the aesthetics. On the other hand, in both industries,
there are people who care about the final, visual effect – interior designers
and UI designers. Thigs need to work but they also need to look nice.
It’s not us, it’s them
You thought that only software developers are the “masters of excuses”? Try builders! Well, it seems that in all industries, all delays or mistakes are backed up with a variety of prepared, sophisticated excuses. So it’s always some QA’s or painter’s fault…
Finally, did you know
that in construction, there’s something called a “framework”?! It means nothing
more but using different elements of interior finish that fit each other – have
matching colors, shapes, etc.). Well, well, well, we’ve heard that before in
software development, haven’t we?
Final thoughts? Both
in software and in construction projects it’s important to have a guide –
someone who can help you understand all the processes. Be careful what you
agree on, learn all the consequences of your decision and don’t make promises
to your clients about costs or deadlines if you’re not 100% sure that something
is doable. Finally, always provide a regular update on progress – nothing is
more frustrating than not knowing what’s going on.