Simpler Is Better
Why is it that many of us strive to make things more complicated? Maybe it’s human nature or maybe it’s simply because we can. Regardless, complexity is often unnecessary and it can be just plain evil at times.
As the software systems we build grow more complex, the development approaches we use to build them become correspondingly more cumbersome. This is a matter of necessity. Complex systems have more of everything.
- More Features,
- More Menus,
- More Options,
- More Rules,
- More Controls,
- More Security,
- More Parameters,
- More Bulk!
Do we really need more, more and more? If you want to build better software, faster and more predictably, think less — plan less, build less, test less, deliver less, do less. How?
- Keep the core software feature set minimalist. Only add new features that offer high value based on the opinions of the Product Owner and Executive Sponsor.
- Open up the design so that software tools and utilities can be added to the software. These add-ons, applets, plug-ins, packages or whatever you choose to call them can be built and released independently of the core product. [Separate agile development teams can work at their own paces.]
- Offer multiple ways to use the data that feeds the software. Other applications should be able to read the data and — with some controls — be able to write new data. [Reporting is the obvious use for this but it can go far beyond that.]
- Let the user community customize the look, feel and operation of the software in as many ways as you can. They will be happier and they’ll make fewer demands of the development team.
Leaving out features, menus and options can be a good thing. It forces people to think for themselves. It frees them to be creative. One of the reasons business users ask software developers for so much is simply because they are at our mercy. They have no alternatives.
Stop thinking about the way things used to be. Today’s user community is much more technology savvy than yesterday’s. Twenty years ago — even ten years ago — we had to spoon feed business users. They were new to computers and software. They had to learn and adapt. Not any longer. They get it.
Turn them loose. Give them tools and let them customize the software to their liking. You’ll find that new ideas emerge and the software becomes better than anyone expected.
While you’re at it, stop adding new rules — you can’t do this — you must do that. Enough already! Keep the rules to a minimum so people actually understand them. Hold everyone accountable for following a few important rules. Monitor what people really do using log files and internal social networking features.
Simpler is better. Think less, not more.
Building great software has become too complex. I write many posts about the software development process and how to improve it but there’s an underlying problem. The art of writing software has become overly complex. That very complexity necessitates an overly complex approach to building it. It’s a vicious cycle.
We already run an operating system — usually Linux, OS X or Windows. We run a browser that is an operating environment in itself — such as Chrome, Firefox, Internet Explorer or Opera. So now we have a software environment within an operating system. Then, some vendors want us to run yet another environment that supports the programming language. Enough!
Here’s a short list of bloatware languages that need to go.
Flash is old technology. It’s widely used to deliver animation. Advertisers are probably the biggest fan boys of Flash. They can produce banner ads that grab attention and even interact with users. Alas, Flash is big, slow and full of security holes. It’s no longer needed as HTML5 can now take over its functions. It’s time for Flash to go.
Oracle Desktop Java
From a user perspective, .NET is horrible. Have you ever looked at the number of .NET “updates” Microsoft ships each month? Every major .NET release has it’s own set of updates. We are forced to install multiple versions of .NET on our systems to support different applications because Microsoft has designed it poorly. .NET replaced Visual Basic which was (arguably) one the best software languages ever. .NET is not progress. Kill it!
Silverlight is Microsoft’s answer to Flash. Just what we need, right? Flash in Microsoft clothing. Even worse, Silverlight sits within .NET. It couldn’t be any bulkier! Silverlight has not caught on and never will. That shipped has sailed.
It’s time to move on.
These big, bulky software environments cause our desktop and laptop computers to slow to a crawl. They demand large amounts of memory and fast processors. In turn, these items add unnecessary cost to our systems and expose us to needless security risks.
Fight back! Avoid desktop applications and websites built using these obsolete tools — the software likely won’t run on your smartphone or tablet anyway.
Apple sent out a few loud and clear messages at their Worldwide Developers Conference this week. They announced some great new products and the media is fixated on them. But the products are not the message. The capabilities of those products and the future direction they establish are what’s interesting.
Here’s my interpretation of the announcements.
1. Social Media technologies are the future. You can poke fun at Twitter, Facebook, Google+, LinkedIn and all the other social media services. But, there’s no denying that social media capabilities are in demand and growing fast.
I don’t know if companies like Twitter and Facebook will survive long-term but I know that the foundations they’re pouring will endure. People want to be connected. We want to share, be informed and meet other people.
What does this mean for your company? Are you using any social media tools for business? Can your employees openly share information? Can they subscribe to internal information threads that interest them?
Here’s an idea: Stop sending spam (a.k.a. email messages) to your employees with all kinds of mundane corporate announcements. Instead, let them subscribe to information channels and get the information they want. Once they get a taste of how convenient this is, they’ll come up with all kinds of ideas for improving productivity.
2. Geolocation services are a big thing. We want to know exactly where we are in relation to places and people we know. We want to know how to get where we’re going simply and safely.
Obvious, right? How long have humans been using maps? Over 12,000 years.
Think about what this means for your company. If you have many people that travel, you need to provide them with geolocation tools. Whether they travel locally or around the globe, helping them travel safely and quickly can be a big win.
How many buildings does your company occupy? How big are those structures? Do people often visit multiple facilities? Forget paper maps. Distribute all your facility maps electronically. You can even track equipment and people (with their approval) inside your building to help them get around and find others. Think of the efficiency improvements.
3. Voice input has come of age. Our computer systems have become too complex. Even the diminutive smartphone has become so complex that many of us have trouble understanding all the features. Even when we do, finding apps and information becomes a huge hurdle amidst all the messages and icons.
The solution doesn’t lie in improved point-and-click methods — been there, done that. The solution lies in a combination of voice input and semantic search technology. Simply ask the system a question and it will either provide the answer or give you a list of possible answers.
If your company develops software, even if only for internal use, you need to be thinking about voice input and semantic search. Too many hours are being wasted simply because your employees can’t find what they’re looking for. No amount of training will solve the problem. Training only reduces the aggravation level.
Being agile is more than a set of principles or even a mindset.
People need to feel empowered and they need tools that help them feel connected and in control. The technologies mentioned here are changing the way we work and play. Apple gets it. Does your company?
Today, technology has become so advanced that it can greatly contribute to the development and productivity of the business. One needs to research, analyze and understand how technology can greatly assist in boosting one’s business.
Communication is the most important aspect in any business. One can improve communication or be in touch with business clients, customers, employees by making use of the technology. Today, every person owns a Smartphone or mobile phone with camera facility. One can see and communicate face to face using video conferencing. You can view the other person, listen to and put your point forward to the target person, irrespective of their geographic location in the globe. Chatting via video conferencing gives more impact than a traditional phone call. One can explain about one’s new product and show its working and benefits to others. One can have business meetings via phone, instead of meeting in a particular place, thereby removing the barriers of boundary.
Many employees need to travel frequently as a part of their job. They need updated information to perform their job. Mobile phones and wireless technology have paved ways for this. One can access any information one needs and contribute to the productivity of the organization. Also, technology has developed so well that employees can be allotted seats only when they need to be physically present. Many employees can use the same seat on a gyratory basis. This greatly reduces the cost as the organization need not expand the workspace physically to accommodate the growing number of employees. Since the employees are in constant touch with their superiors, they can work effectively without any delay in acquiring official information.
Many organizations provide mobile phones to their employees. The employers can install mobile spy on the mobile phones before giving it to their employees. This helps them to trace the activities of the employees. The organization can get access to the phone calls made and received, messages sent and received, websites visited, chat history, browsing history etc. It also helps to find the employees location at a specific time. Monitoring the activities drives the employees to consciously contribute to the productivity of the organization, also to know if any of the employees are involved in leaking company’s confidential data.
Technology has advanced so well that it helps to satisfy the customer needs. It helps to understand clearly what customers’ needs are and how they want them. For instance, when a customer calls the organization for any queries, technology can be used to set up a system which would give solutions to the queries of the customer by tracing the customer details that were previously recorded. The employee in turn can communicate to the customer appropriately and satisfy their queries and improve the relationship with the customer. This helps to boost sales and improve the business profit.
Apart from boosting sales, technology has gone a step ahead in building good customer relationship. The job of an organization never ends with making a sale to the customer, the business can benefit only if they have repeated sales. If a customer is satisfied with the product or service, they would keep coming again and again. This is possible only by maintaining a constant touch with the customers. Applications are available which help to monitor the sales, discover the customers’ tastes and practices and the reason why they like to come back. Thus, technology helps to take business to the next level.
Lucille J Cronk is a blogger who loves to blog on technology and mobile spy tool. You will get all the information related to mobile spy tools and its relevant benefits at her blog.
A few months ago, I published a post called “Electronic Kanban Boards Are Worth a Look”. Since then I’ve continued to look for software that can be used by software development teams practicing Kanban or Scrum. Specifically, I’m interested in electronic project boards.
There are a lot more options available than I thought and there isn’t a comprehensive resource list available on the Web, at least, not that I could find. So, I’ve created a list and given it a permanent link. I’ll update it as new information becomes available. You can find it at “Kanban / Scrum Tools List”.
The most important point is to find an approach that works for your team. If you’re happy with whatever approach you’re using — physical or electronic — keep using it. If you’re not happy, try a different approach.
You might think that one Kanban or Scrum board is the same as another. Yet, the techniques used by the software on the list vary widely. Examine a few of them. Even if you decide against making a switch, you might get some ideas for improving what you’re doing now. Let me know what you think.
Back in the old days, around 1999, there was a widespread opinion that the Internet and more specifically, the World Wide Web, would change everything. They have — but that was only the beginning. The real game changer is mobile computing.
Smartphones and tablets are revolutionizing how we behave and how we do things. There is a growing expectation that anything requiring a computer can be done from anywhere. This trend is in turn fueling the drive toward agile software development approaches like Scrum, Kanban, Lean and XP.
Why? It’s simple really. Mobile technologies and capabilities are changing so fast that traditional “plan now and implement later” approaches simply can’t work. By the time the team gets around to implementing the planned solution, the landscape will have changed.
Every enterprise software application has to operate in a mobile environment. You can no longer assume that the end user will be in a cubicle running the software on a desktop or laptop. Those days are over.
The future is:
- Smartphones (think iPhone, Android, Windows Mobile, Blackberry, etc)
- Tablets (think iPad, Android, Windows 8, etc.)
- Phablets (smartphone/tablet hybrid devices)
- Mobile Broadband (WiFi, 3G and LTE)
You can no longer assume:
- Desktop Systems (massive displays, fast processors, local storage, etc.)
- Laptops/Notebooks (physical keyboards, local storage, local ports, etc.)
- High-Speed Networks (wired networks, reliable connections, 10GB/100GB ethernet, etc.)
Mobility changes everything.
Those companies that get it will prosper. Those that don’t will perish.
If your software product backlog contains mobile functionality, get it into the sprint backlog or Kanban queue now. You need to start learning soon, before your team gets left behind. If the product backlog doesn’t mention mobile, looking for another project to work on may be your best option. Why would you want to work on a project that is likely to deliver a product that the marketplace leaves behind?
I’m sure that some people reading this will argue that their project is an exception — it doesn’t need to support mobility. That assumption is likely to be based on what they know and what they observe today. Yet, the mobile landscape is changing at a furious pace. There is simply no way to know what it will look like in a year or two.
Faced with this level of uncertainty, the only viable option is to embrace agile techniques and begin including mobile devices and technologies in your roadmap and backlog. Don’t wait. The marketplace isn’t.
A wealth of electronic Kanban tools are emerging. Some have been around for a while and others are relatively new. Most charge a monthly or yearly fee. Some have a free option with restrictions. A few are completely free.
Many teams prefer using a physical Kanban board drawn on a wall or whiteboard. They like the experience of physical interaction and the visibility afforded by posting status on a wall for all to see.
Electronic Kanban boards are particularly useful for distributed teams or even for teams that allow members to work from home. If you have an interest in going wall-less, take a look at these options. (A few are currently in beta status.)
- Agile Zen
- FogBugz Kanban Board
- Lean Kit Kanban
- Silver Catalyst
- Target Process
Those marked with an asterisk (*) are totally free as of the date of this posting. If you know of any Kanban software, please leave a comment with a link.
A minor disaster in my home town (water contamination) makes me think about the impact of disaster situations on software project teams. It’s frustrating to have a project derailed by events beyond your control.
Disasters happen to the best projects. It’s how the project team prepares and responds that matters. Unexpected emergencies sabotage teams and chew up precious time. Avoid them and you’ll sleep better at night.
There are several high-risk areas where a little planning can minimize the disruption caused by typical emergencies. You can’t prevent all failure scenarios but by being prepared, you can minimize the damage and speed up recovery efforts.
Even the best equipment fails from time to time. These failures often result from the two worst enemies of electronics, dirt and heat. Keep your electronic systems clean and cool.
Be ready to deal with the breakdowns by evaluating major systems and identifying those that are mission critical. Keep redundant equipment or spare parts on hand. If this isn’t practical, find a technical support service that can guarantee 2-4 hour response.
Be sure all systems are backed up regularly and test the restore process periodically.
Disgruntled or Mischievous Employees
We’d like to believe that all network intrusions and unauthorized information retrievals originate externally. Unfortunately, it’s been shown that many such activities originate on the inside. Angry or unhappy employees can cause serious problems by virtue of the inherent trust placed in them.
Reasonable precautions can stop or at least minimize errant behavior. Have clearly documented policies and procedures for using team resources and accessing information. Use security techniques such as passwords, encryption and internal firewalls to separate and protect sensitive information. Make sure doors to sensitive areas are locked at all times.
Every software package is vulnerable, particularly if it accesses information over a network. While vendors may leave the door open, ultimately the burden of protecting your network lies with you.
It’s imperative to keep systems up to date with the latest vendor patches. Implement a policy for testing and deploying patches on a monthly basis. Many companies that suffer serious consequences from an attack simply failed to keep their systems updated. Don’t let this happen to you.
Natural and Artificial Disasters
If equipment is damaged by flood, fire, wind, temperature extremes, or any other cause that results in damage to the building, quickly restoring the hardware won’t be enough. In these cases, operations may have to be moved to another location. Employees may have to work from home.
This is where a business continuity plan comes in. This type of plan is essential to maintaining critical services after a catastrophic disaster. It also helps to have an IT asset database to make insurance filing and equipment replacement easier.
We hear about all the events discussed above on a daily basis. None can be completed avoided but the impact on your project teams can be minimized. Take some simple precautions.
No one likes to have their normal routine thrown into chaos and their project ruined.
Tablet computers are disruptive and are invading every company. It started with the Apple iPad and has blossomed into many choices. Every major vendor has announced at least one tablet device including Acer, Dell, HP, Lenovo, Motorola, RIM, Samsung and Toshiba.
Those tablets offer a variety of operating systems including Android, iOS, QNX, WebOS (or not) and Windows. IT departments must adjust to the idea of managing and supporting a variety of end-user mobile devices. It will no longer be a Microsoft-dominated IT world. Tablets are a game changer.
Enterprise IT needs to find ways to co-exist with consumer tablets and their short life cycles. That means giving up some control to the end users and the vendors. It sounds foreboding but is not, because vendors are eager to work with businesses and sell more tablets.
Banning tablets is not an option. Neither is imposing so many restrictions that they are all but unusable.
Several factors are driving this transition.
Apple has long been viewed as a consumer electronics company. They position themselves as consumer-friendly and attract buyers of all ages. Once someone acquires an Apple device for personal use, they often want to use it at work.
Consumers have become more technology savvy. They are buying many types of electronic gadgets and loading up on intelligent home appliances and tools. In the process, they are becoming more dependent on technology than ever before and see the value in it.
Finally, the pace of innovation is accelerating. Historically, it’s taken enterprise IT departments many months to review, approve and deploy new equipment. At today’s hypersonic innovation pace, the equipment could be nearing or past its end of life before it’s deployed.
Here is a short list of items to consider.
Usage Policies. Define acceptable and unacceptable tablet usage. Define and enforce good security practices for tablets, including strong passwords and device certificates.
Remote Erasure. Software is available that can remotely erase the contents of tablet devices if they are lost or stolen. Find the right software for the devices you want to support and make sure your users understand that any personal information saved on the device will also be erased.
Encryption. Tools exist to encrypt tablet data making it almost impossible to decipher. It is a good idea to encrypt any information that leaves the enterprise infrastructure whether stored on a laptop, smartphone or tablet.
Cloud Storage. If you feel uncomfortable storing any enterprise data on a mobile device, you may want to save all data to a network server using a cloud-based service or your own systems. This will force users to have a network connection, either Wi-Fi or 3G, in order to access corporate information.
App Delivery. If your firm develops its own tablet applications, you will need a mechanism for delivering the software similar to Apple’s App Store. For the iPad, this can be done wirelessly without using a PC or iTunes. Other vendors offer similar solutions.
App Availability. You may be tempted to restrict the third-party apps users can load onto their tablets. However, you will likely see productivity advantages to letting users load whatever they want. Tablets are a new world that users need to explore and experiment within to get maximum value.
Support. This leads to the question of how much support you want to provide. Will employees be allowed to use their own tablets at work or must the tablets be company provided? Will corporate email, calendar and messaging features be supported? Are the devices for general-purpose use or for specialized apps only?
The more open the platform, the more likely it will be that employees will use the devices heavily and get maximum value from them. There are many productivity advantages to be had but it will take some creativity and experimentation to draw them out. Be open minded.
Consider allowing employees to load some personal apps on the tablet and store some personal data. You may find that if tablets are used for personal information, employees are more likely to take good care of them. Loss, theft and damage will occur but can be minimized.
Launch a pilot program.
Before making final decisions, start with a pilot program. Include a mix of user segments such as executives, managers, sales, support, technical and administrative personnel. You will need to get feedback from all types of user groups in order to determine the best approach for a full-scale rollout.
Tablets offer the promise of major advances in productivity for some users. You owe it to yourself and your company to find out who those users are and help them succeed.
Lately, multitasking is a hot topic in the smartphone and tablet markets. Google’s Android has it and Apple’s iOS does not. Does it matter? Yes, it does but not in the way you think.
Android (and RIM’s QNX) support true multitasking whereby every app has access to the all system resources whether the user is interacting with it on the display or not. Apple has implemented limited app switching in the iPhone and iPad. The switches resemble multitasking but are more limited in that background apps do not have access to all system resources.
Which approach is superior?
The debate extends further than smartphones and tablets. Windows desktop (and laptop) multitasking doesn’t work. Have you ever been a hurry to do something on your Windows PC? You turn it on and try to launch an application to quickly accomplish a task. And you wait. And you wait some more.
Foreground activities are supposed to have priority so why isn’t the system responding to your request? Because multitasking is largely a myth on low-cost desktop systems.
When you boot your system, many background applications spring into action. Your antivirus software updates itself and scans your system. Multiple applications may attempt to automatically update themselves. On corporate networks, a system inventory may be done and network drives may be mapped.
The sluggish performance is caused by limited resources. One or two CPUs cannot get all this done quickly. But that’s not the worst part. Most desktop systems only have one memory space, one disk drive, one network interface, one high-speed bus, etc. Application requests get queued up and have to wait their turn.
But aren’t foreground tasks supposed to have priority?
The technical answer is yes. The practical answer is no. The foreground application can request attention from the system but those queued up requests have to complete before a new request can be acted upon. Priority is only one part of the solution. Queue management is the other and it’s not implemented well, if at all, on the typical Windows desktop. (BTW, I think the same problems exist on Apple’s OSx and on Linux but I don’t have enough experience with them to comment.)
Doing real multitasking requires multiple system resources. That’s why servers not only have many CPUs but also multiple memory buses, I/O buses, disk drives, interfaces, etc. Queues and resulting bottlenecks are still problems but less so.
Now you know why Apple decided to limit iOS multitasking. Their approach is not perfect but it gives more control to the user and makes the foreground app more responsive. It also improves battery life and lowers the cost of the hardware.
The trade-offs may not be worthwhile to all but most buyers will find them advantageous. Perhaps it’s time for the industry to re-think its implementation of multitasking on personal computers and mobile devices. What’s your experience?
- June 2013 (7)
- May 2013 (13)
- April 2013 (13)
- March 2013 (13)
- February 2013 (12)
- January 2013 (12)
- December 2012 (7)
- November 2012 (11)
- October 2012 (12)
- September 2012 (8)
- August 2012 (11)
- July 2012 (13)
- June 2012 (12)
- May 2012 (13)
- April 2012 (13)
- March 2012 (13)
- February 2012 (12)
- January 2012 (13)
- December 2011 (12)
- November 2011 (12)
- October 2011 (13)
- September 2011 (14)
- August 2011 (18)
- July 2011 (13)
- June 2011 (18)
- May 2011 (19)
- April 2011 (16)
- March 2011 (21)
- February 2011 (20)
- January 2011 (22)
- December 2010 (21)
- November 2010 (16)
- July 2010 (2)