Lunatech is a challenging organisation with self-managing developers. In small teams we work on projects for our customers, both from customer location and from our own office in Rotterdam. We don’t have account managers or project managers; our senior developers are responsible for successful delivery of their projects to our customers.
We build custom software systems for them, and our focus is on system integration, backend systems and custom dashboards. We're exclusively a JVM shop; we have done a lot of Java over the last decade, and for the last couple of years we're also doing a lot of Scala. We’re not tied to specific technologies, but we look for what suits each project. To give a concrete example, we do a fair amount of Scala with Akka and Play framework and we often use Elastic Search, MongoDB, Postgres. Our source code is on GitHub.
We regularly work from our customers’ offices because we believe that that’s the best way to discover their real needs. But on Fridays we all work from our Rotterdam office, which gives us plenty of opportunity to share knowledge and have fun together. We spend part of our Fridays on getting better at what we are doing; we form study groups or book clubs on tech or books that interest us, or we experiment with new technology.
We are active in the community; we have conference speakers, published book authors, Lightbend-certified Scala trainers, we sponsor conferences and we host a monthly meetup on functional programming in our office.
- 1 Discover
- 2 Architect
- 3 Build
- 4 Test
- 5 Release
- 6 Monitor and improve
Discover: Gather and document requirements for the new software or part of the software (a sprint), keeping in mind that those requirements might evolve over time.
Architecture and Design: Simplicity is essential and the design should be open to future changes.
Development: The part of the process where software engineers actually program the code for the project.
Testing is an integral and important phase of the software development process. This part of the process ensures that defects are recognized as soon as possible
Releasing starts directly after the code is appropriately tested, approved and sold or otherwise distributed into a production environment.
Monitoring and improving the software to cope with newly discovered faults or requirements is part of the process. That is why correct monitoring is needed to capture those new needs.