3 Essential Software Development Skills I Learned on My Own
While an undergraduate computer science degree may be a good starting place for learning how to be a successful developer, it’s the real-life application of these skills that will set you apart from a typical graduate. Although I don’t expect the university setting to be able to teach everything, there are still some areas that I found my education to be lacking. Here are three skills that I consider fundamental to software development that I ended up teaching myself outside of the classroom.DebuggingIf you’ve ever worked with C++, you know that trying to track down a segmentation fault without debugging tools is much like trying to find a needle in a haystack. As an undergraduate, I spent countless hours commenting and uncommenting regions of code and writing variables to the console when simply loading the binary into gdb and entering the correct series of commands would have pointed me to the exact line where my error was. With a little direction, students could save hours of time and learn valuable debugging skills by using modern visual debuggers.TestingNot surprisingly, when students don’t learn how to debug their code they rarely know how to test it. I didn’t start writing out test cases myself until I was a teacher’s assistant in grad school. It was out of necessity rather than convenience; a reliable way to grade homework assignments from students who used the phrases “it works” and “it compiled” interchangeably. If agile patterns like Test Driven Development are to gain a foothold, it is imperative that developers learn testing as a cornerstone of their curriculum.Version ControlTools like Git and Subversion are wonderful for working on teams, but I hadn’t even heard the word “Git” in university until explaining to an instructor how I’d lost a project to a hard drive failure. When I started an internship at RSI, one of my first fumbles was to commit merge conflicts into my mark-up, but thankfully the commit was easily reversed. Considering how I pieced together group projects with copy and paste, I’m disappointed these tools weren’t taught as an alternative.Overall, I’m very happy with the knowledge that I obtained as part of my undergraduate education, but I encourage those in school now to take the opportunity to be open to beyond what they hear in lectures and labs and continue to learn outside the classroom.NEED HELP? LET'S TALK.
A Few of My Favorite Things (As a Systems Developer)
My job as a developer at Rural Sourcing goes beyond code on a computer screen. There are so many exciting and rewarding things about it, like:Developing a solution that stands the test of time makes my job that much more worthwhile. Years back, I developed some reports for a client company, and then I found out they were still using them a few years later! This means the technology matched their business need and the solution was relevant for a decent amount of time.I like helping the business user define requirements and how the solution might be implemented. A lot of times, I’m able to help users think of specific details, related situations, and/or other requirements that might have been left out. Depending on the requirements, different technical designs will be used. If all of the requirements aren’t known and all the “what-ifs” not accounted for, the wrong technical design might be selected. If that happens, there could be two results. Either the solution won’t match what the customer really needs or the project will have to be reorganized during development and probably end up costing a lot more. So, it’s best to form a partnership up-front while requirements are defined and the solution is designed.I like creating prototypes for our clients. A prototype could be as simple as a PowerPoint presentation that shows how a screen might look. It could be a diagram that shows relationships between different screens. A more advanced prototype could use the technology that will be used to implement the solution to show the basic solution including screen layout and navigation. Sometimes a prototype will demonstrate that the technology works for the business need. Sometimes, it will show technical challenges where “work-arounds” are needed. It could even show that the technology originally selected is not the best one to work with! That’s not necessarily bad news… It’s best to know that all kind of stuff up-front as much as possible.Many times, upon seeing a prototype, users will come up with more ideas for their application. It’s good to get those ideas up-front also.When I participate in helping to define the requirements as part of designing the solution, then I learn more about the users’ real needs. It gives me more depth that I can draw upon when making those countless small technical decisions that need to be made when doing actual development. Sometimes I get to work with more people; in that case it helps me know who to ask when questions come up in the future.I also like to automate routine tasks. I like to provide the user with immediate access to more combinations of information. Providing computer software to do this helps people and it helps the business.Good software frees up users to exercise their brain power in creative ways. It helps them use time more effectively. It empowers users to respond to the needs of internal and external customers better.NEED HELP? LET'S TALK
SAP BW Server
The central administration area on the SAP BW server not only features a ‘Staging Engine’, which controls the data loading process, as well as processing and preparing its data, it also features SAP BW databases which store master, transaction and metadata.The Administrator Workbench is responsible for organization within SAP BW. In other words, the control, monitoring and maintenance of all data procurement processes. You can use the Administrator Workbench to manage and control all relevant SAP BW objects and processes. As well as defining all relevant information objects, you can also use the Administrator Workbench to plan load processes using a scheduler, and monitor them using a monitor tool.However, before the data is in a suitable form to be stored, it must be prepared by the Extraction, Transformation and Load (ETL) process.SAP BW OLAPThe Online Analytical Processing (OLAP) processor allows you to carry out multi-dimensional analyses of SAP BW data sets. It also provides the OLAP tools with data via the BAPI, XML/A or ODBO (OLE DB for OLAP) interfaces. In principle, the OLAP area can be divided into three components:BEx Analyzer ( Microsoft Excel based) BEx Web Application BEx Mobile IntelligenceYou can use these tools to carry out both Microsoft Excel and Web-based analyses across several dimensions (such as time, place, product, and so on) simultaneously.
Extraction, Transformation and Loading
Depending on the source systems and the type of data basis, the process of loading data into the SAP BW is technically supported in different ways. In the conception phase, the system firstly needs to detect the different data sources in order to be able to transform the data with the suitable tool afterwards.Data BasisAdditional heterogeneous data can be loaded alongside the original mySAP.com components that provide data via extractors:Flat files: A flat file in ASCII or CSV format can automatically be read by the SAP BW standard. Data providers: Providers such as Dun & Bradstreet and AC Nielsen US provide data which already has an import-friendly format. XML: XML data can also be processed in SAP BW.Data Staging ToolsDB Connect: Allows relational databases to be accessed directly. Here, SAP DB MultiConnect is used to create a connection to the database management system (DBMS) in the external database. By importing metadata and original data, the necessary structures can be generated in SAP BW, and the data can be loaded without problem. ETL tools (for example, DataStage): In heterogeneous system landscapes, an important requirement is that the different data structures and content are consolidated before being loaded into SAP BW. You can use an ETL tool such as Ascential DataStage to load data from heterogeneous systems, such as Siebel and PeopleSoft, transform this data into a single format and then load it via a Business Programming Interface into SAP BW. UD Connect: Using UD Connect, you can access just about all relational and multi-dimensional data sources. UD Connect transfers the data as flat data. Multi-dimensional data is converted to a flat format when UD Connect is used.InterfacesBW Service Application Programming Interface (SAPI): A SAPI is an SAP-internal component that is delivered as of Basis release 3.1i. Communication between mySAP Business Suite components and SAP BW takes place via this SAPI. BAPI: Like the SAPI, a BAPI is also used for the structured communication between SAP BW and external systems. Both data providers and ETL tools use this interface. FILE: SAP automatically supports automatic import of files in CSV or ASCII format for flat files as standard. Simple Object Access Protocol (SOAP): The SOAP RFC Service is used to read XML data and to store it in a delta queue in SAP BW. The data can then be processed further with a corresponding DataSource and SAPI. UD Connect (Universal Data Connect): For the connection to data sources, UD Connect can use the JCA-capable (J2EE Connector Architecture) BI Java Connectors that are available for various drivers, protocols and providers as resource adapters.
SAP NetWeaver provides an open integration and application platform and permits the integration of the Enterprise Services Architecture. You can unify business processes across technological boundaries, integrate applications for your employees as needed, and access and edit simple information easily and in a structured manner. SAP NetWeaver is the basis for all SAP solutions on a given hardware.As a core component of SAP NetWeaver, the SAP Business Information Warehouse (SAP BW) provides data warehousing functionality, a business intelligence platform, and a suite of business intelligence tools that enable businesses to attain these goals. Relevant business information from productive SAP applications and all external data sources can be integrated, transformed, and consolidated in SAP BW with the toolset provided. SAP BW provides flexible reporting and analysis tools to support you in evaluating and interpreting data, as well as facilitating its distribution. Businesses are able to make well-founded decisions and determine target-orientated activities on the basis of this analysis.With SAP BI Content, SAP delivers pre-configured role and task-based information models and reporting scenarios for SAP BW that are based on consistent metadata. SAP BI Business Content offers selected roles in a company the information they need to carry out their tasks. The information models delivered cover all business areas and integrate content from almost all SAP and selected external applications.
Cool Features in Business Intelligence Tools
There are some cool features in BI tools: SAP Crystal Reports has a feature whereby the user can be prompted what data element to group the report on, and the rows in the report will be grouped and summarized accordingly. For example: group sales data by Product Line or by Customer Type.Several BI Tools interact with Microsoft Office and offer a variety of features. They use Microsoft Office Excel or PowerPoint as a user interface for building queries, establishing grids and charts, adding subtotals and calculations, and formatting. The Office document can be shared, and the data can be “LIVE”. It can be refreshed, drilled-into, used to hyperlink to other documents, etc. Different data from different sources can be inserted on different slides of a PowerPoint presentation. These include:Microsoft SQL Server Reporting Services has some good conditional formatting options on stacked bar graphs. Each of the bars in the stack can be given different color-coding criteria. For example, if each bar in the stack represents sales for a different product line, each one can be compared to its own budget and colored green, yellow, or red. SAP BusinessObjects Analysis for Microsoft Office allows you to use Excel to create and update plan data in SAP NetWeaver BW. Plan data can be entered manually or based on formulas. For example, copy sales for Product A to sales for Product B. Saving the plan data will write back to the InfoProvider in SAP NetWeaver BW. MicroStrategy provides a module that allows users to use a report and generate data and write that data back to a database. It is also possible to write data back to a database using SAP BusinessObjects (Xcelsius) Dashboard. SAP BusinessObjects (Xcelsius) Dashboard allows charts, maps, list selectors, pictures, and other objects to display or not display conditionally based on selections by the user or elements in the data. SAP Crystal Reports offers considerable flexibility in formatting. For example: apply conditional formatting to one column based on the value in another column or field in the report which can either be from the database or a calculated variable. SAP BusinessObjects (Xcelsius) Dashboard provides several options for interactivity and taking input from the user to update tables and charts. Most dashboard programs provide graphical alerts to quickly draw a user’s attention to a specific metric. Most dashboard programs combine data in the same charts and tables from multiple data sources including database, web services, xml, and html pages.The above list contains just a few examples that come to my mind today. Remember that fancy, complex graphics and widgets alone do not make a good dashboard. A good dashboard provides a way for business users to see information – and hopefully advice – quickly and translate that information into action.Developing a successful dashboard requires strong collaboration and partnership between technical professionals and business users working together to define requirements, examine prototypes, and create a great solution.
Recommendations to have a Successful BI Project
Leading organizations of all kind are seeking new, smarter ways to improve performance, grow revenue, develop stronger relationships and increase workforce effectiveness – and they expect individuals in every role to contribute to these outcomes. Business Intelligence (BI) is a key factor in achieving such results because it supports informed decision making at every level, enabling managers, executives and knowledge workers to take the most effective action in given situation. BI software connects people with information when and where they need it, and provides capabilities for beyond spreadsheets to deliver a true picture of the business.Think big, Start smallMidsize companies are perfect candidates for an incremental approach to BI. Because they have limited IT staff and budget, smaller firms need to a practical solution that enables them to deploy components tactically and incrementally. These businesses should “think big” yet scale their approaches to fit a company with fewer resource.Some companies make the mistake of trying to solve all their challenges at once, and ultimately fail. By focusing on the highest priority business pain point, then selecting which capability will address the issue – such as analysis or reporting, small to midsize firms can more easily stay within their resource capacity and budget, realize business benefits more quickly and provide justifications for further investment.For example, an organization in the early phases of BI can:Start with reports or dashboards for information on how the business is performing Add analysis capabilities to gain insight into why certain events or conditions are occurring Incorporate planning functionality to link the insight gained from analysis Integrate what-if scenario modeling into the planning and analysis process so that action is immediate across the companyWith these capabilities in place, small to midsize companies can deliver consistent, reliable information that helps employees understand what happened and why, and what they should be doing to achieve desired outcomes, while creating an easy-to-follow BI growth path. BI is a moving target, with constantly evolving business demands. There are three basic approaches to BI:Approach 1: IT-centric – BI generally starts out as an engineering, IT-driven initiative focused on data collection and analytical toll selection. Approach2: information management – in this approach, decisions become more real time, such as call center, CRM or ERP. The workforce speaks in the present tense “how are we doing, what can we tweak” the adjustments in business planning are persistent. Approach 3: predictive awareness – “Future tense” where scenario modeling permits examination of new business models, market opportunities and products.Recommendations:IT organization must work in partnership with business counterparts to address the decision-making needs of the enterprise, and quantify and qualify the impact of those decisions. IT organization must educate itself and business leaders that BI is not a technology tool, but a decision-making environment based on a solid business process orientation and performance management function. TI organization must take the lead in establishing a common language for BI that is completely business-oriented, tying BI initiatives to specific business decision and outcomes.Do you have any recommendations not listed above? Feel free to leave a comment on the Rural Sourcing blog!
SAP Business Information Warehouse: Introduction
The SAP Business Information Warehouse (SAP BW) enables you to analyze data from operative SAP applications and from other business applications and external data sources such as databases, online services, and the Internet. SAP Business Information Warehouse, which is pre-configured for core areas and processes, allows you to examine the relationships in all areas of your organization.The following needs were taken into account when designing SAP BW:A data warehousing system with optimized data structures for reporting and analysis A separate system OLAP engine and tools Based on a comprehensive data warehouse architecture Automated data warehouse management Preconfigured with SAP global business know-howAgainst this background, SAP decided to create its own data warehousing solution that classifies reporting tasks as a self-contained business component. To circumvent the numerous disadvantages associated with reporting in the ERP system, data storage, management and reporting takes place on a separate server, the SAP BW server.SAP BW enables Online Analytical Processing (OLAP) for the staging of information from large amounts of operative and historical data. OLAP technology permits multi-dimensional analyses according to various business perspectives. The SAP BW server, which is preconfigured for core areas and processes, allows you to examine the relationships in all areas of your organization. SAP BW provides targeted information to companies, divided into roles. This information helps your employees to carry out their tasks.With the Business Explorer (BEx), SAP BW provides you with a flexible reporting and analysis tool to support strategic analyses and decision making processes within your organization. These tools include query, reporting and OLAP functions. Employees with access authorization can analyze historical and current data at differing levels of detail and from different perspectives. They can use the Web or Microsoft Excel to do so.
Using Ranking Intelligently in Business Intelligence
This blog presents a few simple examples of how ranking can reduce the time needed to highlight areas of business that might be challenges or opportunities and take action accordingly. Imagine a dashboard that shows top 10 and bottom 10 customers according to sales revenue.Why might a customer be in the top 10, and how might that influence a sales person’s future activity?Successful and/or growing business – that is a good thing! Keep those orders coming! Ensure that supply chain and inventory are going to be able to keep up with future demand. Look for additional opportunities with the customer to help them grow their business. Review sales, advertising, and promotions strategy and replicate with other customers.What about a customer in the bottom 10?Does the customer need help understanding or selling specific products? Perhaps the customer needs product training or would benefit from selling a different mix of the company’s products. Is there a problem? Perhaps the customer is dropping the products or has switched to a different supplier. The salesperson might need to find out what is wrong and make amends. Perhaps the customer is having general challenges with business volume. In this case, the salesperson might consider strategizing with the customer to implement special promotions to help increase business.Ranking is even more powerful if Business Intelligence is organized to look at changes in a customer’s position. These are a few basic examples from an I.T. professional, but I hope they serve to demonstrate why ranking can be useful in a dashboard or report.
An Afternoon Spent with the TAG Education Collaborative
Last Friday, my colleague and I headed to Tech High School in east Atlanta to volunteer at the TAG Education Collaborative Interview and Application Workshop. Each of the volunteers were divided into three groups, our group being the one to give mock interview questions to the students. We had 36 students participating and saw about 12 an hour for three hours. I had the opportunity to ask interview questions about the students themselves, not their career or college goals and plans, but about who inspired them, what tough obstacles they’ve overcome, etc. This was one of the most rewarding experiences of my career, as the students were beyond inspiring. One in particular brought tears to my eyes, and I had to pause to compose myself before calling the next one over to my table. This student, let’s call her Kaylee, moved here when she was very young with her father from an island in the Caribbean. It was through her father’s positive influence and perseverance of the “American Dream” that she not only learned English but also became a star student with ambitions to not only complete high school but also become a doctor in psychology. Her father passed away four years ago, but Kaylee has hung on to his passion and drive. She has quite possibly one of the best outlooks on life in anyone I have ever met and was a true inspiration. She reminded me that, in this country, your dreams and goals can come true as long as you work hard and never give up.Kaylee’s story was just one of the many inspirational interviews that we had with these students. The Technology Association of Georgia is truly doing something good and right with their education initiatives. These students today are our future, and any chance we can get to encourage them to become anything they want to be is an opportunity we should all take advantage of.