Role and Road of a Software Architect by Mahesh Chand & Magnus Mårtensson || C# Corner Conference
8K views
Nov 6, 2023
Watch the first session and keynote of Software Architecture Virtual Conference as Mahesh Chand & Magnus Mårtensson talk about, "Role and Road of a Software Architect". Watch Full Conference here: https://youtu.be/0m0Jvcp76sE Conference Website: https://www.2020twenty.net/softwarearchitecture C# Corner - Community of Software and Data Developers: https://www.c-sharpcorner.com #csharpcorner #virtualconference #live #software #architecture #role #roadmap
View Video Transcript
0:00
Hello
0:01
Good morning, Magnus. How are you? I'm very well. It's so good to be here
0:06
I'm really excited because I get to sit here and listen to some great architects today
0:14
It's one of my favorite things to learn from friends. Yeah, that's awesome
0:19
I think everybody welcome to the Software Architecture Virtual Conference. My name is Mahesh Chan
0:27
I am speaking from Philadelphia here in USA. Yeah. It's a nice weather, sunny, 80 degrees
0:37
We still have some coronavirus cases going on. It looks like things are looking a little bit better
0:43
Yeah. There's already some other issues going on, but today we are not here to talk about
0:49
How's everything there in Malmo, Sweden? Really good, actually. So it's a sunny afternoon here
0:55
It's Friday afternoon. Everything is lovely. And we have, you know, expectations of a warm and nice summer and things ahead
1:04
Things are looking looking up and up, I would say, all in all. There has been, of course, some disturbances and the reason we're not traveling
1:12
Right. This this would have been nice to have as a as a physical conference to meet up
1:16
But I guess no one is doing that right now. We're all we're all virtual
1:21
So being virtual is pretty exciting as well because you get to very easily connect with some good friends
1:28
We have a good strong lineup of really good software architects here today, right
1:34
We're going to cover the software architecture spectrum in many different ways
1:39
We're going to try to shine a light on this field, this work role of a software architect
1:46
yeah i mean that's what this is all about because software architect is one of the you know most
1:54
popular most paying uh role in the software world right everybody wants to be either an architect
2:00
or a project manager so let's talk about this let's uh so a little bit you want to share your
2:06
experience as an architect yes i was gonna say i i think just a little like a few years ago uh i
2:14
I think software specialist or software architect became the most sought after work role in the world
2:23
It passed by things that have been, you know, for decades have been dominating like airline pilot and doctor and, you know, physician, right
2:33
Surgeon. Those kinds of work roles have been dominating in many years
2:39
But now software architecture is on top. and that's a very exciting role that many people want to to uh work with and i've had i've had the
2:48
myself the opportunity to work in this field now for decade and a half and it's a it's a wonderful
2:53
field to work in um so really that it's it's an exciting area and i'm happy to to be able to share
3:01
some of that here today great great so yeah let's um you wanna start with the slides let's talk a
3:09
a little bit you know i think you and i going to talk about what a software architect really
3:16
is you know what they do as in software architects you know what they do what their job is day-to-day
3:21
job and we'll share some of our experience i myself he be you know i i was lucky i start you
3:28
know when i would start working i worked in a you know smaller companies when you work with the
3:33
smaller companies you end up direct working with the customers direct working with the owners
3:37
stakeholders and you start doing basically start building your you know your own ideas and
3:44
innovation and then that's how you kind of you know that's the first step towards being a software
3:50
architect so absolutely i get that um i was i was fortunate as well i suppose i started as a
3:57
developer obviously that's the entry point uh i was a developer and uh i i started moving more
4:03
and more towards, you know, with experience, more responsibilities added. And I found that
4:10
architecture is, is actually, I thought I was going to become a building architect once to
4:14
to build physical buildings. I still, I decided maybe not to pursue that as a career path
4:21
but then I, when I joined in the other field of, of developer, I came into this field and then I
4:30
I decided maybe architecture in software was the way to go instead. So that's pretty cool
4:36
There you go. Define-wise, when you... Yeah, so what is software architecture, right
4:43
When you think of software architecture, what is it? Let's just, yeah. Yeah, so when you define what kind of architect
4:50
what software architecture is, it's obviously different from building architecture. It's a very physical thing when you build a bridge or a house or something
4:57
But software architecture is more like a map of what you can build in terms of a software system, more of how it's supposed to be built and how it works and how it hangs together
5:11
And it's quite different from architecting a building, of course. Yeah. But it's a very important and central piece of any construction that you ever make
5:23
Because without it, you're going to be pretty lost. You won't have a shared vision, a shared goal when you're building something
5:32
So it's a very important piece. So the question is, why is it so important
5:36
So I'd like to check with you. which you had some really strong visions there in terms of that
5:44
It has to be something that you build that we can actually create in the first place Right Right So when you build a software right you know you said building like real building or house or you know you can kind of compare some parts of that
6:00
with the software also you know when you see the software first it's important because you need to
6:08
think about what whatever you're building is it going is it physical let's start with some of the
6:14
properties right is you have to look at as an architect look at is it feasible feasible means
6:20
the company or the owner you are building a software for can they really pay for that right
6:26
you cannot build something if there's no money for that so feasibility is very important feasibility
6:32
includes not only just financial but also from the resource and time perspective and technology
6:38
perspective right uh then uh it's very it's very exciting to to to try to build something
6:46
you know very complete and very complex but along those lines not only feasible to actually build
6:55
within the frame budget frames and time frames that you have but with these properties as well
7:00
simplicity and friendliness are also incredibly important yeah software has to be simple simple
7:06
So simple doesn't mean the functionality wise, but imagine if software is
7:13
when you architect the software, it's not just for you or your current team
7:18
This software may be running for five years, 10 years, right? On C Sharp Corner, we wrote this product like in 2003
7:25
and it still works, right? So you have to be look at that
7:29
when you're building something, it's simple. So anybody new developers join the team
7:34
they can easily understand that. You don't want to complicate things if it doesn't need to be, right
7:40
It has to be friendly because during the time it's going to change
7:43
and it's going to start talking to other software as well. And now obviously it depends on the software
7:48
Some are just simple software. Some are just simple console app, right
7:52
Some are just web services. They have certain roles to play, but anything we design
7:58
make sure they're simple and friendly. Friendly means they can communicate and talk to other software as well
8:03
So I was thinking about those things when you said this earlier to me that when you reach a certain point with a product, it's time to let it go
8:14
It could be that it's something that's running for, you know, more like a, let's say you're running some kind of a campaign
8:22
Campaign software, maybe you can build it quick and relatively dirty because you're just using it for a short period of time
8:31
But that's not the reality for many software systems. The reality for lots of them is that they are actually targeting longevity, that they could stay around for quite a long time
8:42
So obviously, if you're building one or the other, it depends on how solid you build the structure
8:47
But if you're building something that's going to be around for a long time, it needs to have that sustainability property that you talked about
8:55
Correct. Yeah, definitely, 100%. And so now that you've built something, you were able to build it, it was feasible, you could build it, it's out there, it's running, and it's stable, it seems like it's working
9:12
Here's a problem. How can you be super successful? I know some of the story behind the scale of C Sharp Corner, right
9:21
It started out pretty small and then it grew into millions and millions of visitors and millions of bloody users and everything is crazy, right
9:29
It's huge. And I need to have some scalability challenges with it
9:35
Yeah, if you are building, so, you know, when we are architecting a new software, you have to think of users
9:42
Who is the user? How many users? What is the potential, right? Some softwares, they're designed just to work for a few people only, right
9:49
But if you're building a web application or website like C Sharp Corner, there can be millions of users using it every month
9:57
Look at Facebook and look at Facebook. There's literally 2.6 billion people use Facebook
10:04
So you have to go so far as to start building their own data centers, which is exactly unique, extreme in the world
10:10
but but still yeah and so that's why you know when you are designing this you know architecture
10:16
you have to look at that and make sure it's scalable and expandable right
10:21
it starts small with something that was feasible something that you could build in
10:27
with with enough effort you know in enough investment money time get it out there get it
10:32
started now down the line if when you are successful not to say if when you are successful
10:38
When you become a huge success, right, you get so many customers and visitors and whatever it is on your site or using your service
10:45
All of a sudden, you're a mega success. Great. But the challenge with that is that success can be your kind of worst enemy
10:54
If you haven't built a software architecture that you can scale, that you can change things in, that you can remove a piece and add a new piece and grow, then you're going to be in trouble
11:05
So you have to apply some really good practices from the beginning, right
11:12
That's actually something that we are going to have a good presentation, second presentation
11:16
today, right? Andy is going to talk about that. Build an architecture which can grow
11:21
It's not everyone who starts to build with an enterprise scenario from the beginning
11:27
You start as a small business and then you grow and then you grow more
11:31
And then all of a sudden you a success and crap your architecture falls apart because it wasn built for thousands and thousands of visitors Yep That right It can be a real challenge And yeah it and times to to be in but it can be a problem if you are if your system is not scalable enough you may be
11:52
losing business when you are a success and nobody and when when you know when people come
11:58
and they grow and your traffic is growing you're just growing there's no time for you to rewrite
12:03
again. That's the point. That's the problem, right? I've seen so many startup fail or companies fail
12:09
because they were unable to scale their systems. That's right. That's very important. And now on
12:16
the far end of that, we're talking from something feasible, affordable, small, growing, growing
12:22
growing, becoming successful. Sure. That's not the reality for many people. They start sort of on the
12:28
opposite end of things. They start more on the enterprise side of things, which is actually going
12:33
to very soon be our first presentation of today in the enterprise space but actually important for
12:39
everyone but for enterprises it is an absolute go no go thing they have to have the security
12:46
in check they have to have traces and audits and be compliant and these kinds of things
12:53
and those are extremes that you also have to take into account yeah so today any software you build
13:00
today i call it secure first code okay i said you know as a software developers we don't think of
13:08
security when we are building our first screen when we are building our first part of the software
13:15
what i call it our software should be secure first accountable first approach forget the code first
13:22
okay coding is we already have master coding now from the past 20 years 25 years we know how to code
13:30
Now we need to, as a software architect, if you want to become a software architect or you are an existing architect, you need to think from day one, if you are storing your user ID, password, email, how are you storing them so they are secure
13:45
How are you transferring them so they are secure? How is your password
13:50
Is that readable through the web? That's very important. Personal identity. Exactly
13:56
data sovereignty and other all kinds of rules that you have to take into account when you're
14:03
building something maybe and then you can get with a few things maybe when you're small enough
14:09
but once you get large enough you're gonna get slaughtered if you're not compliant right you're
14:17
going to get you're going to get compliancy requirements from the customers that you work
14:21
with and you're going to have to prove that you are compliant in order for them to be able to do
14:26
business with you at all yeah and again and you hear these stories all day oh this company got
14:33
hacked this company you know target got hacked you know aquifax got 330 million people's americans
14:40
data got stolen include credit card you know social security so you that's that has to be your
14:45
day one architecture requirement right and then i actually had hair standing up on my arms when you
14:51
said that our aquifax thing it's like oh yeah like somebody has my literally my all credit cards my
14:58
bank account my password social security so literally they can go and buy a car on my name
15:04
today that's what happened right it's because somebody architected the system wrong okay
15:09
and the same thing with the account table we have to trace everything the audit logs the
15:14
exception handling the error handling logging all that has to be part of your day one architecture
15:21
That's how good architects do this build software. Exactly right. Yes. And so that having that said, there are a lot of things that we as architect have to take into account
15:35
And this picture here is not for everyone to sort of read every line and understand and memorize
15:41
And we're not going to do a quiz. But the point of this is that there are these things and more things
15:47
There are so many things that we as architects have to take into account, have to remember to evaluate when it comes to security, code reviews, code quality
16:00
How can we deploy this thing and integrate and scale? There are so many things
16:07
right yeah and me yes when a lot of architects they missed the point that software architecture
16:13
is not just you know building the building the architecture design and document right it's more
16:19
about software architect is the center p the person software architect is the center i say
16:24
quarterback for a football team it's a captor for a you know cricket team they are they are the guy
16:31
who are the glue between the business side the project management side so they include in the
16:37
requirements, make sure the business is what they're talking about. That's clearly defined and easily understandable by the developers who are
16:46
writing the code because if that part is wrong, everything is wrong
16:50
Everything is wrong. And architects should also make sure the technology decisions they are making
16:55
make sure they don't pick older technology that's not going to be, you know
17:00
workable in the next two years. Exactly right. Yeah. And then obviously the communication
17:06
As a software architect, not only you have to know how to good, write good, speak good, but also how to present
17:14
Because you're going to eventually present to the business stakeholders. You are going to present to end customers
17:20
And you have to be also a leader and people person. Because as you said, Magnus, we were talking earlier
17:27
You said it that if you can make your developers happy your team happy you won get productive from that Exactly We going to dive into some of those maybe less expected questions during the panels
17:43
We're going to talk about that. We're going to talk about how to make people happy and how to be sort of the center point
17:49
between business stakeholders and end users and technical people, how the architect has
17:58
to be the glue in the center of all of this. Like you said, the quarterback
18:03
Very, very valid points there. So finally, we have arrived at a picture of different kinds of architects
18:12
And we have several architects here today ready to present for us one after another
18:18
We're going to introduce them one after another. And we're going to hear them listen
18:23
and we're going to ask them some questions about their experience as architects
18:28
They're going to share their knowledge with us. It's going to be great. So I think we have all of these represented today, right
18:35
Yes, we do. And I think our, you know, so just quickly, application architect
18:40
we call somebody who's architecting is an application, just an application. For example, you can be a .NET architect
18:47
You can be a Java architect. That means you're only building something in Java
18:51
Then there's web architect, they are responsible for building a website or web application
18:57
Then cloud architects are there like yourself, Magnus is a cloud architect. So they are kind of handling the Azure and AWS
19:05
And then security architects, their focus is just how to keep control, manage and build enterprise and cloud and software security
19:14
And then the last one is enterprise architect. and you want to talk about a little bit more about cloud and enterprise architect and then invite
19:22
Naveen yeah exactly so we we have all kinds of architects again right and now in in modern times
19:31
often we have the back-end system that used to be a server somewhere on premise in the company right
19:38
but we are seeing more and more now that that companies are taking a bet at the the cloud as
19:45
their back-end system. So the cloud architect is not someone who is a person like me, right? I'm a
19:51
cloud architect. And we're going to listen to a great cloud architect here later today, Vishwas
19:58
And cloud architecture has become a very central thing because it has become the glue of the user
20:05
experience because a user experience today, there's some kind of a web presence. There can even be an
20:10
application, a client, right? Depending on who's using the system. But customer facing is probably
20:16
a web. And then together with that web, maybe a mobile experience. But the web and the mobile
20:23
experience need to have a backend. And oftentimes today, more often we find that people are starting
20:30
to put this backend, this shared backend in the cloud as a cloud backend system. So that's a very
20:36
very important piece in modern systems designed today to use the cloud
20:41
Yeah. And then we will be, I think we also have, then you need some kind of web API or some kind of API or microservices
20:48
that communicating between the backend data and the front end. So we have a session on microservices as well
20:56
where one of our architects is going to talk about microservices architecture
21:00
So we have a very, very exciting schedule ahead of us. We're definitely going to enjoy all of this
21:06
I'm going to sit here glued to the screen and listen to all the great architects present
21:11
We're going to call the first one and we're going to start big. We're going to start really big with the biggest systems you can imagine
21:18
We're going to start with the enterprise. And speaking to us today about the enterprise is a very good friend and enterprise architect
21:29
Naveen. Welcome to the show, Naveen. Oh, I can't hear you. I mean he is still talking but I cannot hear you I didn't matter there you are
21:45
yes sir so that is that is the whole logic I'll put in my presentation how
21:52
what piece is does not create an enterprise so we have to think about
21:56
whole ecosystem so that way we have to think about security software technology
22:04
business process and rather the whole enterprise as an architect so that is that is the core learning
22:12
i have to share and navin i believe you are joining us from finland how are things there
22:17
how are things there okay finland is getting warmer like 12 degrees in daytime and nights
22:24
are still cool four to five degrees and things are pretty good uh although the population is very
22:30
smaller number so the corona is there but it's not so much
22:38
cases so it's sort of staggy yeah yeah so good to know so yeah you will
22:47
don't blink you will miss the Finnish summer if there's it's gonna be
22:52
one and a half days and then that is a very popular saying so we have been here
22:59
since last year. So we know that the summer is just the moment you buy your tracking suit and you
23:07
start preparing for the summer camp, it's gone. Yeah, it's gone. All right. It's all you, Naveen. You can go ahead and take it away and talk to us about enterprise architecture
#Architecture
#Business & Productivity Software
#Computer Education
#Programming
#Software
#Video Game Development
#Visual Art & Design
#Web Design & Development