Development is too serious to be left to developers. This manifesto for haute-couture development is a call for businesses to appreciate the need for fully-mastered, quality development. enioka Haute Couture is a software development house that has taken on the mission of supporting its customers in this process.
The digital transformation of companies is revolutionizing the way we work in all industries, even those that are at first glance far from IT. Most business processes are now computerized, or would not even exist without computers. This has one consequence: the added value of a company, that which differentiates it from its competitors, is increasingly linked to an IT component. A retail company might have a more efficient supply chain thanks to innovative replenishment algorithms, a bank might be faster on low latency orders thanks to dedicated processors, an aircraft manufacturer might be able to avoid costly prototypes thanks to more advanced modeling…
Is it then reasonable to entrust the company's software, this critical piece of the company's value, to a third party? This is the direction that things have been taking since the 1990s, when software developments were massively outsourced and offshored. As a result, companies have lost a lot of knowledge about their own software, including some of the most critical.
Our vision is that an innovative company must control its software development endeavors. To that end, it must develop, or redevelop, a certain number of skills: technical, organizational, methodological, recruitment, etc.
Retaking control of development can be done gradually, starting with setting up the organization, architecture, tools and development teams with the necessary tools to create the solutions and meet the demands of customers and users.
Software development has become too important an issue for a company to be dependent on its suppliers. This independence materializes both in the intellectual property over the code and in the ability to develop and maintain source code. It must therefore be delivered with proper documentation, all the tools necessary to make it evolve (compilation chain, deployment tools, test suite, project monitoring tools) along with the transfer of necessary skills. These elements must be considered as soon as a subcontracted project is launched to ensure the proper transfer of knowledge.
If this initial implementation is done by a third party team, it is essential that it is tailor-made to the objectives and constraints of the final team's use. It is thus necessary, even more than usual, to insist on the quality of the development and tools introduced, which will facilitate their use, recovery and extension. The trajectory to ensure that all parties involved (users, project managers, operators, developers, architects, testers...) master their (new) work tools is also essential.
Following these first steps, our teams share a vision of what a well-managed IT project should be. We are convinced that modern IT projects must be carried out in direct contact with users, in fast release cycles. We therefore bring in a pragmatic know-how on agile methods: without treating them as sacred, we use them as toolboxes to pick and choose elements according to the customer context. We see organization and processes as elements of a trajectory towards a constantly adjusted target, rather than a destination set too far in advance. We must set short-term objectives, then continuously improve on them, while ensuring that things continue to improve well after our teams leave.
Initiating a virtuous cycle necessarily starts small: an insourcing process must start with a modest goal, and has to prove its worth, whether through a small hand-picked project or a prototype. We are able to fully take charge of this bootstrap, either by fully implementing it or by overseeing the existing teams.
The right thing in the right place. We are also confident that there is no magic technology in any field. This myth has done too much damage in the past. Languages, frameworks, middleware... are only bricks whose adequacy to the context must be systematically assessed.
We are also convinced that significant improvements in the quality of development are within the reach of any organization that gives itself the means to do so. First through the permanent business contact mentioned above, which ensures we operate as close as possible to the actual requirements. Second through a suitable, efficient organization and good development tools (automatic testing, code reviews…) that ensure the quality of the product. Lastly, and above all, thanks to competent developers who are empowered over their roles in projects and in the company.
enioka Haute Couture was created to offer development in accordance with these principles. This allows us to offer companies of all sizes and lines of business to start working immediately as if they had insourced their development, while progressing towards complete autonomy. All of this being carried out by a team willing to share its vision and experience of development, with the aim of helping our customers to (re)take control of their development.