When I begin my career, I started
to check different areas of the Degree, like Databases, Networking, Operating
Systems, Project Management and Programming Languages. What I'm trying to say
is that the main objective here is not to only learn one thing or focus on a
specific area, in this case when there is a project for a company or even for
the creation of something new there has been an issue that normally makes that
the projects take more time, resources or even fails or don't reach the
expectations,
In this case when it's a Software project there is a lot of people
behind it, but nowadays companies try to create more and more ASAP not only
because of the competition that exists, but to save money and avoid any problem
with it.
A working team for these cases opt for the process and rules that are in
2 ways, the classic methods and the agile method. As the names for each one
tells advantages and disadvantages it’s important to identify when to use each
of the programming method, sometimes using a traditional instead of an agile
method takes more benefits and excellent result or vice versa with the agile
method, the team needs to decide and check which one is the one that will not
affect the gap between the main objective and what is being develop.
Now, another thing that everyone should keep while working on a project
is to keep things simple, I think that the programmer or even the engineer
logic and thoughts keep the person too far from the simplicity, that does not
mean that is not correct, but sometimes the answer is easier that the story
that a person could create on the head. In programming is the same, we create
stuff looking for different scenarios, with details and precision but, at the
same time we complicate the things looking more than the present and possible
future scenarios that could happen.
It's important also to think that every person on a project (programmer,
designer, tester or even another department from the company) is important and
the team needs to be as one, only choosing the way to create the project (UML,
Kanban, XP, SCRUM, Cascade, etc.) is what decides the failure or success from
the project it needs to have the right option the project requires to save
money, develop a good product and the most important one so every person on the
team could work properly.
With this I can answer that Designing and Programming are evolving not
on a way that only a person could be specialized on only one knowledge area,
but needs guidance from each one for a successful project.
And remember, keep the code simple so any other person could understand,
also you don't get confused with your own code!