miércoles, 30 de septiembre de 2015

Comments on "Software Craftsmanship with Bob Martin"

Software craftsmanship is when new people get involved in the software development industry, and can learn from the previous experiences of the people already involved, these persons become mentors to those with little of none experience in the field and creates a growing opportunity in the software community, where some people help others and at the same time are been mentored by others and so on. This cycle generates a growing potential and enables people to learn new things.

Some disciplines like computer programming can sometimes be tedious to this king of practices, because the knowledge needed is not just something you can learn from voice to voice, and requires experience in the field to fully understand how things are done and how certain things work. This doesn't mean it’s impossible to mentor someone with little experience in a certain area of the computer software development process. This can become a collective success opportunity if executed in the right way.

The “Manifesto of Software Craftsmanship” is a great example in how advises and tips from someone with the right experience can change and become something of a huge impact. A simple tip can reflect on better software quality and therefore higher product value. By doing this as a community we can all improve from small things to huge things that will have an enormous impact on software development projects.


Having the initiative to ask for advice from somebody that has a lot of expertise in a certain area and being able to give such advice to someone who is in the process of learning or is new in the industry, can sometimes make a difference between starting with the right foot than starting with the wrong foot. It is always comforting to have advice from someone who has already done mistakes in the process of developing software, in order to avoid making such mistakes ourselves. This way we can grow personally, professionally and as a community.

lunes, 28 de septiembre de 2015

Comments on "Is design dead?"

Some sceptics may think or say that design is dead, the true about this is nowhere near it. Design has been and will be a fundamental piece in the process of developing software. Without design a software project can’t work because design is essential for making a quality and durable software that is easy to develop and simple to maintain.

Design may not be everything, and probably some projects can be developed effectively without doing so, but it is definitely a good practice that can facilitate the process of software developing and future software maintenance.

Some programming techniques have changed over time, a clear example of this is the Extreme Programming. The change between programming techniques doesn't mean that the fundamental steps of the development process should change. In other words, as long as the actual development process line remains, taking the necessary time to design and think how the software we are going to develop must be built will remain as we know it and will have the huge e importance in the development process it has now a days.

Sometimes taking the necessary time to make a proper design can become boring, but as a long term investment of time it is definitely worth it. Doing proper designs can save hundreds of hours in computer programming time and development, tests and post project fazes.

Other important practices when designing a software project, is not to forget to make diagrams such as UML diagrams and using the re factoring techniques, to avoid spending time in unnecessary steps that can easily be avoided if using the proper design practices.


These things all together, when done in the right way, will reflect in a good software which is easy to modify is needed and will help to put in practice the experience of previous design methods.

miércoles, 2 de septiembre de 2015

Comments on "Who need an architect?"

The word architecture or architect if often misunderstood, some people think architect or architecture are just fancy ways of saying design or designer, but the real meaning of these two concepts is a lot more complex, and a lot deeper.

Some people say architecture is just “the highest level concept of a system in its own environment”, this is not completely accurate. Another definition people consider is “the shares understanding of how a system works by everybody involved in the development process. This means that everyone in the development team, understands how the large components are composed by smaller components, but the architecture only includes the components and interfaces that are understood by all the developers.

Finally there is a third accepted definition by the software community, this definition states that an architecture is the set of design decisions that must be made early in a project.

The architect must not only design the main structure an module relationship between the software components, the architect must be very aware of what’s going on in the project, looking out for important issues and following them before they become serious problems.

The most important role of the architect is to work in collaboration with the development team to make sure everything is following the design plan and expected outcome, the role of the architect it no really to mentor the team, but to make it raise and take on more complex issues to develop a better and more efficient software.

It is very important to get the design architecture right before the development process starts, architecture design error may result in a very complicating issue to solve once the development process has started. Although it has hard to go back and change our designs, it is not impossible.


Software has little limitations, but the main limitations software development may have are design and organization, so this is why making proper architectures is crucial for our software development projects.