web developer & system programmer

coder . cl

ramblings and rants on software development...


Print Article R -a +A

generalized development process

by Daniel Molina Wegener on 2011.10.03
posted in: development, programming, projects, tips

Developing software is not only about programming. There are several skills that are applied through the process of delivering well done software. When you define a process using a model of development, it is called methodology. There also is a holy war about which methodology fits better to get the best results. From the very structured CMMI model, which fits better with the cascade development, to the evolutionary development model that is proposed by Agile methodologies. The cascade development model indicates that the problem should be fully analysed, specified and documented, the same applies to the CMMI specification. Most Agile methodologies feature an evolutionary development process, where all requirements are handled progressively using sprints to develop each component.

the process is not the product

by Daniel Molina Wegener on 2011.09.19
posted in: development, programming, projects, rants, tips

There are several approaches regarding the software development process as product delivering techniques. Well known ones are ISO and CMMI standards. Both of them defines a rigorous process model to enhance the product development through well defined processes and normative that are relating “how do you must work”, but it forgets that you are working with people and not machines. Rigorous processes can be applied to machines, not people. You need something more dynamic to really solve problems. I have worked on several companies where those standards were applied twice. On early stages using CMM and now CMMI. I was not happy with them.

experience sharing

by Daniel Molina Wegener on 2011.09.13
posted in: development, programming, projects, tips

There are several methods you can use to share experience about programming and related tasks. You can use talks, blogs, wiki, pair programming and well known media to share experience. On every development company, sharing experience is important to increase the development process performance. Once the know-how has increased in your team, your team will be reaching very good performance on programming and project management tasks, leading to a common vocabulary and allowing your team to speech the same language, understanding common concepts and enhancing your team communications.

lightweight introduction to scrum

by Daniel Molina Wegener on 2011.08.26
posted in: development, programming, projects, tips

Scrum is a well known — is it really well known? — agile methodology. It consist on building a project with small iterations on done work and periodic reporting of advances. It is widely used since you can track easily how the project is going and detect problems on early stages. It is not very linked to software modelling and design, instead it uses another kind of construction methods. You can use various kinds of iteration types, depending on how dynamically can you handle the requirements and how indecisive is the customer. You can use iterative, incremental and evolutionary types of iterations, from the greatest to the smallest one. Iterative and incremental handles requirements formally, and evolutionary is more like a kind of craftsmanship, requiring the customer to be very present on the development process.

λ day meet-up

by Daniel Molina Wegener on 2011.07.24
posted in: development, haskell, programming, projects, python, tips

The past July 19, I’ve made a talk on the Dynamic Languages meet-up explaining some basics of functional programming. The presentation has two parts, the theoretical one, with the proper presentation and the second one with code examples. For the code examples I’ve used Lisp, Haskell and Python, with homologous functions, each one implemented on each used language, to ensure that are concepts were handled.