To describe lean software development on one page is almost impossible, so we've focussed on what we think are the most important features of lean software development.
If you want to know more about our other lean development ideas, or you want to discuss something just get in touch with us.
To be able to get delighted customers and excellent software products, you've got to understand the business and have a very good understanding of technology.
For a product to be developed successfully, during the development information has to flow. The quality of the information flow between the customer and the development team, and among the team members determines the success of the product development. And in the end if the customer is delighted.
At Skyscraper Software we always focus on people, not on systems. Be it employees, customers or suppliers, always respect people.
Excellent software products are developed by people with expert technical knowledge in many areas. Technical experts are first of all member of a team and second they are specialist in a certain area.
We always focus on maintaining and creating knowledge within our organization. Technical excellence is something we always strive for.
And also, developing a product is all about learning. So if we defer decisions, we can learn more. Which comes down to just-in-time commitment and decision-making.
Deliver fast is not about haste. It's about being able to respons to customer's needs, in a reliable manner and again and again.
To able to deliver fast, and at excellent quality, processes need to be continuously improved. In doing so, we must guarantee that quality is build into our products.
This section describes how we start our product development process, with impact mapping.
An impact map can best be defined as a mind map which visualises scope. And also very important the assumptions it is based on. It is a mind map which is created during
a discussion which is centered around four questions: why? who? how? what?
To start the impact mapping we usually organize a workshop, where we'll try and answer the four questions. This workshop can take half a day, or a couple of days to complete.
It is important that technical experts and business people are present at the workshop. This is the starting point of the whole product development, so it is esential that everything is clear for everybody involved in the development.
In this workshop we try to define the real goals and create the impact map, complete with among other things budget, measurements and priorities.
When we've identified the most important needs or features, we're going to get started on the development of the minimal viable product. Making sure the customer can use most important features the software product as fast as possible. This is where the build, measure, learn cycle starts, so that we can verify our assumptions early on and move forward from there.
ATDD is the development methodology or process we use to implement features into a software product. It is important that developers and testers understand the customer’s needs prior to implementation, and ATTD helps them with this.
The whole process starts off with analyzing the features and requirements, before a single line of code is written. The developers create acceptance tests
are then created and use them to implement the business goals of the system. Before code is written, the developers move on to the test driven development part of ATDD.
Unit tests (see later on) are created and in the end code is produced. When all unit tests concerning the acceptances test, or feature, are ok and implemented the requirements should be met
When the acceptance test is failing it means that requirements are not met. As soon as an acceptance tests is ok, the requirement is met. And we can move on to the next test or feature.
Unit tests are part of the test driven development process, which starts after an acceptance test is created. Here also, tests are written befofe any code is created which means tests will always fail at beginning.
Then just engough code is written to make the tests pass and the developer moves on to the next unit test. Or if there are none, the next acceptance test or feature.
This way developers can use unit test among other things to create easy-to-maintain code.
There is a lot more to ATDD as explained above. Want to know more, just get in touch