Crysberry’s Lean Software Development: 12 Management Principles
Management21 June 2019
Let’s face it: “lean management” and “lean thinking” are often thrown casually around the industry, with little to no explanation following them. And while for an IT insider these terms can be self-explanatory or at least clear, a business person or a startup ideator might be in for a big surprise.
“Lean” is often seen as a methodology necessary for software development processes improvement, while in reality, it’s a philosophy or a way of thinking if you will. Its purpose is not only to streamline the internal processes by adding value and removing waste but also to involve and notify the client about the progress, achieve full transparency along the way and deliver real results.
The biggest challenge of the lean methodology understanding is associated with its versatility. What was once a set of manufacturing principles aiming to reduce costs and tackle obsolete product inventory has now been developed, adopted by the software development industry and adjusted by every company depending on its particular needs.
That’s what we did here at Crysberry, too. For us, “the lean methodology” has grown into a set of 12 principles applied to our day-to-day work with customers regardless of the project type or time frame. Our custom approach is built on the conventional principles of lean management. But we have also added important points based on our experience and self-analysis.
12 principles of lean management we actually use
1. Preliminary analysis of a client’s needs. Satisfaction guaranteed!
Before rushing into any project, we analyze the target audience of a particular solution, its required functionality, business goals of our clients, and then apply our expertise to choose the technology that would fit best. This, in its turn, leads to faster project fulfillment, higher efficiency of the developed solution, and better adaptation of the back-end and front-end technologies to target audience’s needs.
2. Giving room to necessary changes based on the client’s needs
Requirements change, and so do technologies and expectations of the potential users. If for some reason, a business owner has decided to change the development plan, we are ready to accommodate such a change with the minimum investment of additional resources.
3. A major focus on fast, yet high-quality incremental development
The very nature of business requires high speed and results’ measurability. Our work is organized to deliver results every few weeks so that the client would know exactly what features have already been developed and which ones still have to be done. By removing all the processes that bring no value (which is the core of lean thinking), we get to speed up the development.
4. Daily (and we do mean daily) communication between developers and clients
All processes are built and organized to provide maximum transparency. You will know what is happening at the time being and why. And it is not like we lack self-organization. It is all done with clients’ needs in mind: involvement of the business client is mainly done to let them keep a finger on the pulse and evaluate progress.
5. Hiring motivated people only
Software development is as much an art as it is science, that’s why you can always feel the lack of passion. People that are forced to work on a solution they don’t care about will hardly produce impressive results. We take that into account.
Skills and experience are far not the only criteria used to assign people to particular projects, whether we choose in-house or look for talents outside. And when highly motivated, passionate people work on a software product, it’s always felt by its users.
6. Personal meeting as a dominant communication channel
Tasks, estimates, and requests are often lost while going through endless communication channels, not to mention possible distortions. That’s why if there is a possibility, we choose a personal meeting over an email or a call.
7. Frequent reports that reflect the progress of the entire project
We often work with startups, and startup owners have investors breathing down their necks, asking for proof of progress. The work is planned in such a way that we get to deliver frequent results. This ensures continuous financing of your project (if there are investors involved) and reflects the real progress achieved.
8. Compliance with code style requirements for continuous development
If at some point you decide to hire an in-house development team to finish the project, you will be able to do it in just one pain-free motion. The work will be picked up where you left it off, with no interruptions or delays whatsoever.
9. Avoiding outdated techniques and technologies
What was relevant a month ago might not be relevant for the time being. Sustainability of the product development requires careful selection of technologies and evaluation of their relevance and reliability. For time-consuming projects, it’s crucial to know that the chosen technology will not undermine the results.
10. Simplicity as a key requirement for all products for better user engagement
Whether it is a mobile app, a CRM system, or any other product, we aim to bring simplicity in all aspects. The easier it is for users to interact with a product, the better engagement rates will be achieved.
11. Self-organization. Our clients don’t need to control the process
When contracting Crysberry, you get a self-sufficient and efficient team that doesn’t need your supervision. With the general strategy in mind, they coordinate their work to deliver the best possible results.
12. Reflection, analysis, and self-improvement as our core values
Self-improvement should be an integral quality of any team, and we made it one of our core values. Work on each project is evaluated and analyzed on a regular basis. If there was a dip in efficiency, we’d make sure to identify and eliminate the cause.
These key principles help us to lead our projects successfully and all processes are transparent and timely launch.l.sidorenko