“Good news everyone!” , said the
nutty professor in Futurama. And good news indeed. I get to talk
another year on the Case24 software engineering conference in Zagreb.
And I'm the first talk of the day with my talk about “Agile
architecture with distributed teams”. And the time I have to talk
about this really big topic is around 30 minutes. When I talk about
this it usually takes me around 2 and half hours to scratch the
surface.
I plan actually to focus on the key
getaways I learned about working with distributed teams and agile
architecture. In 30 minutes it is the only thing someone can really
tell.
Fortunately I get to also write a paper
on the topic in which I can get in more deeper in the problem space.
Software developers really should write
more. It is a skill rarely seen in the software cummunity. Really,
who of you guys writes regular documentation or event writes
something which usable or even re factored or reworked as the project
progresses? A really small number of people really.
But without good documentation we
cannot do our work. See PHP or .NET for example both good examples of
documentation overflow. You can learn PHP only from its manuall and
on MSDN there is a ton of things about which ever way a specific
class may be used. Java on the other side didn't really made be fuzzy
and worm inside with the state of its documentation.
I've started refocusing on .NET lately
watching BUILD presentations, reading about some new things doing my
katas with .NET and Mono code. And was really taken aback in the
difference of the quality of learning materials the basic platform
documentation has for .NET and Java developers.
I've done a small 2 day Java project
lately and it was Google/Stackoverflow all the way. I'm working on a
PHP project currently and its is only the PHP manual by good that is
the best piece of documentation I've ever seen. It is so freaking
useful , a shame PHP is littered with problems as a language.
Of course .NET has a problem of its own
, its like a flood. Microsoft really is getting a ton of things out
if its development engines out into the world and you need a real
control mechanism to stem the tide of information if you want to
survive the day. That would explain some of the behavior I've seen in
some .NET developers which can be described simply as “Ok I learned
this, and I will stick to as if its the only parachute in the
airplane and it is about to crash. “ Getting some of those guys to
try something new or change paradigms is really, really hard . On the
other hand I've see a lot of PHP guys with the attitude “Oh God let
me learn and try something new, it is is so cool and so easy I just
want to pile so many new things.” The few Java developers I know
are mostly silent guru like types who for any problems just say “It
is not a problem”. I do not know what to make out of those yet.
As a general rule more if more things
are written and maintained around a technology the better, but if too
much is written people will shun most of since they really cannot
catch with everything and do something productive at the same time.
I've just started things what is the
difference in the effort of training someone in .NET and PHP. I've
done both. I've trained people to work in .NET (ASP.NET, C# , SQL
Server, Nunit, Javascript) and PHP (PHP, MySQL and Javascript) and it
is easier to train a complete newbee in PHP then it is to train the
same person into .NET. It also takes longer to train someone to work
with .NET. I think it has to do with the fact that .NET solutions
have more complex code bases then PHP solutions with the same
functionality implemented (lets face it .NET is more rigid then PHP
and you really need to type more code to get some things done).
On the other hand you can be a better
engineer with .NET since it enables you more clearly design and
develop your system then PHP. PHP is more liberal and chaotic and
while you can make good design and engineering work with PHP it takes
more effort and is harder to battle entropy then it is with .NET. Of
course bad coding is bad coding and no language can replace it. But
given the fact that more effort needs to be spent in learning .NET
then PHP I think some people just give up, or learn good practices or
just raise more awareness around things then before.
It was just so with me. I've started as
a PHP developer and then after a three or four years of constant PHP
development I've switched for around a year of Python development
(still do it some times) and the for four years of .NET work with mix
matching PHP work. And it changed me. It really did.
I've transferred my PHP skills and way
of thinking around the code to .NET , saw that some things do not
work that some things do work and then I've returned to PHP with .NET
experiences which I could transfer and apply to PHP projects. Like
energy regardless on the platform or language you are working on
nothing is lost, knowledge just changes state.
Life is complicated, software
development is complicated as hell , it is not easy and it is not
pretty but I love it none the less just as I love life and my family.
To me being an architect and technical lead or just a developer is
natural like breathing and cannot imagine my self doing something
else.