Hi everyone, I am Prakash. I have been working for MaidSafe since Jan 2011. I am part of core dev team and have had the opportunity to work in multiple libraries. The recent move to Rust has been really exciting for me. I still remember my first week with Rust, when myself and Peter started coding the Crust library. We had just one test and I was very sure that we wouldn’t be able to get any library to work on the very first attempt. However, I was very happy to be proved wrong! Obviously, I had trouble getting the code compiling as it was a brand new language to me. But the Rust compiler takes a lot of bugs away.
This week we are in mid sprint and it has been very busy indeed as this is the first sprint planned by library maintainers. We ended up adding over 25% extra work to the sprint, which is a sign of the maintainers getting used to planning. Last week we made that time up and more. We are all very confident we will finish this sprint early and then get onto planning sprint ‘rust-3’ which should see the addition of further features.
The roadmap should see the light of day this week and it may surprise many people. Not only the speed of delivery, but how we will deliver. There is no release date, we simply will add features and APIs for developers straight away. So this will be a rolling roadmap through what would be traditional launch and more. The reason for this is that we want the community to create apps as soon as possible and so will we. It’s not the network that will launch as such but the killer app and we must find that. It has been our goal and ambition to make this happen for sometime and it’s great that so many people are involved. From core developers to active community members to quiet supporters, each helping in their own way.
Community involvement in Sprints
The current sprint showed us that decentralising the knowledge makes the libraries very accurate and efficient. It’s also proving to be a much smoother process. The planning is more accurate and the reviews are more rigorous and faster. We are now taking this idea to next level by involving the community members / developers in the sprint execution. So, the next sprint will be open to all!!
We will publish the tasks required in the sprint and anybody can attempt a task and contribute to the libraries. To encourage and appreciate folks to contribute to our codebase, we will pay around $20 for each point (a point is approx 1 hour, but we find it is much less) achieved by the external developer. More details on the payment mode and process will be published soon by Nick. We are excited by this as we already have commits from the general community and the ability to work on a new language really appeals to many people, but if we can pay at least a little then it all becomes more engaging. We will of course review all work and be as critical as we are with ourselves (which is pretty critical). What a way to learn a language and a project as potentially as important as SAFE!
It may sound a bit difficult initially, but we will ensure that the tasks are well described and suitably specced. We will be happy to clarify doubts, review and also help you finish the tasks. We believe this is a huge step forward as it will spread the knowledge and make the community interact more closely, at code level.
Next Sprints roadmap
With another two very focused sprints we are aiming to have a feature complete system, which will include safecoin. After this we are planning to have a feature sprint and a technical debt sprint. Further sprints will then be focused on Apps and Examples.
Feature Sprint will be where we add features to the system. This will include feedback, compute, semantic data structures, private shares and more. These are what people will recognise as a typical sprint in the sense of agile development. i.e. this is what we have been doing so far.
Technical debt sprint will aim to improve the code quality and introduce good practices like use of advanced iterators, efficient patterns and algebraic data types in Rust. This will help in reducing the codebase size. Smaller code means less maintenance effort and less bugs. We are also aiming to boost team’s knowledge of rust programming in this Sprint.
Apps & example sprints will aim at releasing useful apps and examples based on different libraries. This is where we (MaidSafe team along with the community members) will come up with new app and example ideas and release it at the end of each sprint. Having multiple apps built on any library will force our APIs to be more usable. This means we will have API changes in libraries based on the needs of the app. This will help our APIs evolve naturally rather than the MaidSafe team thinking and acting on behalf of all the users :-). We will continue coming up with more example app and more features on every sprint.
Current Sprint progress …
Updates from Justine in the link here