Agile Methodology
Todays business environments are fundamentally different from those a
few
decades ago. Markets became more fragmented and product life times have
dramatically decreased. Traditional software development methodologies
focus on repeatability, early known, widely stable requirements and
rely onexplicitly documented knowledge.
“Most of our assumptions about business, about technology and organisations are at least 50 years old. They have outlived their time. As a result we are preaching, teaching, and practising policies that are increasingly at odds with reality and therefore counterproductive” — Peter Drucker.
Agile methodologies, such as gocept's approach, focus on people, skills, values and are premium on rapidly creating business value. We do not control projects by conformance to plan, but by conformance to business value. Your business value.
General Principles
Inspired by Extreme Programming (XP), Scrum and Adaptive Software Development we defined some general principals for developing software and providing solutions.
Face-to-Face Communication
Face-to-face
communication is the most effective form of communication. The by far
least effective form of communication is paper. The more complex the
information is the more this statement holds. We ask for good and
effective communication between our customers and us. We like our
customers to join our project team in any phase of the project. We even
have a guest room.
Simplicity
We try to keep the software we develop as simple, yet flexible, as
possible. We assume every problem can be solved in a very simple way. In fact this is
true for most of the problems. This leaves enough time and resources to
ambitiously solve the complex problems.
Practices
To achieve our set goals and fit our development within the priciples we are using certain practices develop our software.
Test Driven Development
First we write tests. We write tests which shows how a function
should work. The tests fail. Fail? Yes, we have not implemented
anything. Then, we implement that function. We are done when the tests pass.
Writing tests first changes the way of thinking. You take a broader view, thinking about integration and what goes in and what out. You show how a function is supposed to be used before it even exists.
Pair Programming
Pair programming is a
technique where two programmers jointly create software. It's not one
programming and one watching. It's a dialogue.
Simple Design
Simple design means to keep the system as simple as possible at all
times – we do the simplest thing that could possibly work. Designing
for today means to leave things out, things you do not need now. As
time goes by you might think of new or other features. A simple design
allows us to add you new ideas easily.