SharePoint environment should be grown with caution. Proactive behaviour, good dialog with partners, transparency and clear division of responsibilities ensure the quality of the end result.
Grow with caution. Add elements to your SharePoint environment systematically and advisedly, as hastily and carelessly added features have a negative impact on overall performance of the system. Modular application development helps to maintain the quality of the environment; minimal amount of code is needed and the system can be limited to include only truly necessary features.
Engage in dialogue. We aim to create a close and
consultative relationship with our clients. This means, among other
things, that we review all the preliminary ideas carefully and present
several options to tackle the challenges. For example, some requested
customizations might turn out to be very expensive in the long run if it
is necessary to rebuild them every single time the system version is
Be proactive. Proactive and preventative work pays
off, always. We check our client’s server environment on a monthly
basis, as we want to address possible problems before they become real
problems. Dealing with the issues proactively is much better than
addressing them reactively when something has already happened.
Share the responsibilities in a clear manner.
Especially when working in a multi-vendor environment, it is a
prerequisite to focus on sharp documentation and share responsibilities
in a clear manner. If a problem arises, the customer should not have to
spend time and money figuring out who can take care of it. The advice
may sound obvious, but in real-life these principles are ignored way too
Ensure the transparency of all the processes. When
all the documentation can be found from shared workspace, all parties
can review open projects and their statuses in real time, and problems
can be addressed quickly, professionally and transparently.
Service manager, senior consultant
Software requirements specification is often a long and costly process, when in fact there are only a handful of key features in a successful application. Therefore, a more effective and cost-efficient approach is to identify the core functions of the system and focus on them. Iterative software development is very transparent and it provides guaranteed value for money. The end result is an application that the users really can and want to use instead of an application with hundreds of features nobody needs”
Do not over-develop. In traditional software development, requirements specification and coding takes a lot of time, but still the end result is not necessarily what was needed. The research shows that way too often only a fraction of available software features is used. Agile software development addresses these core needs. Unnecessary features cause unnecessary costs both during the development and maintenance phases.
The agile software development is based on tight sprints that each
last only a couple of weeks. The goal of each print is to develop
production-eligible software and reach certain objectives. After the
sprint, the customer can easily evaluate the project’s direction, cut
off idle ideas, brainstorm the important features in more detail and
match the project to the available budget.
Be active. Agile software development requires that
the customer is active and evaluates whether or not each sprint reaches
its objectives. Testing is an essential part of each phase: test data is
very useful in order to model how the software would work just as
desired. Iterative software development is all in all a truly
transparent way of developing software; the customer gets his money’s
worth and can see, in real time, whether the project moves in the right
Take advantage of the modularity. The modularity
adds to the agility of software development. If a particular feature
needs to be changed, the changes can be applied to only a specific
module. The unit tests are used to ensure that the module operates in
the desired manner and the changes do not break other functionalities.
Automated testing plays an important role in software development, as it
often reduces the need for strenuous manual testing.
Manage processes. Agile software development evolves gradually. Software life cycle begins, however, as soon as the first lines of code are written and even the results of the first sprint have to be installable to a test environment with automated processes. If the installation process is tedious and requires a lot of manual work, the software is often tested too little. Feature-orientated approach allows to have a clear picture of what features are included in the end-result of the sprint. This way both the customer and the software development team have constantly a clear picture of the objectives.
Senior software developer