Featured Content

- Design Patterns -
Design patterns may not be suitable for complex projects. We have in-depth discussed during coursework how to manage complex and critical systems better. "Especially, the cost can be a huge problem when applied to the complex system." The statement above got me interested, and I did some research. Read more about the design patterns here.
- Agile Methods for Critical Systems -
An interesting discussion: whether agile methods are best suited for critical systems or not? The lack of formal documentation of agile methods is a drawback. I too believe in the absence of upfront planning and formal documentation is important to ensure traceability. That is the only way to ensure that the system is complying with the standards and regulations. Apart from documentation, refactoring is also an issue with agile methods. Read more about the agile methods for critical systems here
- Software Reuse -
Software reuse is the process by which existing software products are reused in a new development effort, usually with minimal modification (Bollinger and Pfleegr, 1990).Software reuse is more than libraries and modules. Bollinger and Pfleeger insist that any project element that can impact the project result can be reused. For instance, personnel work experience. Software reuse includes designs, templates, framework, code, documentation, design patterns, etc. Read more about the software reuse here
- Scrum and Kanban together -
I think Scrum and Kanban together are even better. Scrum is the most systematic Agile method, which ensures a foreseeable, strategically planned and an iterative product outcome. It meets up greatly with the changing requirements. Also, the roles and responsibilities are precisely defined using Scrum. Whereas, Kanban is less planned than scrum. Read more about scrum and kanban together.
- Version Control Tools -
Version control and repo management tools are significant for software projects. The organization is a definite and important part of any software development project. Large-scale projects where hundreds of people might be involved, and there is a lack of coordination or management then this could result in severe delays for a project to complete. Read more about the version control tools here
- SocioTechnical Systems -
Socio-technical systems (STS) are complex systems comprising of social and technical aspect and both of these hold significance. Risk management in these systems is a difficult task. As with large and critical system upfront documentation and analysis is a must in order to keep track of everything. The social factor is important as a human agency involved has great influence on the system. The culture, norms, and values of the system and the physical environment does impact the functioning of the system. Read more about the sociotechnical systems here
- Project Management -
Project management is a crucial part of any software development project. Managing intangible entities like software is a difficult task. Other projects where the product is visible for instance, a civil engineering project, the structure, and the defective parts can be seen that in itself depicts the progress. As compared to these, the software cannot be seen or touched until its completion. Therefore project managers have to rely on the project team to review the progress of the project. Not all software projects are the same. Large-scale projects are usually one-off systems. So a project manager who might have previously worked on large projects and has experienced yet he won't be able to predict the success or completion as every project is different. With changing times technologies change, which nullifies the experience too. Read more about project management here.
- JavaScript Advantages -
There are many advantages of using JavaScript: foremost that it's easier to learn and is an interpreted language, which means no compilers required. It is also easier to debug, test and it is platform independent. JavaScript has the features of the procedural languages like loops, conditional statements etc. It also provides event-based programming which enables a user to execute a certain piece of code when an event occurs for e.g. a mouse click and that makes it a user interactive language. Because it is client based, which makes it quick to execute as no server side is involved. It is easy to implement and can be used on any web page. Quick response to the users. And as no server side is involved so it reduces the server load. The usage of JavaScript is multiple, for instance, it can be used to make calculations, processing web pages or implementing the rich user interface.. Read more about the advantages of JavaScript here
- AI should be regulated? -
AI should be regulated as machines can make bad decisions impacting lives. But companies are so secretive about their algorithms. We have seen how Google and Uber went on the head to head with their famous lawsuit this year. What I wonder is, is it possible to have a third party acting as a supervisory body to audit these algorithms? In the UK, a company doesn't have to disclose a trade secret, so how will anyone regulate these AI algorithms for correctness or safety? I read that in 2018 EU would have new laws where AI can be challenged, so we'll have to wait and see how they implement it. Read more about if AI should be regulated